sqilte是一个轻量级的数据库,满足数据库的基本操作,由于移动端的内存有限,所以sqilte刚好能满足移动端开发的基本要求。
1.首先介绍一下,sqlite的管理类SQLiteOpenHelper。这个类用来管理数据库的创建和版本更新,需要继承它的方法。
代码如下:
public class Db extends SQLiteOpenHelper {
public Db(Context context, String name, CursorFactory factory, int version) {
super(context, "db", null, 1);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL("CREATE TABLE user("+"name TEXT DEFAULT \"\""+"sex TEXT DEFAULT \"\")");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}
其中onCreate当数据库创建时候回调,onUpgrade方法是在版本号增大时候,自动回调,所以可以吧数据库要更新的操作写在里面。
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Db db = new Db(this);
//获取数据库的方式有两种,这是获取可读写,还有一种获取可读的数据库。db.getReadableDatabase()方法获得。
SQLiteDatabase dbWriter = db.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put("name", "shangsan");
cv.put("sex", "male");
//第一参数表示表明,第二个表示空列,第三个表示要填写的数据,用ContentValues 封装。
//dbWriter.insert(table, nullColumnHack, values);
dbWriter.insert("user", null,cv);
db.close();
}
}
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Db db = new Db(this);
// SQLiteDatabase dbWriter = db.getWritableDatabase();
// ContentValues cv = new ContentValues();
// cv.put("name", "shangsan");
// cv.put("sex", "male");
// //dbWriter.insert(table, nullColumnHack, values);
//
SQLiteDatabase dbRaed = db.getReadableDatabase();
//Cursor c = dbRaed.query(table, columns, selection, selectionArgs, groupBy, having, orderBy);
Cursor c = dbRaed.query("user", null, "name=?", new String[]{"zhangsan"}, null, null, null);
while (c.moveToNext()) {
String name = c.getString(c.getColumnIndex("name"));
String sex = c.getString(c.getColumnIndex("sex"));
System.out.println(name+" "+sex);
}
}
}
Android数据库Sqlite-android学习之旅(九)
原文地址:http://blog.csdn.net/lpjishu/article/details/45752833