Android数据存储之SQLite使用


当前第2页 返回上一页

另外,上述示例对记录的操作是使用execSQL()方法通过原生的SQL语句进行的,当然也可以使用上面介绍的SQLiteDatabase常用的方法来操作,如insert()、delete()、update()、query()等方法。但是需要注意的是,以插入记录举例,当数据量不大时,通过execSQL()使用SQL语句进行插入与使用insert()方法插入记录的效率是差不多的,但是如果数据量比较大,那么使用前者比使用后者的效率明显高出很多。

SQLiteOpenHelper

这个类为SQLiteDatabase的帮助类,主要用于管理数据库的创建与版本更新。SQLiteHelper是一个抽象类,一般通过创建一个继承自它的子类并重写onCreat()和onUpgrade()方法进行使用。

-onCreat(SQLiteDatabase db) //首次创建数据库时调用,一般用于建表等操作。

-onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion)//当升级数据库版本时调用

下面是使用SQLiteOpenHelper的一个简单示例:

创建一个继承自SQLiteOpenHelper的子类

public class SQLiteHelper extends SQLiteOpenHelper {
/**
* context:上下文对象
* name:数据库名
*/
public SQLiteHelper(Context context, String name) {
super(context, name, null, 1);
}
//首次创建数据库的时候调用,一般进行建表或某些初始化的操作
@Override
public void onCreate(SQLiteDatabase db) {
//建表
db.execSQL("create table if not exists userTb (" +
"_id integer primary key," +
"name text not null,age integer not null," +
"sex text not null)");
}
//当数据库版本升级时自动调用
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}
}

然后就可以通过SQLiteHelper的实例获取一个SQLiteDatabase对象,进而对数据库进行一系列的操作了。

public class MainActivity2 extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
//创建一个SQLiteHelper对象
SQLiteHelper helper = new SQLiteHelper(MainActivity2.this,"stu.db");
//使用getWritableDatabase()或getReadableDatabase()方法获得SQLiteDatabase对象
SQLiteDatabase db = helper.getWritableDatabase();
//插入记录
db.execSQL("insert into userTb (name,age,sex) values ('张三',18,'女')");
db.execSQL("insert into userTb (name,age,sex) values ('李四',19,'男')");
db.execSQL("insert into userTb (name,age,sex) values ('王五',20,'女')");
//获取游标对象
Cursor queryResult = db.rawQuery("select * from userTb", null);
if (queryResult != null) {
//打印所有记录
while (queryResult.moveToNext()) {
Log.i("info", "id: " + queryResult.getInt(queryResult.getColumnIndex("_id"))
+ " 姓名: " + queryResult.getString(queryResult.getColumnIndex("name"))
+ " 年龄: " + queryResult.getInt(queryResult.getColumnIndex("age"))
+ " 性别: " + queryResult.getString(queryResult.getColumnIndex("sex")));
}
//关闭游标对象
queryResult.close();
}
//关闭数据库
db.close();
}
}

标签:SQLite

返回前面的内容

相关阅读 >>

android ormlite更改数据库默认位置

django数据库(Sqlite)基本入门使用教程

Sqlitemanager怎么激活Sqlite数据库管理软件激活图文教程

python实现将Sqlite中的数据直接输出为cvs的方法示例

c#实现几种数据库的大数据批量插入

android开发中的数据库事务用法分析

Sqlite数据库管理相关命令的使用介绍

python之sqlalchemy创建表的实例详解

python操作Sqlite简明教程

android中应用多进程的整理总结

更多相关阅读请进入《Sqlite》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...