一. 利用SQLiteDatabase操作数据库与表
- 学习目标:
- 会创建连接数据库
- 会数据库的增删改查
- 涉及知识点
- 数据库(SQLiteDatabase)
-
实现步骤
public class MainActivity extends Activity {
//数据库名
private static final String DATA_NAME_PREFIX =“account_number”;
//访问模式
private static final int MODE = Context.MODE_PRIVATE;
//SQList数据库
private SQLiteDatabase db;
//账号密码
private EditText Name,Password;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//数据库的名称模式等
db=openOrCreateDatabase(DATA_NAME_PREFIX,MODE,null);
//执行sql语句来创建数据库
db.execSQL(“CREATE TABLE account_number(name char,password char)”);
}
}
除了直接执行SQL语句还可以直接用现成的方法
db.insert
db.delete
db.rawQuery
database.update
在一般情况下我们需要对数据库操作进行封装,所以常用SQLiteOpenHelper来对数据库进行操作
二. 利用SQLiteOpenHelper操作数据库与表
安卓实例
创建一个数据库类(DBhelper)
public class DBHelper extends SQLiteOpenHelper {
public DBHelper(Context context, int version) {
super(context, "persons", null, version);
}
**//当数据库创建时执行**
@Override
public void onCreate(SQLiteDatabase db) {
**//创建表**
String sql="CREATE TABLE person (name varchar)";
db.execSQL(sql);
Log.e(TAG, "创建成功");
}
**//用于数据库升级时执行**
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
//然后我们在主类MainActivity中new出DBhelper
public class MainActivity extends Activity {
private DBHelper dbHelper;
private SQLiteDatabase database;
private EditText editText,editText2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//new出数据库,(上下文,版本号)
dbHelper = new DBHelper(this,1);
}
public void doInsert(View view){
//创建数据库
database = dbHelper.getReadableDatabase();
//用ContentValues来放值
ContentValues values = new ContentValues();
String string=“张三”;
values.put(“name”,string);
//插入数据
database.insert(“person”, null, values);
Log.e(TAG, string);
}
//以此类推
public void doUpdate(View view){
database = dbHelper.getReadableDatabase();
ContentValues values2 = new ContentValues();
String string=“张三”;
String string2=“李四”;
values2.put("name",string);
database.update("person", values2, "name=?", new String[]{string2});
database.execSQL("update student set name = ? where name = ?",new Object[]{string2,string});
}
public void doDelete(View view){
database = dbHelper.getReadableDatabase();
ContentValues values3 = new ContentValues();
String string="name="+editText.getText().toString();
database.delete("person", string, null);
}
public void doQuery(View view){
database = dbHelper.getReadableDatabase();
Cursor cursor = database.query(false,"person", null, null,null,null,null,null,null);
while (cursor.moveToNext()){
String name = cursor.getString(0);
Log.e(TAG, name);
}
}