android之sqlite操作

参考:

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);

            }
        });
    }
}

 

非常好用的SQLiteSpy 1.8.16 免费正式版(内附有一做好的DB,大家可以马上看下效果)。网上看到的,整理了下,共享给大家! 希望有用! SQLiteSpy是一个快速和紧凑的图形用户界面的SQLite数据库管理软件。它可以读取sqlite3文件并执行SQL。图形用户界面使得它很容易分析和操纵sqlite3的数据库。 注意:SQLiteSpy是免费供个人和教育用途,SQLiteSpy主要特点: 1、数据库一览:树状显示所有的架构,包括表,列,索引和触发器在数据库中包含的项目。按F5更新架构树,双击一个表或视图来显示它的数据,使用常用的命令的上下文菜单。 2、网格单元格编辑:表格单元格中编辑,显示一个表通过树状架构,选择一个单元格,然后按F2键调用编辑器。然后修改并确认您的更改写回到表里。 3、数据类型显示:本机的SQL数据类型显示不同的背景颜色来帮助检测类型错误。类型错误可能会导致性能下降或错误的SELECT结果集,防止NULL值与空字符串混淆。 4、完全的Unicode: SQLiteSpy具有完全支持SQLite的Unicode的能力。数据显示和输入是完全实现为Unicode,包括SQL命令。 5、多个SQL编辑:现代标签是用来编辑和显示的查询语句和结果比较容易多个SQL查询。 SQL查询执行输入或加载到SQL他们编辑。然后按F9键运行该查询,或Ctrl + F9来运行当前行或选择只。 6、时间测量: SQL执行的时间会自动测量和显示,以帮助优化查询。 7、正则表达式:在SQL关键字regexp是支持,并增加了完整的Perl的正则表达式语法5.10 SQLiteSpy。的实施,实现了利用DIRegEx库。 8、数学SQL函数:下面的SQL函数可用数学除了SQLite的默认:ACOS(), ASIN(), ATAN(), ATAN(), ATAN2(), CEIL(), CEILING(), COS(), COT(), DEGREES(), EXP(), FLOOR(), LN(), LOG(), LOG(), LOG2(), LOG10(), MOD(), PI(), POW(), RADIANS(), SIGN(), SIN(), SQRT(), TAN(), TRUNCATE(). 9、数据压缩:压缩的SQL函数()适用的zlib的紧缩到任何文本或BLOB值。 10、紧凑型结果储存:使用内部数据存储机制,以达到最佳的兼容SQLite的原生数据类型。因此,SQLiteSpy使用远低于其它的SQLite管理内存和更有效地处理大量的表。 11、内建的SQLite引擎: SQLiteSpy已建成一个单一的应用程序文件与SQLite数据库引擎可执行文件。不需要部署任何DLL文件,这使得SQLiteSpy更易于部署。 12、加密支持: SQLiteSpy可以阅读和修改加密的数据库文件由DISQLite3产生。 DISQLite3实现了自己的母语AES加密。这为不符合商业SQLite的加密扩展(SSE)的或任何其他第三方的实施提供兼容。 13、易安装和卸载:要运行SQLiteSpy,只需解压SQLiteSpy.exe文件到任何目录和执行文件。不需要安装。刚开始时,该程序创建一个文件SQLiteSpy.db3(1 sqlite3的数据库)来存储的和设置。它不写任何其他文件或注册表。卸载一样只是简单的删除两个文件:应用程序的可执行文件和数据库文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值