native数据库构建方法详解,新手必看,常见问题解答
- 数据库
- 2025-11-06
- 4
建立数据库是软件开发中一个基础且重要的步骤,对于Native应用,如Android或iOS应用,通常使用SQLite作为数据库,以下是建立SQLite数据库的详细步骤:
确定数据库结构
在建立数据库之前,你需要确定数据库的结构,包括:

- 表名:每个表都有一个唯一的名称。
- 字段名:每个表包含多个字段,字段名描述了数据类型。
- 数据类型:整数、文本、日期等。
- 主键:每个表至少有一个主键,用于唯一标识每条记录。
示例:创建一个简单的用户表
| 字段名 | 数据类型 | 描述 |
|---|---|---|
| id | INTEGER | 主键 |
| name | TEXT | 用户姓名 |
| age | INTEGER | 用户年龄 |
创建数据库文件
在Android中,你可以使用SQLiteOpenHelper类来创建数据库文件,在iOS中,你可以使用FMDB或CoreData。
Android示例:
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) { String CREATE_USERS_TABLE = "CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)"; db.execSQL(CREATE_USERS_TABLE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // Handle database version upgrades here } }
iOS示例:
let db = FMDatabase(path: "mydatabase.db") db.open() let createTableSQL = "CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)" db.executeStatements(createTableSQL) db.close()
插入数据
一旦数据库创建成功,你可以插入数据。
Android示例:
DatabaseHelper dbHelper = new DatabaseHelper(context); SQLiteDatabase db = dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("name", "John Doe"); values.put("age", 30); long newRowId = db.insert("users", null, values);
iOS示例:
let values = ["name": "John Doe", "age": 30] do { try db.executeStatements("INSERT INTO users (name, age) VALUES (?, ?)", values) } catch { print("Error inserting data: (error)") }
查询数据
查询数据是数据库操作中最常见的操作之一。

Android示例:
Cursor cursor = db.query("users", new String[] {"id", "name", "age"}, null, null, null, null, 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")); // Do something with the data } cursor.close();
iOS示例:
let resultSet = try db.executeQuery("SELECT * FROM users") while resultSet.next() { let id = resultSet.getInt("id") let name = resultSet.getString("name") let age = resultSet.getInt("age") // Do something with the data }
更新和删除数据
更新和删除数据也是数据库操作中的常见操作。

Android示例:
ContentValues values = new ContentValues(); values.put("age", 31); int count = db.update("users", values, "id = ?", new String[] {String.valueOf(id)});
iOS示例:
let updateSQL = "UPDATE users SET age = ? WHERE id = ?" do { try db.executeStatements(updateSQL, 31, id) } catch { print("Error updating data: (error)") }
FAQs
Q1: 在Android和iOS中,使用SQLite数据库的主要区别是什么?
A1: 在Android和iOS中,使用SQLite数据库的主要区别在于API和语法,Android使用SQLiteOpenHelper类和Cursor来操作数据库,而iOS使用FMDB或CoreData,尽管如此,基本操作(如创建表、插入、查询、更新和删除数据)在两个平台上都是相似的。
Q2: 如何在Android和iOS中处理数据库版本升级?
A2: 在Android中,你可以重写SQLiteOpenHelper类的onUpgrade方法来处理数据库版本升级,在iOS中,你可以使用FMDB的版本检查功能或CoreData的迁移功能来处理数据库版本升级,在升级过程中,你可能需要添加新表、修改现有表或删除旧表。