SQLite-轻量级关系型数据库(2)
导读:SQLite-轻量级关系型数据库,执行数据库操作:使用 SQLiteDatabase 类执行数据库操作,如插入、更新、删除和查询数据。 DBHelper dbHelper = new DBHelper(context);SQLiteDatabase db = dbHelper.getWritabl
SQLite-轻量级关系型数据库
- 执行数据库操作:使用
SQLiteDatabase类执行数据库操作,如插入、更新、删除和查询数据。
DBHelper dbHelper = new DBHelper(context);
SQLiteDatabase db = dbHelper.getWritableDatabase();
// 插入数据
ContentValues values = new ContentValues();
values.put("name", "Alice");
db.insert("mytable", null, values);
// 查询数据
Cursor cursor = db.query("mytable", new String[]{"_id", "name"}, null, null, null, null, null);
while (cursor.moveToNext()) {
int id = cursor.getInt(cursor.getColumnIndex("_id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
// 处理数据
}
// 关闭数据库连接
db.close();
- 注意事项:在使用SQLite时,需要注意线程安全、数据类型、SQL注入等安全性问题,以及数据库版本升级时的处理。
SQLite数据库升级
public class DBHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "mydatabase.db";
private static final int DATABASE_VERSION = 2;
// 构造函数
public DBHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
// 创建表
@Override
public void onCreate(SQLiteDatabase db) {
String createTableQuery = "CREATE TABLE mytable (id INTEGER PRIMARY KEY, name TEXT)";
db.execSQL(createTableQuery);
}
// 升级数据库
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if (oldVersion < 2) {
// 添加新表
String createNewTableQuery = "CREATE TABLE newtable (id INTEGER PRIMARY KEY, age INTEGER)";
db.execSQL(createNewTableQuery);
}
if (oldVersion < 3) {
// 添加新字段
String addNewColumnQuery = "ALTER TABLE mytable ADD COLUMN email TEXT";
db.execSQL(addNewColumnQuery);
}
}
}
在上面的示例中,我们创建了一个名为mydatabase.db的数据库,并指定版本号为2。
在onCreate方法中,我们创建了一个名为mytable的表。
在onUpgrade方法中,我们检查旧版本号,如果旧版本号小于2,则添加一个名为newtable的新表;
如果旧版本号小于3,则向mytable表中添加一个名为email的新字段。
当你的应用程序升级时,数据库结构也会相应地进行升级。
SQLite事务操作
数据库事务是指作为单个逻辑工作单元执行的一系列操作,要么全部成功执行,要么全部不执行。
在数据库中,事务具有以下四个特性,通常称为ACID特性:
- 原子性(Atomicity):事务中的所有操作要么全部执行成功,要么全部不执行,不存在部分执行的情况。
- 一致性(Consistency):事务执行前后,数据库的完整性约束没有被破坏,数据库从一个一致性状态转换到另一个一致性状态。
相关阅读
-
什么是闭包函数与装饰器 它们有哪些作用?
今天小编介绍什么是闭包函数与装饰器的教程内容,具体介绍如下: 闭包函数与装饰器 闭包函数 闭函数指的是在一个函数内部的函数,即嵌套在函数内部的函数。 包函数指的是内部函数对外
-
探究分布式技术:理解其定义与工作原理
这些知识你了解吗?探究分布式技术的介绍,一定能解决您的问题的,一起来了解吧! 在当今信息时代,数据和应用服务的规模迅速扩大,对于高效、稳定和可扩展的系统的需求也在持续增加
-
KVM虚拟化技术及常用命令详解 "深入解析KVM虚拟化技术和常用命令"
今天介绍KVM虚拟化技术及常用命令详解方面的知识,接下来小编为网友介绍。 KVM全称是Kernel-based Virtual Machine,即基于内核的虚拟机 ,是采用硬件辅助虚拟化技术的全虚拟化解决方案。对于I
-
pycharm没有解释器设置方法 pycharm里面说没有Python解释器怎么办
IT电脑小知识篇,关于pycharm没有解释器设置方法方面的介绍,关于pycharm没有解释器设置方法 或者 pycharm里面说没有Python解释器怎么办,一起来了解了解吧。 如果我们的pycharm没有解释器,就无


