Android SQLite 数据存储
SQLite是一个轻量级的数据库,在android上就是使用了该数据库,一个数据库文件即代表了一个数据库,sql语法和mysql基本一样吧,表达方式不同而已
获得SQLiteDatabase 对象
SQLiteDatabase的方法
static SQLiteDatabase openDatabase(String path,SQLiteDatabase.CursorFactory factory,int flags)
e: SQLiteDatabase db = SQLiteDatabase.openDatabase(path,factory,flags); //即打开path代表的路径文件
static SQLiteDatabase openOrCreateDatabase(File file,SQLiteDatabase.CursorFactory factory)
e: SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(mFile,factory); //即打开mFile对应的数据库文件啦,如果该文件不存在则创建一个
static SQLiteDatabase openOrCreateDatabase(String path,SQLiteDatabase.CursorFactory factory);
e: SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabaes(mPath,factory); //即打开mPath对应的数据库文件了,如果该文件不存在则创建一个
======================================================================================================
SQLiteDatabase提供了操作数据库的几个方法
execSQL(String sql,Object[] objs); //带占位符的执行sql语句
exexSQL(String sql); //直接执行sql语句
insert(String table_name, String nullColumn, ContentValues values); //执行sql插入语句
delete(String table_name, String where,String[] whereArgs); //删除
update(String table_name, ContentValues values, String where, String[] whereArgs); //更新
for example:
name | age |
admin | 20 |
db.execSQL("select * from table_name where id > ?", new int[] {10}); //?表示带占位符的,占位符要和后面的数组类型一致,顺序一致
db.execSQL("select * from table_name where id > 10") //和第一条句子一样 相当于 mysql 语句中执行 select * from table_name where id > 10;
似乎只要用execSQL(xc);这句话就基本解决了所有的需要了...增删改查...
ContentValues values = new ContentValues();
values.put("name","admin");
values.put("age","20"); //values.put(columnName,value);==>Map.put(key,value);
db.insert(table_name,null,values); //在table_name表中插入记录,列名为name = 值admin age = 20
//等价于 insert into table_name (name,age) values ("admin",20);
db.delete("table_name","name like",new String[] {"a%"}); //删除name列值以a开头的一行记录 ==> delete table_name where name like "a%";
values.put("age","25");
db.update("table_name",values,"age =",new String[] ("20"); //更新age = 20 的记录,修改的值放在values中 ==>update table_name set age = 25 where age =20;