Android周学习Step By Step(6)--Android的数据库SQLite
2011-06-30 20:41
525 查看
在Android中可供选择的存储方式有SharedPreferences、文件存储、SQLite数据库、Content
provider和网络。下面主要说一说SQLite
SQLite是轻量级的嵌入式数据库,麻雀虽小但五脏俱全。
l
新建数据库
通过SQLiteOpenHelper类可以生成一个数据库并对数据库的版本进行管理。当在程序中调用这个类的方法getWritableDataBase()或者getReadableDataBase()方法的时候,如果当时没有数据,那么Android系统就会自动生成一个数据库。代码如下:
其中onCreate(SQLiteDatabase)在数据库第一次生成的时候会调用这个方法,一般在这个方法里生成数据表。
onUpgrade(SQLiteDatabase,int,int)方法是当数据库升级的时候会被Android系统主动调用。一般在这个方法里边删除数据表,并建立新的数据表,以及一些其他的操作这取决于软件的需求。
l
新建数据表
数据库有了下一步就是建表了,和建数据库一样也是通过执行SQL语句进行建表的操作代码如下
对数据库的操作
对数据库的操作无非就是增、删、改、查了,Android和.NET是一样的,都是通过传SQL语句并执行来对数据进行相关的操作。以插入数据为例,具体代码如下(删除、修改操作同理,只需要改写SQL语句即可)
也可以通过insert方法直接进行数据插入,这里相当于.NET中的SQLHelper一样,Android已经为我们写了增、删、改、查的方法,只需要加进去相应的参数即可。
在Android中查询到的数据将放在Cursor当中,Cursor是Android当中的一个接口,通过Cursor我们可以对从数据库中获得的数据进行相应的操作,相当于.NET中的DataTable或者DataSet。简单的查询代码如下
provider和网络。下面主要说一说SQLite
SQLite是轻量级的嵌入式数据库,麻雀虽小但五脏俱全。
l
新建数据库
通过SQLiteOpenHelper类可以生成一个数据库并对数据库的版本进行管理。当在程序中调用这个类的方法getWritableDataBase()或者getReadableDataBase()方法的时候,如果当时没有数据,那么Android系统就会自动生成一个数据库。代码如下:
1: private static class DatabaseHelper extends SQLiteOpenHelper {
2: DatabaseHelper(Context context) {
3: super(context, DATABASE_NAME, null, DATABASE_VERSION);
4: }
5: @Override
6: public void onCreate(SQLiteDatabase db) {
7: String sql = "CREATE TABLE " + TABLE_NAME + " (" + TITLE
8: + " text not null, " + BODY + " text not null " + ");";
9: Log.i("haiyang:createDB=", sql);
10: db.execSQL(sql);
11: }
12: @Override
13: public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
14: }
15: }
其中onCreate(SQLiteDatabase)在数据库第一次生成的时候会调用这个方法,一般在这个方法里生成数据表。
onUpgrade(SQLiteDatabase,int,int)方法是当数据库升级的时候会被Android系统主动调用。一般在这个方法里边删除数据表,并建立新的数据表,以及一些其他的操作这取决于软件的需求。
l
新建数据表
数据库有了下一步就是建表了,和建数据库一样也是通过执行SQL语句进行建表的操作代码如下
1: private void CreateTable() {
2: SQLiteDatabase db = mOpenHelper.getWritableDatabase();
3: String sql = "CREATE TABLE " + TABLE_NAME + " (" + TITLE
4: + " text not null, " + BODY + " text not null " + ");";
5: Log.i("haiyang:createDB=", sql);
6: try {
7: db.execSQL("DROP TABLE IF EXISTS diary");
8: db.execSQL(sql);
9: setTitle("数据表成功重建");
10: } catch (SQLException e) {
11: setTitle("数据表重建错误");
12: }
13: }
对数据库的操作
对数据库的操作无非就是增、删、改、查了,Android和.NET是一样的,都是通过传SQL语句并执行来对数据进行相关的操作。以插入数据为例,具体代码如下(删除、修改操作同理,只需要改写SQL语句即可)
1: /*
2: * 插入两条数据
3: */
4: private void insertItem() {
5: SQLiteDatabase db = mOpenHelper.getWritableDatabase();
6: String sql1 = "insert into " + TABLE_NAME + " (" + TITLE + ", " + BODY
7: + ") values('haiyang', 'android的发展真是迅速啊');";
8: String sql2 = "insert into " + TABLE_NAME + " (" + TITLE + ", " + BODY
9: + ") values('icesky', 'android的发展真是迅速啊');";
10: try {
11: Log.i("haiyang:sql1=", sql1);
12: Log.i("haiyang:sql2=", sql2);
13: db.execSQL(sql1);
14: db.execSQL(sql2);
15: setTitle("插入两条数据成功");
16: } catch (SQLException e) {
17: setTitle("插入两条数据失败");
18: }
19: }
也可以通过insert方法直接进行数据插入,这里相当于.NET中的SQLHelper一样,Android已经为我们写了增、删、改、查的方法,只需要加进去相应的参数即可。
在Android中查询到的数据将放在Cursor当中,Cursor是Android当中的一个接口,通过Cursor我们可以对从数据库中获得的数据进行相应的操作,相当于.NET中的DataTable或者DataSet。简单的查询代码如下
1: private void showItems() {
2: SQLiteDatabase db = mOpenHelper.getReadableDatabase();
3: String col[] = { TITLE, BODY };
4: Cursor cur = db.query(TABLE_NAME, col, null, null, null, null, null);
5: Integer num = cur.getCount();
6: setTitle(Integer.toString(num) + " 条记录");
7: }
相关文章推荐
- Android周学习Step By Step(6)--Android的数据库SQLite
- Android周学习Step By Step(8)--Intent之启动新的Activity
- Android sqlite数据库学习
- Android学习---数据库的增删改查(sqlite CRUD)
- android学习摘记——通过adb工具查看sqlite3数据库
- Android SQLite数据库学习笔记
- Android学习之轻量级数据库SQLite
- 学习笔记 android数据库之 Sqlite
- android 数据库 SQLiteOpenHelper和ContentProvider学习笔记---添加数据及显示(一)
- 【转】Android获取用于操作数据库的SQLiteDatabase实例【学习记录】
- Android学习之旅--sqlite3 数据库命令操作
- Android学习--SQLite存储方式(数据库)
- 【Android】数据存储数据库SQLite(之前有看到的一篇关于SQLite文章,简单明了、覆盖较全面适合学习)
- android学习--使用adb工具管理sqlite3数据库
- Android学习-------在Android中查看管理sqlite数据库
- Android学习之旅--sqlite3 数据库命令操作
- android的基础学习:SQLite存储方式以及数据库操作
- Android周学习Step By Step(3)--应用工程文件组成
- Android学习---数据库的增删改查(sqlite CRUD)
- Android学习之数据库SQLite