前言
這篇博文主要實現數據庫的增刪改查,所以使用log日誌方式輸出查看效果
開發環境
- 開發工具:Android Studio 3.1.4
- 模擬器:Genymotion
- 數據庫:SQLite
首先創建一個類,繼承SQLiteOpenHelper
package cn.fv.sea.sqlitedemo4;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
/**
* FileDescription:數據庫幫助類
* Author:Like The Sea
* Creation time:2018/11/27 20:51
* Change time:2018/11/27 20:51
* Version number:v1.0
*/
public class DBOpenHelper extends SQLiteOpenHelper{
public DBOpenHelper(Context context, String name) {
super(context, name,null,1);
}
@Override // 首次創建數據庫的時候調用,可以包含創建數據庫和數據表的操作
public void onCreate(SQLiteDatabase db) {
// 建表
db.execSQL("create table if not exists stu(_id integer primary key autoincrement, name text not null, sex text not null, age integer not null)");
// 插入數據
db.execSQL("insert into stu(name, sex, age) values ('張三', '男', 22)");
db.execSQL("insert into stu(name, sex, age) values ('李四', '男', 33)");
db.execSQL("insert into stu(name, sex, age) values ('王五', '男', 20)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
MainActivity:
package cn.fv.sea.sqlitedemo4;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends AppCompatActivity {
private DBOpenHelper mDBOpenHelper;
private SQLiteDatabase db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mDBOpenHelper = new DBOpenHelper(this,"class.db");
insert();
delete();
update();
query();
}
/**
* 添加數據
*/
private void insert() {
db = mDBOpenHelper.getWritableDatabase();// 數據庫可寫也可讀
ContentValues values = new ContentValues();
values.put("name", "大紅");
values.put("sex", "女");
values.put("age", 18);
db.insert("stu", null, values);
values.clear();
db.close();
}
/**
* 刪除id爲1的記錄
*/
private void delete() {
db = mDBOpenHelper.getWritableDatabase();// 數據庫可寫也可讀
db.delete("stu", "_id = 1", null);
db.close();
}
/**
* 更新數據, 把 性別爲女的改爲男
*/
private void update() {
db = mDBOpenHelper.getWritableDatabase();// 數據庫可寫也可讀
ContentValues values = new ContentValues();
values.put("sex", "男");
db.update("stu",values,"sex = ?", new String[]{"女"});
db.close();
}
/**
* 查詢數據
*/
private void query(){
db = mDBOpenHelper.getReadableDatabase();
Cursor c = db.rawQuery("select * from stu",null);
if (c != null){
while(c.moveToNext()){
Log.i("info", "_id: " + c.getInt(c.getColumnIndex("_id")));
Log.i("info", "name: " + c.getString(c.getColumnIndex("name")));
Log.i("info", "sex: " + c.getString(c.getColumnIndex("sex")));
Log.i("info", "age: " + c.getString(c.getColumnIndex("age")));
}
// 釋放遊標
c.close();
}
// 釋放數據庫對象
db.close();
}
}
Logcat裏的效果: