盒子
盒子
文章目录
  1. 基本用法
  2. sqlite3的使用
  3. 常用Sql语句

SQLite的使用

基本用法

参考:
Android SQLite详解

  • SQLiteOpenHelper
  • getWritableDatabase

    Create and/or open a database that will be used for reading and writing.

    创建或打开一个数据库,返回SQLiteDatabase对象

    当该方法被调用时,会执行继承了SQLiteOpenHelper的类中重写了的onCreate方法

  • 创建表
  • 1
    sqLiteDatabase.execSQL("create table if not exists " + TABLE_NAME + " (Id integer primary key, CustomName text, OrderPrice integer, Country text)");

  • 插入数据
  • insert(String table,String nullColumnHack,ContentValues values)

    1
    2
    3
    4
    5
    ContentValues values = new ContentValues();
    values.put("NAME", "lilnt");
    sqLiteDatabase.insert(TABLE_NAME,null,values);
    //或者:
    sqLiteDatabase.execSQL("insert into " + TABLE_NAME + " (Id, CustomName, OrderPrice, Country) values (1, 'Arc', 100, 'China')")

  • 查询数据
  • query语句

    table为表名

    columns为列名

    selectionArgs为约束条件

    1
    String selection="ID=?""

    selectionArgs为约束条件的值

    1
    String[] args=new String[]{"1"}
    1
    Cursor cursor=sqLiteDatabase.query(tableName,columns,selection,args,null,null,null);

    Cursor为查询数据后返回的指针对象,通过该指针对象可获取数据

    Cursor方法

    1
    2
    3
    4
    5
    6
    7
    8
    9
    while(cursor.moveToNext()){
    int id=cursor.getInt(0);
    Log.i(TAG,"ID:"+id);
    String name=cursor.getString(1);
    Log.i(TAG,"Name:"+name);
    }
    //使用完后记得关闭指针
    if(cursor!=null)
    cursor.close();

  • 删除数据
  • delete(String table,String whereClause,String[] whereArgs)

    1
    2
    3
    sqLiteDatabase.delete(TABLE_NAME, "ID=?", new String[]{"1"});
    //或者:
    delete from Orders where Id = 7

  • 修改更新数据
  • update(String table,ContentValues values,String whereClause, String[] whereArgs)

    1
    2
    3
    ContentValues values = new ContentValues();
    values.put("NAME", "lilnt");
    sqLiteDatabase.update(TABLE_NAME,values,"NAME = ?",new String[]{"lilnl"});

    sqlite3的使用

    查看虚拟机数据库文件:

    Device File Explorer -> data -> data -> app包名 -> database

    在android studio的Terminal上切到SDK目录下的platform-tools文件夹,输入:

    1
    2
    3
    adb shell
    cd data/data/app包名/database
    sqlite3 数据库名称.db

    则来到:

    sqlite>

    即可操作

    若出现没有权限,则:

    1
    2
    su
    chmod 777 需要获取权限的文件夹

    具体命令可参考:SQLite 基本操作–查看数据表信息

    控制台命令:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    //分行显示
    .mode line

    //打开数据库
    sqlite3 [表名].db

    //列出数据表
    .table

    //退出数据库
    .quit

    //显示数据表内容
    select * from sqlite_mastar where name='[表名]'

    常用Sql语句

    1
    2
    3
    dataHelper.execute("CREATE TABLE IF NOT EXISTS Setting ( HOME_URL TEXT PRIMARY KEY NOT NULL, HOME_NAME TEXT );");

    dataHelper.execute("DROP TABLE IF EXISTS Setting;");
    支持一下
    扫一扫,支持Grooter
    • 微信扫一扫
    • 支付宝扫一扫