Android 通过纯SQL语句操作SQLite完整示例(CRUD)

生活中,最使人疲惫的往往不是道路的遥远,而是心中的郁闷;最使人痛苦的往往不是生活的不幸,而是希望的破灭;最使人颓废的往往不是前途的坎坷,而是自信的丧失;最使人绝望的往往不是挫折的打击,而是心灵的死亡。所以我们要有自己的梦想,让梦想的星光指引着我们走出落漠,走出惆怅,带着我们走进自己的理想。

导读:本篇文章讲解 Android 通过纯SQL语句操作SQLite完整示例(CRUD),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

示例代码如下:这里用纯SQL实现了数据库的创建、建表、插入、修改、查询、删除等全部操作。并提供了两种不通过SQLiteOpenHelper类进行数据库创建或打开的操作方法和说明。

这里有一个注意事项需要说明:

(因为安卓平台execSQL一次只能执行一条语句,不支持以分号分隔的多条语句一次性提交,如果多条语句拼接只会执行第一条,要执行多条只能通过数组循环来实现。别无它法,我也是想不明白为什么要这样,SQLite本身是支持多条同时执行的)
        // 创建数据库
        String dbFileName= Environment.getDataDirectory().getAbsolutePath() + "/data/" + getPackageName() + "/databases/test.db";
        // SQLiteDatabase.openOrCreateDatabase方式打开或创建数据库 特点:可以指定数据库文件的路径
        SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(dbFileName, null);
        // Context.openOrCreateDatabase方式打开或创建数据库,特点:可以指定数据库文件的操作模式,默认建在/data/user/...路径下
        // SQLiteDatabase db = this.openOrCreateDatabase("test.db",MODE_PRIVATE, null);

        // 创建表
        String createTableSql = "CREATE TABLE IF NOT EXISTS user(" +
                "id INTEGER PRIMARY KEY AUTOINCREMENT," +
                "name TEXT," +
                "age INTEGER)";
        db.execSQL(createTableSql);

        // 插入数据(安卓execSQL一次只能执行一条语句,不支持以分号分隔的多条语句一次性提交,只会执行第一条)
/*
        StringBuilder insertSql=new StringBuilder();
        insertSql.append("INSERT INTO user(name, age) VALUES('Tom', 18); ");
        insertSql.append("INSERT INTO user(name, age) VALUES('Crystal', 29); ");
        insertSql.append("INSERT INTO user(name, age) VALUES('Overflow', 22); ");
        Log.e("MainActivity",insertSql.toString());
        db.execSQL(insertSql.toString());
*/

        List<String> list= new ArrayList<>();
        list.add("INSERT INTO user(name, age) VALUES('Tom', 18) ");
        list.add("INSERT INTO user(name, age) VALUES('Crystal', 29)");
        list.add("INSERT INTO user(name, age) VALUES('Overflow', 22)");
        Log.e("MainActivity",list.toString());
        for(String sql:list) {
            db.execSQL(sql);
        }

        // 修改数据
        String UpdateSql = "UPDATE user SET age=88 where name='Overflow'";
        db.execSQL(UpdateSql);

        // 查询数据
        String querySql = "SELECT * FROM user";
        Cursor cursor = db.rawQuery(querySql, null);
        while (cursor.moveToNext()) {
            int id = cursor.getInt(cursor.getColumnIndex("id"));
            String name = cursor.getString(cursor.getColumnIndex("name"));
            int age = cursor.getInt(cursor.getColumnIndex("age"));
            Log.d("MainActivity", "id: " + id + ", name: " + name + ", age: " + age);
        }

        // 删除数据
        String DeleteSql = "Delete from user where name='Tom'";
        db.execSQL(DeleteSql);

        // 关闭数据库
        db.close();

 执行效果:

Android 通过纯SQL语句操作SQLite完整示例(CRUD)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/139893.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!