作为一名android初学者,对于如何操作android自带数据库SQLite做出了以下几点简单总结(学习内容主要来源于《android程序设计》):
1.数据库操作: (1).创建或打开数据库 openDatabase()方法用于打开指定的数据库,该方法有以下三个参数:
1>.path:用于指定数据库的路径,数据库不存在则会抛出FileNotFoundException异常。
2>.factory:用于构造查询时的游标,若factory为null,则表示使用默认的factory构造游标。
3>.flags:指定数据库的打开模式(OPEN_READONLY,OPEN_READWRITE,CREATE_IF_NECESSARY,NO_LOCALIZED_COLLATORS).
代码如下;SQLiteDatabase sqliteDatabase = SQLiteDatabase.openDatabase("theNew.db",null,NO_LOCALIZED_COLLATORS);
(2).删除数据库 deleteDatabase("theNew.db");
(3).关闭数据库 sqliteDatabase.close();
2.表操作
(1).创建表 String SQL_CT = "CREATE TABLE student (ID INTEGER PRIMARY KEY,age INTEGER,name TEXT)";
sqliteDatabase.exec(SQL_CT);
(2).删除表 String SQL_DROP_TABLE = "DROP TABLE table";
sqliteDatabase.execSQL(SQL_DROP_TABLE);
3.记录操作
(1).插入操作
1>.insert方法 insert(String table,String nullColumnHack,ContentValues values)
第一个参数:要插入的数据表的名称
第二个参数:空列的默认值
第三个参数:一个封装了列名称和列值的Map,代表一条记录信息。
代码如下: ContentValues contentValues = new ContentValues();
contentValues.put("ID",1);
contentValues.put("age",26);
contentValues.put("name","studentA");
sqliteDatabase.insert("student",null,contentValues);
2>.execSQL方法 String SQL_INSERT = " INSERT INTO student(ID,age,name) values (1,26,'StudentA')";
sqliteDatabase.execSQL(SQL_INSERT);
(2).更新记录
1>.update()方法 update(String table,ContentValues value,String whereClause,String[] whereArgs)
第一个参数:要更新的数据表的名称
第二个参数:更新的记录信息ContentValues对象
第三个参数:更新条件(where语句)
第四个参数:更新条件值数组。
修改StudentA的年龄为例(26改为25):
ContentValues contentValues = new ContentValues();
contentValues.put("ID",1);
contentValues.put("age",25);
contentValues.put("name","studentA");
sqliteDatabase.update("student",contentValues,"name="StudentA",null);
2>.execSQL方法 写出相应的SQL语句(参照以上几条).
(3).查询记录 代码如下:
public Cursor query(boolean distinct,String table,String[] columns,String selection,String[] selectionArgs,String groupBy,String having,String orderBy,String limit)
第一个参数:返回值是否只含有唯一值。
第二个参数:表名。
第三个参数:列名称数组
第四个参数:条件where语句,可含"?"通配符。
第五个参数:参数数组,可替换"?"通配符
第六个参数:分组列
第七个参数:分组条件
第八个参数:排序类
第九个参数:分页查询限制
Cursor游标常用方法:moveToNext(),moveToFirst(),moveToLast().
(4).删除记录
1>.delete()方法 delete(String table,String whereClause,String[] whereArgs)
第一个参数:表名
第二个参数:删除条件
第三个参数:删除条件参数数组
2>.execSQL 使用如上的SQL语句完成