SQLiteOpenHelper是一个抽象类
getReadableDatabase创建或打开一个可读数据库
getWritableDatabase创建或打开一个可写数据库
onCreate数据库第一次被建立时调用
onOpen数据库打开时调用
onUpdated数据库修改时被调用
建立一个SQLiteOpenHelper必须写一个构造函数 public DataBaseHelper(Context context, String name, CursorFactory factory,int version)
public class DataBaseHelper extends SQLiteOpenHelper {
private final static int VERSION = 1;
public DataBaseHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
}
public DataBaseHelper(Context context,String name,int version){
this(context,name,null,version);
}
public DataBaseHelper(Context context,String name){
this(context,name,VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
String sql = "CREATE TABLE user(id int,name vchar(20))";
System.out.println("create table");
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
System.out.println("update table");
}
}
创建主activity
import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class sqliteActivity extends Activity {
/** Called when the activity is first created. */
private Button btnCreateDb = null;//创建数据库
private Button btnUpdateDb = null;//更新数据库
private Button btnInsert = null;
private Button btnUpdate = null;
private Button btnSelect = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btnCreateDb = (Button) findViewById(R.id.btnCreateDB);
btnCreateDb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
DataBaseHelper dbh = new DataBaseHelper(sqliteActivity.this,"test db name");
dbh.getWritableDatabase();
}
});
btnUpdateDb = (Button) findViewById(R.id.btnUpdateDB);
btnUpdateDb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
DataBaseHelper dbh = new DataBaseHelper(sqliteActivity.this,"test db name",2);
dbh.getWritableDatabase();
}
});
btnInsert = (Button) findViewById(R.id.btnInsert);
btnInsert.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 建立键值对为数据表插入准备,必须保持与数据表一致
ContentValues values = new ContentValues();
values.put("id",1);
values.put("name", "xiaoqiang");
//连接数据库辅助
DataBaseHelper dbh = new DataBaseHelper(sqliteActivity.this,"test db name");
//建立数据库
SQLiteDatabase db = dbh.getWritableDatabase();
//插入表格内容
db.insert("user", null, values);
}
});
btnUpdate = (Button) findViewById(R.id.btnUpdate);
btnUpdate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
ContentValues values = new ContentValues();
values.put("name", "chenqiang");
//连接数据库辅助
DataBaseHelper dbh = new DataBaseHelper(sqliteActivity.this,"test db name");
//建立数据库
SQLiteDatabase db = dbh.getWritableDatabase();
//更新数据库
//第一个参数是table名字
//第二个参数是要修改的参数键值对
//第三个参数where条件 ?代表占位符号
//第四个参数条件的值
db.update("user", values, "id=?", new String[]{"1"});
}
});
btnSelect = (Button) findViewById(R.id.btnSelect);
btnSelect.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//连接数据库辅助
DataBaseHelper dbh = new DataBaseHelper(sqliteActivity.this,"test db name");
//建立数据库
SQLiteDatabase db = dbh.getWritableDatabase();
//第一参数表名
//第二参数查询的列名
//第三参数where条件
//第四参数where条件的值
//第五参数分组条件
//第六参数
//第七参数排序
Cursor cursor = db.query("user", new String[]{"id","name"}, "id=?", new String[]{"1"}, null, null, null);
while(cursor.moveToNext()){
String name = cursor.getString(cursor.getColumnIndex("name"));
System.out.println(name);
}
}
});
}
}