一. 创建和删除库
1.创建库
两个方法,openOrCreateDatabase 和AQLiteHelper 。后者更强大 ,先说第一个。
ContextWrapper.openOrCreateDatabase(String name ,int mode, CursorFactory factory);
name :数据库的名字,后缀名为.db.
mode :一般为SQLiteDatabase.CREATE_IF_NECESSARY
factory :工厂类的对象 ,在查询时通过这个 创建 一个Cusor类。现在不用,null
例子:
SQLiteDatabase db = openOrCreateDatabase ("mydatabase.db",SQLiteDatabase.CREATE_IF_NECESSARY,null)
2. 保存的地方
data/data/packagename/database
3.设置数据库
线程安全
db.setLockingEnable(true);
版本
db.setVersion(1);
4.关闭数据库
db.close();
如果以后 不用了,可以删除
Context.deleteDatabase(); 不要将删除 数据库与删除表搞错、
二. 创建玫删除表
1.在创建了数据库后,就是创建表。方法是执行sql语句 。如
CREATE TABLE userInfo_brief ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT , password TEXT ); 对应的java如下 String TABLENAME_1 ="userInfo_breif" ; String ID ="id" ; String NAME ="name"; String PASSWORD ="password"; String sql = "CREATE TABLE "+TABLENAME_1 +"("+ ID+" INTEGER PRIMARY KEY AUTOINCRENMENT ,"+ NAME+" TEXT);"; db.execSQL(sql);
写完了sql后执行语句
SQLiteDatebase.execSQL(sql);
用来执行非查询语句 。
2.删除 表
SQL语句为
DROP TABLE userInfo_brief ;
对应的java为
String sql = "DROP TABLE "+TABLENAME_1+";"; db.execSQL(sql
三。操作记录
insert() ,update() ,delete()
insert ()
SQLiteDatabase.insert(String table ,String nullColumnHack ,ContentValues values)
ContentValues类似 于 HashMap 。使用如下
ContentValues values = new ContentValues (); values.put(NAME ,"lsj"); values.put(PASSWORD, "123"); db.insert (TABLENAME_1, null, values);
2.update()
SQLiteDatabase.update(String table ,ContentValues values ,String whereclause ,String [] whereArgs)
eg:
ContentValues values=new ContentValues ( ); values.put(PASSWORD ,"1234"); db.update (TABLENAME_1 ,values ,NAME= "?" ,new String []{"hshs"} );
3. delete
SQLiteDatabase.delete (String table , String whereClause ,Stirng [] whereAgs )
eg:
db.delete( TABLENAME_1 ,NAME="?" ,new String [] {"lsj"} );
如果删除 所有 的,则为
db.delete (TABLENAME_1 , null ,null );
4. 同时执行多个语句 ,引入 事务
如,我们要执行
delete -> insert -> update (the inserted)
当执行没有成功的时候 ,要不改变原来的数据 ,引入了事务
事务的作用:当执行一系列操作的时候 ,要么全部执行成功,要么都不执行。