SQLite简述
SQLite是一款轻型的关系型数据库管理系统,其设计目标是嵌入式的;
SQLite引擎是连接到程序中成为它的一个主要部分,其主要的通信协议是在编程语言内的直接API调用
java中可使用JDBC的方式连接SQLite,Android中可直接调用其API,本文主要介绍Android中使用SQLite
Android中使用SQLite数据库详解
1.建立数据库连接:SQLiteDatabase db = openOrCreateDatabase("数据库名.db",0,null);
其中:(1)第二个参数指定数据库的操作权限:
1)0或Context.MODE_PRIVATE:文件只可以被调用该方法的应用程序访问
2)Context.MODE_WORLD_READABLE:所有应用程序都具有对该文件的读的权限
3)Context.MODE_WORLD_WRITEABLE:所有应用程序都具有对该文件的写的权限
4)Context.MODE_ENABLE_WRITE_AHEAD_LOGGING
(2)第三个参数:当query方法被调用时,用来实例化Cursor,通常设为null即可
2.执行SQL语句的通用方法(后面会介绍增删改查的特定方法,效果相同)
(1)db.execSQL("sql语句");
(2)db.execSQL("带占位符?的sql语句",Object[] bindArgs); //第二个参数是占位符的实际参数列表
3.ContentValues:以键值对儿的形式映射数据记录
ContentValues cv = new ContentValues();
cv.put("列名1",对应值);
cv.put("列名2",对应值);
4.插入:db.insert(String table,String nullColumnHack,ContentValues values);
(1)第一个参数为数据表名
(2)第二个参数:如果要插入的记录每一列都为空的话,需要制定此行中某一列的名称,通常设为null即可
(3)第三个参数:要插入的键值对儿(根据 键----列名,值----数据 自动映射)
5.删除:db.delete(String table,String whereClause,String [] whereArgs);
(1)第二个参数表示where中的条件表达式,可带占位符
(2)第三个参数为占位符实际参数列表
6.更新:db.update(String table,ContentValues values,String whereClause,String [] whereArgs);
第二个参数为更新后的数据记录
7.查询 结果集Cursor :Cursor c = db.rawQuery(String sql,String [] selectionArgs);
其中第一个参数为带占位符的sql语句,第二个参数为占位符实际参数列表
注:还可以使用rawQuery()各种重载方法,或者query(参数列表)的各种重载方法,个人认为:通常熟练使用一种就够了,对于特殊情况在考虑使用特定的查询方式
对结果集对象进行相关操作:
(1)close(); //关闭结果集
(2)getColumnCount(); //返回列数
(3)getColumnIndex(String columnName); //根据列名返回列索引
(4)getColumnName(int columnIndex); //根据列索引返回列名
(5)getColumnNames(); //返回列名所组成的字符串数组
(6)getCount(); //返回查询到的记录条数
(7)getDouble(int columnIndex); //根据列索引返回对应类型的数据,常和 getColumnIndex(String columnName)配合使用
相应的还有:getFloat(int columnIndex); getInt(int columnIndex); getShort(int columnIndex); getString(int columnIndex);getLong(int columnIndex);
(8)getPosition(); //返回游标所指当前记录在数据集中是第多少行
(9)getType(int columnIndex); //返回列索引指向的列所对应的数据类型
(10)isClosed(); //数据集是否是关闭的
(11)isFirst(); //当前游标是否指向数据集中的第一条记录
(12)isLast(); // 当前游标是否指向数据集中的最后一条记录
(13)move(int offset); //以当前位置为参考,移动到指定行
(14)moveToFirst(); //将游标移动到第一条
(15)moveToLast(); //将游标移动到最后一条
(16)moveToNext(); //将游标移动到下一条
(17)moveToPosition(int position); //将游标移动到指定位置
(18)moveToPrevious(); //将游标移动到前一条记录
8.关闭数据库连接:db.close();