简介
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); } } }