参考:http://www.cnblogs.com/mengdd/archive/2013/04/23/3038234.html
http://liangruijun.blog.51cto.com/3061169/663686/
SQLite主要用了两个类:SQLiteOpenHelper类和SQLiteDatabase类
SQLiteOpenHelper 类:
1、这个类是抽象类,自己必须继承它写个子类
2、库名和版本是在构造函数中传入
3、创建表是在重写onCreat()函数中
调用getWritableDatabase()或者getReadableDatabase()方法时,会使用传入的库名和版本,如果数据库不存在,就会创建库并执行onCreat()方法,若存在 就不执行onCreat(),
调用getWritableDatabase()或者getReadableDatabase()方法返回一个SQLiteDatabase类对象,获得SQLiteDatabase之后,用SQLiteDatabase执行SQL语句进行读写。
SQLiteDatabase类应重点掌握execSQL()和rawQuery()方法:
execSQL()方法可以执行insert、delete、update和CREATE TABLE之类有更改行为的SQL语句;
rawQuery()方法用于执行select语句。
public class DbOpenHelper extends SQLiteOpenHelper{
public DbOpenHelper(Context context,int version) {
super(context, "name_db", null, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table person(id integer, name text, age integer)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
获得SQLiteDatabase之后可以进行增删改查:
sql方式:
db.execSQL("insert into person(id,name,age) values(2,'wzl',30)");//插入数据
db.execSQL("delete from person where id=1");//删除
db.execSQL("update person set name='haohao' where id=2");//更改
db.rawQuery("select * from person where id=1 ", null);//查询:带到的为Cursor对象。cursor.moveToFirst()
db API方式:
API参数含义参看http://blog.csdn.net/kongzhichen/article/details/9336003
插入
ContentValues values = new ContentValues();
values.put("id", 1);
values.put("name", "lina");
values.put("age", 24);
db.insert("person", null, values);
删除
db.delete("person", "id=?", new String[]{"1"});
更改
ContentValues values = new ContentValues();
values.put("name", "liwen");
db.update("person", values, "id=?", new String[]{"1"});
查询
db.query("person",null, "id=?", new String[]{"1"}, null, null, null);