SQLite 的使用

参考: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);

 

 

猜你喜欢

转载自jishudaren.iteye.com/blog/2288154