android——创建数据库

本文介绍了如何使用 Android 的 SQLiteOpenHelper 类来创建一个 SQLite 数据库。通过一个具体的例子展示了如何定义数据库版本、创建表结构以及升级数据库的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SQLlite类似于微软的Access.以下介绍在android中创建一个数据库文件

1、DBOpenHelper

package com.njupt.sqlite;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DBOpenHelper extends SQLiteOpenHelper{

	public DBOpenHelper(Context context){
		super(context, "njupt1.db", null, 2);
	}

	public void onCreate(SQLiteDatabase db) {//文件 不存在时执行

		System.out.println("onCreate······章泽天是我的女神1");
		db.execSQL("CREATE TABLE person1(id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(20))");
	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {//文件存在,版本提升时执行

		System.out.println("onUpdate····我的女神是章泽天1");
		db.execSQL("ALTER TABLE person1 ADD balance INTEGER");
	}

	
}

2、DBTest

package com.njupt.sqlite;

import android.test.AndroidTestCase;

public class DBTest extends AndroidTestCase{

	public void test1(){
		DBOpenHelper helper = new DBOpenHelper(getContext());
		helper.getWritableDatabase();//获取可写的数据库连接
		
	}
	
}

3、结果如下所示:


1)

解释:第一条日志是在第一次执行时输出的。第二条日志是在实在数据库版本升级时输出的。

2)

解释:创建数据库成功以后,你就会在/data/data/本项目下发现一个新创建的名为databases的目录,你所创建的数据库文件就保存在databases目录下



### 如何在 Android Studio 中使用 SQLite 创建数据库 #### 使用 SQLiteOpenHelper 创建数据库 为了在 Android 应用程序创建管理 SQLite 数据库及其格,通常会扩展 `SQLiteOpenHelper` 类来实现自定义功能。以下是具体的方法: 通过继承 `SQLiteOpenHelper` 重写其两个主要方法——`onCreate()` 和 `onUpgrade()` 来完成数据库的初始化以及版本更新操作[^1]。 ```java import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class DatabaseHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "mydatabase.db"; private static final int DATABASE_VERSION = 1; public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { // 定义 SQL 命令用于创建 String CREATE_TABLE_USERS = "CREATE TABLE users (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER)"; // 执行 SQL 命令 db.execSQL(CREATE_TABLE_USERS); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // 如果有新版本,则删除旧重新创建 db.execSQL("DROP TABLE IF EXISTS users"); onCreate(db); } } ``` 此代码片段展示了如何利用 `SQLiteDatabase` 对象执行 SQL 脚本来构建名为 `users` 的,该具有三个字段:`id`, `name`, 和 `age`[^2]。 #### Kotlin 版本中的 Room 持久化库替代传统 SQLite 方法 对于更复杂的项目或者希望减少手动编写 SQL 查询的工作量时,推荐采用 Google 提供的 Room 持久化库作为更高层次抽象层封装原生 SQLite API 。Room 可以简化许多常见任务,提供编译期验证机制防止运行时期错误发生[^3]。 首先,在项目的 build.gradle 文件里添加依赖项: ```gradle implementation 'androidx.room:room-runtime:2.4.0' kapt 'androidx.room:room-compiler:2.4.0' // 注意如果使用的是 Java 则替换 kapt -> annotationProcessor ``` 接着按照如下方式声明实体类、DAO 接口及最终的应用级数据库实例对象即可轻松完成相同目标而无需直接接触底层语句语法细节。 --- #### 总结 无论是选择传统的基于 `SQLiteOpenHelper` 的解决方案还是现代化的 Room 架构支持下的途径都可以满足开发者关于怎样在 Android 环境下借助 SQLite 技术建立专属本地持久化存储空间的需求。每种方案各有优劣之处需依据实际应用场景灵活选用最为合适的那一种。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

帅气的东哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值