SQLite數據庫操作封裝
public class mydaHelper extends SQLiteOpenHelper{
//構造函數,這個是必須有的包括四個參數,分別是容器,數據庫的名字,CursorFactory暫時不用管,版本號
public mydaHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
}
// 自己寫的一個含有三個參數的構造函數,它其實就是調用上面的構造函數
public mydaHelper(Context context, String name,
int version) {
this(context, name, null, version);
}
//同樣這是自己寫的一個含有兩個參數的構造函數,來自于對上面的調用
public mydaHelper(Context context, String name) {
this(context, name,1);
}
//創建數據庫時調用,會建立一個表
public void onCreate(SQLiteDatabase db) {
System.out.println("create database");
db.execSQL("create table user(id int,name text)");
}
//更新數據庫時被調用
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
System.out.println("update a Database");
}
}</pre>使用代碼:
public class Activity01 extends Activity {
private Button button1;
private Button button2;
private Button button3;
private Button button4;
private Button button5;
private TextView textview;
private EditText editText1;
private EditText editText2;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//實例化按鈕和文本以及編輯框
textview = (TextView) this.findViewById(R.id.textView1);
button1 = (Button) this.findViewById(R.id.button1);
button1.setText("create");
button2 =(Button) this.findViewById(R.id.button2);
button2.setText("insert");
button3 =(Button) this.findViewById(R.id.button3);
button4 =(Button) this.findViewById(R.id.button4);
button3.setText("更新");
button4.setText("查詢");
button5 = (Button) this.findViewById(R.id.button5);
editText1 = (EditText) this.findViewById(R.id.editText1);
editText2 = (EditText) this.findViewById(R.id.editText2);
editText1.setText("");
editText2.setText("");
editText1.setEnabled(true);
editText2.setEnabled(true);
button1.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
//調用SQLiteOpenHelper構造函數
mydaHelper dbh = new mydaHelper(Activity01.this,"my database");
//通過對mydaHelper的調用創建數據庫并來執行CreateTable方法創建一個user表
SQLiteDatabase db = dbh.getReadableDatabase();
}
});
button2.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
//通過ContentValues來向數據庫里寫數據
ContentValues contentValues = new ContentValues();
contentValues.put("id", editText1.getText().toString());
contentValues.put("name", editText2.getText().toString());
mydaHelper dbh = new mydaHelper(Activity01.this,"my database");
得到一個可寫入的數據庫
SQLiteDatabase db = dbh.getWritableDatabase();
將數據寫入
db.insert("user", null, contentValues);
}
});
button3.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
mydaHelper dbh= new mydaHelper(Activity01.this,"my database");
ContentValues contentValues = new ContentValues();
contentValues.put("name", editText2.getText().toString());
SQLiteDatabase db= dbh.getWritableDatabase();
更新數據庫通過"id=?",new String[]{editText1.getText().toString()}確定要更新的位置
db.update("user", contentValues, "id=?",new String[]{editText1.getText().toString()} );
}
});
button4.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
String n = "";
mydaHelper dbh = new mydaHelper(Activity01.this,"my database");
SQLiteDatabase db= dbh.getReadableDatabase();
查詢數據庫幾個參數分別是數據庫的名字,要返回的內容,確定內容的標志比如id,標志內容,其他的不做介紹
Cursor cursor = db.query("user", null, null, null, null,null, null
);
//通過指針的移動來確定是不是查詢完畢
while(cursor.moveToNext()){
得到內容
int id = cursor.getInt(cursor.getColumnIndex("id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
n += id+" : "+name+"\n";
}
顯示內容
textview.setText(n);
}
});
button5.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
mydaHelper dbh = new mydaHelper(Activity01.this,"my database");
SQLiteDatabase db = dbh.getWritableDatabase();
刪除表中的內容幾個參數分別是數據庫名字,要刪除的列,列的內容來確定那一列
db.delete("user", "id=?", new String[]{editText1.getText().toString()});
}
});
}
}</pre>