SQLite

来源:互联网 发布:淘宝可以买砍刀吗 编辑:程序博客网 时间:2024/05/22 03:04
1、SQLite介绍 : 关系型数据库


   SQLite : 关系型数据库, 非常小的数据库;


   官方网站:http://www.sqlite.org/


2、SQLiteOpenHelper使用方法


   使用SQLiteOpenHelper操作数据库; 先写一个继承该类的实现类;


   常用方法:
   getReadableDatabase()
   getWritableDatabase()
   onCreate(SQLiteDatabase db)
   onOpen(SQLiteDatabase db)
   onUpgrade(SQLiteDatabase db)


   实例:sqlite
   DatabaseHelper作为一个访问SQLite的助理类,提供两个方面的功能:
   1、getReadableDatabase(),getWritableDatabase()可以获得SQLiteDatabase对象, 通过该对象可以对数据库进行操作;
   2、提供了onCreate(),onUpgrade()两个回调函数,允许我们在创建和升级数据库时,进行自己的操作;


   必须有以下构造函数:
   public DatabaseHelper(Context context, String name, CursorFactory factory, int version){
       super(context, name, factory, version);
   }


   其它构造函数:
   private static final int VERSION = 1;
   public DatabaseHelper(Context context, String name){
       this(context, name, VERSION);
   }
   public DatabaseHelper(Context context, String name, int version){
       this(context, name, null, version);
   }


   public void onCreate(SQLiteDatabase db){ // 回调函数
       db.execSQL("create table user(id int, name varchar(20))"); 
   }
   public void onUpdate(SQLiteDatabase db, int oldVersion, int newVersion){ // 回调函数
       // ...
   }




3、使用adb访问SQLite


   命令行环境下,  注意:先要配置环境变量;


   >adb  // 查看adb的帮助信息
   >adb install mypack.appname // 安装应用程序
   >adb uninstall mypack.appname // 卸载应用程序


   >adb shell  // 进入调试环境
   >ls  //查看目录
   >cd dirName  //进入目录,dirName是目录名称
   >rm -r dirName  //循环删除目录及其下的全部文件,dirName是目录名称

   >ls -l  //查看目录下文件的属性(包括文件大小、文件名、创建时间等信息)


   >adb shell
   >sqlite3 test_db // 进入sqlite环境,test_db是数据库名称
   sqlite> .schema  // 查看数据库中有哪些表
   sqlite> select * from table_name;  // 查询表


4、增、删、改、查


   createDatabase, updateDatabase, insert, update, query
   1、CreateDatabaseListener
      DatabaseHelper dbHelper = new DatabaseHelper(SQLiteActivity.this, "test_db"); 
      SQLiteDatabase db = dbHelper.getReadableDatabase();  // 执行dbHelper时才会创建DatabaseHelper对象
   2、UpdateDatabaseListener
      DatabaseHelper dbHelper = new DatabaseHelper(SQLiteActivity.this, "test_db", 2); 
      SQLiteDatabase db = dbHelper.getReadableDatabase();  
   3、InsertListener
      ContentValues values = new ContentValues();
      values.put("id", 1);
      values.put("name", zhangsan);
      DatabaseHelper dbHelper = new DatabaseHelper(SQLiteActivity.this, "test_db"); 
      SQLiteDatabase db = dbHelper.getWritableDatabase();  
      db.insert("user", null, values); // 参1是表名
   4、UpdateListener
      DatabaseHelper dbHelper = new DatabaseHelper(SQLiteActivity.this, "test_db"); 
      SQLiteDatabase db = dbHelper.getWritableDatabase();  
      ContentValues values = new ContentValues();
      values.put("name", zhangsanfeng);
      db.update("user", values, "id=?", new String[]{"1"});
   5、QueryListener
      DatabaseHelper dbHelper = new DatabaseHelper(SQLiteActivity.this, "test_db"); 
      SQLiteDatabase db = dbHelper.getReadableDatabase(); 
      Cursor cursor = db.query("user", new String[]{"id","name"}, "id=?", new String[]{"1"}, null, null, null); 
      while(cursor.moveToNext()){
            String name = cursor.getString(cursor.getColumnIndex("name"));
      }





原创粉丝点击