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();