SQLiteDatabase学习

后端存储 简书

学习SQLiteDatabase之前我们需要了解的是:

  • SQLiteDatabase其实是可以直接在Activity中代码创建的
  • db文件其实就是一个文件(以单个文件存在),当找到db文件名路径的时候,可以用file的delete方法删除数据库
  • Android的SQLiteDatabase最大可存储 2TB的数据
  • db文件默认存储路径为 /data/data/your.app.package/databases/your-db-name

1.sqlite的sq语句操作

这里对sq语句只做简单的操作

1.1 创建表

//查询数据库文件user.db,若文件不存在会自动创建
        SQLiteDatabase db = openOrCreateDatabase("user.db", MODE_PRIVATE, null);
        String createTable = "CREATE TABLE IF NOT EXISTS user(_id integer NOT NULL PRIMARY KEY AUTOINCREMENT,n" +
                "                                name text,n" +
                "                                sex text,n" +
                "                                age integer);";
        //创建表
        db.execSQL(createTable);

以上代码直接在MainActivity中进行就可以。

1.2 插入单条数据

//插入数据
String sql1 = "INSERT INTO user(name,sex,age) VALUES ('张三','男',18);";
db.execSQL(sql1);

1.3 查询表

//表查询
        String sql3 = "SELECT * FROM user;";
        Cursor cursor = db.rawQuery(sql3, null);
        if (cursor != null) {
            while (cursor.moveToNext()) {
                int _id=cursor.getInt(cursor.getColumnIndex("_id"));
                String name=cursor.getString(cursor.getColumnIndex("name"));
                String sex=cursor.getString(cursor.getColumnIndex("sex"));
                int age=cursor.getInt(cursor.getColumnIndex("age"));

                LogUtil.e(SqliteActivity.class, "====_id=" + _id+"  name="+name+"  sex="+sex+"  age="+age);
            }
            cursor.close();
        }

需要注意的是,每次查询完后都需要,用来减少资源浪费

cursor.close();

在app退出程序的时候,要关闭数据库

db.close();

2.sqlite的java语句操作

2.1 创建表

创建语句仍是用sq语句操作

//查询数据库文件user.db,若文件不存在会自动创建
        SQLiteDatabase db = openOrCreateDatabase("user.db", MODE_PRIVATE, null);
        String createTable = "CREATE TABLE IF NOT EXISTS user(_id integer NOT NULL PRIMARY KEY AUTOINCREMENT,n" +
                "                                name text,n" +
                "                                sex text,n" +
                "                                age integer);";
        //创建表
        db.execSQL(createTable);

2.2 插入数据

//插入
        ContentValues values=new ContentValues();
        values.put("name","李四");
        values.put("sex","男");
        values.put("age","28");
        long rowId=db.insert("user",null,values);

继续插入数据的时候,可以新建一个ContentValues,也可以将共用之前用的ContentValues,但是要clear,如下:

values.clear();
        values.put("name","李平");
        values.put("sex","女");
        values.put("age","26");
        db.insert("user",null,values);

2.3 更新数据

//更新
        values.clear();
        values.put("sex","男");
        //将 _id大于1的人的性别改成男
        db.update("user",values,"_id>?",new String[]{"1"});

2.4 删除数据

//删除所有名字中带平的人
db.delete("user","name like ?",new String[]{"%平%"});

2.5 查询数据

Cursor cursor=db.query("user",null,"_id>?",new String[]{"0"},null,null,"name");
        if (cursor != null) {
            //查询所有字段名
            String ColumnNames[]=cursor.getColumnNames();
            while (cursor.moveToNext()){
                for(String columnName:ColumnNames){
                    LogUtil.e(SqliteActivity.class, "====value="+cursor.getString(cursor.getColumnIndex(columnName)));
                }
            }
            cursor.close();
        }

注意上面查询后要关闭cursor

最后在app退出程序的时候,要关闭数据库

db.close();

ok,今天关于Android数据库的使用就降到这里吧,谢谢!

简书稿源:简书 (源链) | 关于 | 阅读提示

本站遵循[CC BY-NC-SA 4.0]。如您有版权、意见投诉等问题,请通过eMail联系我们处理。
酷辣虫 » 后端存储 » SQLiteDatabase学习

喜欢 (0)or分享给?

专业 x 专注 x 聚合 x 分享 CC BY-NC-SA 4.0

使用声明 | 英豪名录