Mars Android视频学习笔记——01_16_SQLite使用方法

转载时请注明转自:http://blog.csdn.net/sam_zhang1984

交流可加新浪微博:Android开发人

 

 

 

要用 Android 方便快捷地访问数据库,可以使用 SQLiteOpenHelper ,它是一个助手类。可以利用它来创建或打开一个可读或可写的数据库, 利用其方法可以返回一个 SQLiteDataBase 对象,即返回一个数据库,这样我们就可以利用 SQLiteDataBase 的方法对数据库进行增、删、改、查等等的操作。

SQLiteOpenHelper 除返回一个数据库对象外,还提供了一些回调函数,如 onCreate onOpen onUpgrade ,可以创建数据库、打开数据库、升级数据库时调用。

自己定义一个 SQLiteOpenHelper 的子类,而且这个子类必要有一个四个参数的构造函数,实现实体可以直接调用父类,即 SQLiteOpenHelper 的构造函数。

  1.          public class samDataBaseHelper extends SQLiteOpenHelper {  
  2.     //必须有这个构造函数   
  3.     public samDataBaseHelper(Context context, String name,  
  4.             CursorFactory factory, int version) {  
  5.         //必须调用父类构造函数   
  6.         super(context, name, factory, version);  
  7.         // TODO Auto-generated constructor stub   
  8.     }  
  9. }  

onCreate 函数是在第一次创建数据库时调用,如果只是生成一个 SQLiteOpenHelper 对象是不会调用的,只有通过 SQLiteOpenHelper 方法得到数据库时,并且数据是第一次被创建的时间,才会被调用。

onUpdate 函数则是在数据库版本发生变化时才被调用,当数据库版本没有改变时,不会调用 onUpdate 函数,注意版本号需要是一个递增的数,如第一次操作是版本为 2 ,则下一次版本不能小于 2 ,如果大于 2 时,则会调用 onUpdate 函数。

 这两个函数都是抽象函数,在子类中必须对其进行实现:

  1.          public void onCreate(SQLiteDatabase db) {  
  2.     // TODO Auto-generated method stub   
  3.     System.out.println("Create a DataBase");  
  4.     db.execSQL("create table user(id int,name varchar(20))");  
  5. }  
  6. @Override  
  7. public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {  
  8.     // TODO Auto-generated method stub   
  9.     System.out.println("Update the DataBase");  
  10. }  

adb 工具使用 adb 一个调试工具,可以让我们以 Linux 命令来进入操作系统。在控制台输入 adb shell 即可以进行 Linux 命令行中,由于 Android 是以 Linux 为内核,所以输入的命令行都是 Linux 命令。 ( 前提是已经把 adb 所在的 tool 路径配置到了环境变量里的 path )

通过 ls 命令可以看到目录下的文件,我们要操作的数据库文件是放在根目录下的 data 目录里( cd data ),在 data 目录下又有一个 data 目录,再进入( cd data ),可以看到里面有很多目录,这些即在手机或虚拟机里运行的程序所有私有的数据,选中我们操作数据库的程序,里面即有我们的数据库。

   

  当我们的数据库已经存在,并且我们想要通过命令行输入 SQL 语句,必须先输入: sqlite3 数据库名,这时就可以进行 SQL 语句输入行,会提示 sqlite ,这时就开始输入想要执行的 SQL 语句了,如下面的查询例子:

            

通过 SQLiteOpenHelper 对象的 getReadableDatabase getWritableDatabase 我们就可以得到一个数据库 SQLiteDataBase 的对象,如果要对数据库进行增、删、改、查等操作,就可以通过得到的这个 SQLiteDataBase 对象提供的方法进行操作。也可通过 SQLiteDataBase 的对象执行 SQL 语句,实现我们对数据库的各种操作。如插入函数 insert 、更新函数 update 、执行 SQL 语句函数 execSQL 等等,这些都可以通过帮助文档查询。

  1. ContentValues dbDataValues = new ContentValues();  
  2.             dbDataValues.put("id"2);  
  3.             dbDataValues.put("name""zxs");  
  4.               
  5.             samDataBaseHelper my_DBHelper =new samDataBaseHelper(firstSQLiteActivity.this"sam_firstDb"null2);  
  6.             SQLiteDatabase my_DB =my_DBHelper.getWritableDatabase();  
  7.             my_DB.insert("user"null, dbDataValues);  

在插入数据,或更新数据时,用到 ContentValues 来存放插入数据库的数据, ContentValues 其实就是一个键值对,其键是列名,值则是列的值,值的数据类型一定要跟表结构的数据类型一致。

 

总结:

如果需要使用 Sqlite ,则需要经过以下几个步骤:

1.        生成一个 SQLiteOpenHelper 的子类,并实现其四个参数的构造函数,在构造函数中调用父类构造函数;

2.        通过 SQLiteOpenHelper 对象的 getReadableDatabase getWritableDatabase 可以得到一个数据库 SQLiteDataBase 对象;

3.          通过 SQLiteDataBase 对象的方法就可以进行各种数据库操作了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值