使用SQLite(1)

一. 创建和删除库

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

  1. 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)

当执行没有成功的时候 ,要不改变原来的数据 ,引入了事务

事务的作用:当执行一系列操作的时候 ,要么全部执行成功,要么都不执行。



你可能感兴趣的:(使用SQLite(1))