Android开发——SQLiteDatabase的使用一

一、SQLite数据库

  1. Android集成了SQlite数据库,每个应用均可以使用

  2. SQLite数据库具有轻量级,运行速度快,适合移动设备使用

  3. SQLite支持SQL语法

  4. SQLite数据库支持五种数据类型:

    NULL、INTERGER(整型)、REAL(浮点数)、TEXT(字符串文本)、BLOB(二进制对象)


二、相关类

  1. SQLiteOpenHelper:抽象类,我们通过继承该类,然后重写数据库创建以及更新的方法,我们还可以通过该类的对象获得数据库实例,或者关闭数据库!
  2. SQLiteDatabase:数据库访问类:我们可以通过该类的对象来对数据库做一些增删改查的操作
  3. Cursor:游标,可以简单理解为指向数据库中某 一个记录的指针!

三、使用SQLiteOpenHelper创建数据库和版本管理

public class MyDBOpenHelper extends SQLiteOpenHelper {
    
    //初始化MyDBOpenHelper,数据库名为name,版本号version
    public MyDBOpenHelper(Context context, String name, CursorFactory factory, int version){
        super(context, name, null, version); 
    }
    
    //数据库第一次创建时被调用
    @Override
    public void onCreate(SQLiteDatabase db) {
		//创建一个person表,包括了两个字段personid(整型,主键,自动增长),name(字符串类型)
        db.execSQL("CREATE TABLE person(personid INTEGER PRIMARY KEY AUTOINCREMENT,name VARCHAR(20))");
    }
    
    //软件版本号发生改变时调用
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
	
    }
}


四、数据库的操作

public class MainActivity extends AppCompatActivity{

    private Context mContext;
    private SQLiteDatabase db; //数据库
    private MyDBOpenHelper myDBHelper;	//数据库管理

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mContext = MainActivity.this;
        //创建数据库管理,并初始化,数据库名称为my.db,版本号1
        myDBHelper = new MyDBOpenHelper(mContext, "my.db", null, 1); 
    }

    //使用Android提供的API操作SQLite
    public void editSQLiteByAndroid(){
        //获取数据库
        db = myDBHelper.getWritableDatabase();

        // 1. 插入数据
        ContentValues values1 = new ContentValues();
        values1.put("name", "Tom"); //设置要插入数据库的数据
        db.insert("person", null, values1);//将 name = Tom 的数据插入到person表中

        // 2. 查询数据
        StringBuilder sb = new StringBuilder();
        //参数依次是:表名,列名,where约束条件,where中占位符提供具体的值,指定group by的列,进一步约束
        Cursor cursor = db.query("person", null, null, null, null, null, null);  
        if (cursor.moveToFirst()) { //循环获取所有数据,插入到sb之中
            do {
                int pid = cursor.getInt(cursor.getColumnIndex("personid"));
                String name = cursor.getString(cursor.getColumnIndex("name"));
                sb.append("id:" + pid + ":" + name + "\n");
            } while (cursor.moveToNext());
        }
        cursor.close();
        Toast.makeText(mContext, sb.toString(), Toast.LENGTH_SHORT).show(); //显示所有数据

        // 3. 修改数据
        ContentValues values2 = new ContentValues();
        values2.put("name", "Alice");
        //参数依次是表名,修改后的值,where条件,以及约束,如果不指定三四两个参数,
        //会更改所有行,这里指修改  name = Tom 那一项数据为 name = Alice
        db.update("person", values2, "name = ?", new String[]{"Tom"}); 
        
        // 4. 删除数据
        //参数依次是表名,以及where条件与约束, 这里指删除 personid = 3  的那一项
        db.delete("person", "personid = ?", new String[]{"3"}); 

    }

    
    //使用SQL语句操作数据库
    public void editSQLiteBySQL(){
        // 获取数据库
        db = myDBHelper.getWritableDatabase();

        // 1. 插入数据
         //插入一项数据到person表中,name值为"Jack"
        db.execSQL("INSERT INTO person(name) values(?)",new String[]{"Jack"});

        // 2. 删除数据
        //这里指删除 personid = 1 的那一项数据
        db.execSQL("DELETE FROM person WHERE personid = ?", new String[]{"1"}); 

        // 3. 修改数据
        //这里指把 personid = 3 的那一项数据的 name 设置为 Jack
        db.execSQL("UPDATE person SET name = ? WHERE personid = ?",new String[]{"Jack","3"});

        // 4. 查询数据
        //查询 personid = 1 的那一项数据
        Cursor cursor =  db.rawQuery("SELECT * FROM person WHERE personid = ?",new String[]{"1"}); 
        if(cursor.moveToFirst())
        {
            int personid = cursor.getInt(cursor.getColumnIndex("personid"));
            String name = cursor.getString(cursor.getColumnIndex("name"));
            Toast.makeText(mContext, personid+ " "+name, Toast.LENGTH_SHORT).show();
        }
        cursor.close();
    }



}

五、数据库的查看

1、使用sqlite studio查看数据库

最新Android studio查看sqlite数据库(借助sqlite studio)

2、 使用adb查看数据库

1、配置adb环境变量

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2、查看数据库内容
adb shell										 启动adb
su												 提升管理员权限,操作符会从$变为#
ls												 查看文件目录
cd fileName										 进入到某个文件下
sqlite3 databaseName.db		  					 进入数据库
sql语句					  						 对数据库进行操作

在这里插入图片描述

3、如何使用su命令(需要提升管理员权限才可以访问到数据库内容)

1、手机要访问数据库的话,需要提前对手机进行 root

2、虚拟机访问数据库,需要下载一个Target带(Google APIs)的虚拟机

在这里插入图片描述

在这里插入图片描述
参考教程:菜鸟教程 数据存储与访问之——初见SQLite数据库

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值