IT袋

当前位置:主页 > 经验教程 > 建站编程 >

SQLite-轻量级关系型数据库

SQLite-轻量级关系型数据库(2)

时间:2023-12-16 13:23:19 来源:IT袋 作者:马勇
导读:SQLite-轻量级关系型数据库,执行数据库操作:使用 SQLiteDatabase 类执行数据库操作,如插入、更新、删除和查询数据。 DBHelper dbHelper = new DBHelper(context);SQLiteDatabase db = dbHelper.getWritabl

SQLite-轻量级关系型数据库

  1. 执行数据库操作:使用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();
  1. 注意事项:在使用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特性:

  1. 原子性(Atomicity):事务中的所有操作要么全部执行成功,要么全部不执行,不存在部分执行的情况。
  2. 一致性(Consistency):事务执行前后,数据库的完整性约束没有被破坏,数据库从一个一致性状态转换到另一个一致性状态。

相关阅读