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数据库的使用就降到这里吧,谢谢!

    原文作者:奔跑的佩恩
    原文地址: https://www.jianshu.com/p/2401afcd1b27
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞