SQLiteOpenHelper建立数据库问题

API上的解释:

 

public abstract void onCreate (SQLiteDatabase db)
Called when the database is created for the first time. This is where the creation of tables and the initial population of the tables should happen.
在数据库第一次创建的时候调用。这是创建数据表和初始化表数据的地方。

 

onCreate()是你在调用getWritableDatabase()或者getReadableDatabase()时,如果没有创建数据库,则会调用这个方法,在这个方法里一般写你创建表的语句等等。


onUpgrade()是一个很有用的方法,你在第一次创建数据库时,会设定一个Database Version,当你应用程序发布到market后,当你需要更新时,如果你需要修改数据库时,你再设定一个不同的Database Version,这样系统会调用onUpgrade()方法,你可以在这个方法里写你对数据库的修改的方法。

如增加、删除表、在某个表里增加一个字段,等 等。

### 如何使用 SQLite 创建数据库 #### 使用 Android 中的 `SQLiteOpenHelper` 创建数据库 在 Android 应用程序中,可以利用 `SQLiteOpenHelper` 来管理数据库版本并简化数据库操作。通过继承该,可以在子中实现特定方法来处理数据库初始化和升级逻辑。 ```java public class MyDatabaseHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "mydatabase.db"; private static final int DATABASE_VERSION = 1; public MyDatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { // 当第一次创建数据库时调用此函数,在这里执行建表语句 String CREATE_TABLE_SQL = "CREATE TABLE mytable (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT)"; db.execSQL(CREATE_TABLE_SQL); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // 如果更新了应用中的数据库模式,则会触发这个回调 // 可在此处编写迁移脚本或将旧版表格删除重建 db.execSQL("DROP TABLE IF EXISTS mytable"); onCreate(db); } } ``` 上述代码展示了如何定义一个帮助器用于打开或创建指定名称的数据库文件,并设置初始版本号为 1[^1]。 #### Python 中直接使用 SQLite3 模块创建数据库 对于其他环境下的开发工作来说,如果是在支持 Python 的平台上,可以直接借助内置于标准库里的 sqlite3 接口来进行交互: ```python import sqlite3 conn = sqlite3.connect('example.db') # 连接到名为 example.db 的 SQLite 数据库;如果不存在则自动新建 c = conn.cursor() # 执行 SQL 命令以建立新表 c.execute('''CREATE TABLE stocks (date text, trans text, symbol text, qty real, price real)''') # 提交更改并关闭连接 conn.commit() conn.close() ``` 这段简单的例子说明了怎样快速地在一个新的 .db 文件里构建一张记录股票交易详情的新表单[^3]。 #### 关于 SQLite 特点及其适用场景 值得注意的是,SQLite 是一种轻量级的关系型数据库管理系统,它不依赖外部进程服务而是作为应用程序的一部分运行。这意味着开发者无需担心网络配置等问题就能轻松部署带有持久化存储功能的应用程序。此外,因为其核心部分完全由 C 编写而成,所以性能表现优异的同时也保持了良好的兼容性和移植性[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值