示例代码如下:这里用纯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();
执行效果:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/139893.html