一、几个关键类
1、sqliteDatabase:android.database.sqlite.sqliteDatebase:数据库类,用来操作数据库。
2、sqliteOpenHelper:android.database.sqlite.sqliteOpenHelper:数据库帮助类,用来创建数据库、及数据库表、获取数据库对象。
3、Cursor:android.database.Cursor:记录集游标。用来操作记录集。
二、实现
//自定义类继承于数据库帮助类 class sqliteHelper extends sqliteOpenHelper { //要创建的表名 public static final String TB_NAME="channel"; //当实例化一个数据库帮助对象时,会调用构造函数,当数据库不存在时,就会创建数据库,然后打开数据库(过程已经被封装起来了) public sqliteHelper(Context context,String name,CursorFactory factory,int version) { super(context,name,factory,version); } //数据库创建完成后,在调用onCreate函数,创建表 @Override public void onCreate(sqliteDatabase db) { db.execsql("CREATE TABLE IF NOT EXISTS "+ TB_NAME+"("+ ID+" integer primary key,"+ NAME+" varchar,"+ URL+" varchar"+ ")" ); Log.e("Database","onCreate"); } //检查构造函数的版本号,若传入的版本号高于当前的,就会执行onUpgrade()方法来更新数据库和版本号。 @Override public void onUpgrade(sqliteDatabase db,int oldVersion,int newVersion) { db.execsql("DROP TABLE IF EXISTS " + TB_NAME); onCreate(db); Log.e("Database","onUpgrade"); } } }
sqliteOpenHelper 的构造函数,当数据库不存在时,就会创建数据库,然后打开数据库(过程已经被封装起来了),再调用onCreate (sqliteDatabase db)方法来执行创建表之类的操作。当数据库存在时,sqliteOpenHelper 就不会调用onCreate (sqliteDatabase db)方法了,它会检测版本号,若传入的版本号高于当前的,就会执行onUpgrade()方法来更新数据库和版本号
2、获取数据库对象
//实例化数据库帮组类
sqliteHelper dbHelper=new sqliteHelper(context,DB_NAME,null,DB_VERSION);
//获得当前数据库
sqliteDatabase db= dbHelper.getWritableDatabase();
3、操作数据库表
查询:Cursor cursor = db.query("....");
while(cursor.moveToNext())
{
int per = cursor.getInt(0);//获取第一列的值
String name = cursor.getString(1)//获取第二列的值
}
cursor.close();
db.close();
插入:
ContentValues values = new ContentValues();
values.put(NAME,name);
values.put(URL,url);
//插入新纪录
Long id = db.insert(sqliteHelper.TB_NAME,values);
删除:
db.delete(sqliteHelper.TB_NAME,NAME +"='"+name+"'",null);
原文链接:https://www.f2er.com/sqlite/201115.html