android之sqlite操作

本文详细介绍SQLiteOpenHelper类的使用,包括数据库的创建、更新升级及数据操作。同时,提供了查看Android设备上SQLite数据库数据的方法,涉及依赖添加、数据查看步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考:

https://www.cnblogs.com/zhaoyucong/p/6113911.html

https://blog.youkuaiyun.com/carson_ho/article/details/53241633

https://www.cnblogs.com/foxy/p/7725010.html

https://blog.youkuaiyun.com/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);

            }
        });
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值