Android 创建数据库的几种方法
SQLite是轻量级的、嵌入式的、关系型数据库,目前已经在iPhone、Android等手机系统中使用,SQLite可移植性好,很容易使用,很小,高效而且可靠。SQLite嵌入到使用它的应用程序中,它们共用相同的进程空间,而不是单独的一个进程。SQLite数据库对SQL规范的支持很全面,它支持大多数SQL标准,同时摒弃了一些复杂的功能,添加了一些自身的特性,下图是SQLite所支持的SQL语句类型:
下图是SQLlite所定义的数据类型:
SQLite也支持SQL标准类型,VARCHAR、CHAR、BIGINT等。
创建数据库
Android 不自动提供数据库。在 Android 应用程序中使用 SQLite,必须自己创建数据库,然后创建表、索引,填充数据。Android 提供了 SQLiteOpenHelper 帮助你创建一个数据库,只要继承 SQLiteOpenHelper 类,就可以创建数据库。继承了SQLiteOpenHelper的子类,必须实现三个方法:
1、构造函数,调用父类 SQLiteOpenHelper 的构造函数。这个方法需要四个参数:上下文环境(例如,一个 Activity),数据库名字,一个可选的游标工厂(通常是 Null),一个代表你正在使用的数据库模型版本的整数。
2、onCreate()方法,它需要一个 SQLiteDatabase 对象作为参数,根据需要对这个对象填充表和初始化数据。
3、onUpgrage() 方法,它需要三个参数,一个 SQLiteDatabase 对象,一个旧的版本号和一个新的版本号,这样可以清楚如何把一个数据库从旧的模型转变到新的模型。
如下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | class databaseAdapter extends SQLiteOpenHelper{ public databaseAdapter(Context context, String name, CursorFactory factory, int version) { super (context, name, factory, version); // TODO Auto-generated constructor stub } @Override public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub } } |
还可以使用如下方法创建数据库:
1、Context.createDatabase(String name,int vision,int mode,CursorFactory factory);//创建一个新的数据库并返回一个SQLiteDatabase对象
2、SQLiteDatabase mydb = SQLiteDatabase.create(new CursorFactory() {
@Override
public Cursor newCursor(SQLiteDatabase db, SQLiteCursorDriver masterQuery,
String editTable, SQLiteQuery query) {
return null;
}
});
3、SQLiteDatabase db = this.openOrCreateDatabase("mydb.db", MODE_PRIVATE, new CursorFactory() {
@Override
public Cursor newCursor(SQLiteDatabase db, SQLiteCursorDriver masterQuery,
String editTable, SQLiteQuery query) {
// TODO Auto-generated method stub
return null;
}
});
删除数据库
Context.deleteDatabase(String name);//删除指定名字的数据库
打开数据库
Context.openDatabase(String basename,CursorFactory factory);//打开一个存在的数据库,并返回SQLiteDatabase对象
非查询SQL指令
SQLiteDatabase.execSQLite(String sql);//可以用来执行非查询的SQL指令,这些指令执行后没有结果返回
查询SQL指令,游标cursors的使用
Cursor cursor = mydb.rawQuery(String sql,String[] selectionArg);//第一个参数为查询语句,第二个参数为查询语句中的占位符,若没有占位符,则第二个参数为null
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人