参考:
https://www.cnblogs.com/zhaoyucong/p/6113911.html
https://blog.csdn.net/carson_ho/article/details/53241633
https://www.cnblogs.com/foxy/p/7725010.html
https://blog.csdn.net/xiaanming/article/details/8679521
https://www.cnblogs.com/adhzl/p/10927533.html (查看数据库)
概念:
SQLiteOpenHelper:安卓提供得Sqlite操作类,我们需要继承他,然后他有两个回调函数,第一个onCreate,当第一次创建得时候,会调用,onUpgrade:后面当数据库得版本号有更新得时候,会调用,通过这种方式,可以实现数据库得自动升级得管理。
SQLiteOpenHelper主要功能可以创建数据库,以及进行数据库的更新升级。
SQLiteDatabase:安卓提供的Sqlite数据库操作类可以实现对数据库的操作。可以通过SQLiteOpenHelper来获取到这个类。
***********************如何查看android里面的sqlite数据******************************
第一步:增加调试依赖
debugImplementation 'com.amitshekhar.android:debug-db:1.0.6'
第二步:数据库如何查看:
cd C:\Users\shenwei\AppData\Local\Android\Sdk\platform-tools
adb forward tcp:8080 tcp:8080
pause
第三步:在网页输入
http://localhost:8080/
就可以查看数据了
***********************SQLiteOpenHelper的使用******************************
步骤1:编写一个类继承
public class DbSQLiteOpenHelper extends SQLiteOpenHelper
步骤2:初始化数据库,注意版本号,这个尤其重要,他就是根据版本号来升级数据库的
public DbSQLiteOpenHelper(@Nullable Context context) {
super(context, DB_NAME, null, VERSION);
}
步骤3:第一次调用会进
public void onCreate(SQLiteDatabase db) {
CreateBaseDb(db);
}
步骤4:以后如果版本升级,会进入onUpgrade函数,通过版本号进行数据库的跟新以及升级
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Integer a =0;
}
步骤5:除了处理数据库升级以外,还能进行简单的数据库操作
public void insert(String TABLE_NAME, ContentValues values){
//获取SQLiteDatabase实例
SQLiteDatabase db = getWritableDatabase();
//插入数据库中
db.insert(TABLE_NAME, null, values);
db.close();
}
public Cursor query(String TABLE_NAME){
SQLiteDatabase db = getReadableDatabase();
//获取Cursor
Cursor c = db.query(TABLE_NAME, null, null, null, null, null, null, null);
return c;
}
代码示例:
package com.example.grammartest.tt;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import androidx.annotation.Nullable;
public class DbSQLiteOpenHelper extends SQLiteOpenHelper{
private final static int VERSION = 1;
private final static String DB_NAME = "phones.db";
public DbSQLiteOpenHelper(@Nullable Context context) {
super(context, DB_NAME, null, VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
CreateBaseDb(db);
}
void CreateBaseDb(SQLiteDatabase db){
String CREATE_TBL = "create table phone(id integer primary key autoincrement, name text, sex text, number text)";
db.execSQL(CREATE_TBL);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Integer a =0;
}
//插入方法
public void insert(String TABLE_NAME, ContentValues values){
//获取SQLiteDatabase实例
SQLiteDatabase db = getWritableDatabase();
//插入数据库中
db.insert(TABLE_NAME, null, values);
db.close();
}
public Cursor query(String TABLE_NAME){
SQLiteDatabase db = getReadableDatabase();
//获取Cursor
Cursor c = db.query(TABLE_NAME, null, null, null, null, null, null, null);
return c;
}
}
package com.example.grammartest;
import androidx.appcompat.app.AppCompatActivity;
import android.content.ContentValues;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import com.example.grammartest.tt.DbSQLiteOpenHelper;
public class SqlliteTestActivity extends AppCompatActivity {
EditText mNameEdit;
RadioButton mManRadio;
RadioButton mWoManRadio;
EditText mTelEdit;
Button mInsertBt;
DbSQLiteOpenHelper mDbHelp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sqllite_test);
InitView();
}
void InitView(){
mNameEdit = findViewById(R.id.editName);
mManRadio = findViewById(R.id.radioMan);
mWoManRadio = findViewById(R.id.radioWoMan);
mTelEdit = findViewById(R.id.editTel);
mInsertBt = findViewById(R.id.InsertBt);
mDbHelp = new DbSQLiteOpenHelper(this);
mInsertBt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String strName = mNameEdit.getText().toString();
String strSex =mManRadio.getText().toString();
if(true == mWoManRadio.isChecked())
{
strSex = mWoManRadio.getText().toString();
}
String strTel = mTelEdit.getText().toString();
ContentValues values = new ContentValues();
values.put("name", strName);
values.put("sex", strSex);
values.put("number", strTel);
mDbHelp.insert("phone",values);
}
});
}
}