Android 创建数据库 (DB)
在Android开发中,SQLite是一种轻量级的嵌入式关系型数据库,非常适合用于存储应用程序的数据,本文将详细介绍如何在Android项目中创建和使用SQLite数据库。
目录
1、SQLite简介
2、创建SQLite数据库
3、创建表
4、插入数据
5、查询数据
6、更新数据
7、删除数据
8、示例代码
SQLite简介
SQLite是一种C语言库,它实现了一个小型的、快速且自给自足的SQL数据库引擎,SQLite是嵌入式的,这意味着它不需要单独的服务器进程或操作环境,这使得它非常适合于移动设备和嵌入式系统。
创建SQLite数据库
在Android中,我们可以通过继承SQLiteOpenHelper
类来创建一个数据库。SQLiteOpenHelper
类提供了一种简单的方法来管理数据库版本和升级。
public class MyDatabaseHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "example.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) { // 在这里创建表 } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // 在这里升级数据库 } }
创建表
在onCreate
方法中,我们可以使用SQL语句创建表。
@Override public void onCreate(SQLiteDatabase db) { String CREATE_TABLE_SQL = "CREATE TABLE users (" + "id INTEGER PRIMARY KEY AUTOINCREMENT, " + "name TEXT, " + "age INTEGER)"; db.execSQL(CREATE_TABLE_SQL); }
插入数据
我们可以使用insert
方法向表中插入数据。
public void addUser(String name, int age) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("name", name); values.put("age", age); db.insert("users", null, values); db.close(); }
查询数据
我们可以使用query
方法从表中查询数据。
public List<String> getAllUsers() { List<String> userList = new ArrayList<>(); SQLiteDatabase db = this.getReadableDatabase(); Cursor cursor = db.query("users", new String[]{"name"}, null, null, null, null, null); if (cursor.moveToFirst()) { do { String name = cursor.getString(cursor.getColumnIndex("name")); userList.add(name); } while (cursor.moveToNext()); } cursor.close(); db.close(); return userList; }
更新数据
我们可以使用update
方法更新表中的数据。
public void updateUser(int id, String name, int age) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("name", name); values.put("age", age); String selection = "id = ?"; String[] selectionArgs = {String.valueOf(id)}; db.update("users", values, selection, selectionArgs); db.close(); }
删除数据
我们可以使用delete
方法从表中删除数据。
public void deleteUser(int id) { SQLiteDatabase db = this.getWritableDatabase(); String selection = "id = ?"; String[] selectionArgs = {String.valueOf(id)}; db.delete("users", selection, selectionArgs); db.close(); }
示例代码
以下是一个完整的示例代码,展示了如何创建和使用SQLite数据库:
public class MyDatabaseHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "example.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 users (" + "id INTEGER PRIMARY KEY AUTOINCREMENT, " + "name TEXT, " + "age INTEGER)"; db.execSQL(CREATE_TABLE_SQL); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // 如果需要升级数据库,可以在这里添加代码 } public void addUser(String name, int age) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("name", name); values.put("age", age); db.insert("users", null, values); db.close(); } public List<String> getAllUsers() { List<String> userList = new ArrayList<>(); SQLiteDatabase db = this.getReadableDatabase(); Cursor cursor = db.query("users", new String[]{"name"}, null, null, null, null, null); if (cursor.moveToFirst()) { do { String name = cursor.getString(cursor.getColumnIndex("name")); userList.add(name); } while (cursor.moveToNext()); } cursor.close(); db.close(); return userList; } public void updateUser(int id, String name, int age) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("name", name); values.put("age", age); String selection = "id = ?"; String[] selectionArgs = {String.valueOf(id)}; db.update("users", values, selection, selectionArgs); db.close(); } public void deleteUser(int id) { SQLiteDatabase db = this.getWritableDatabase(); String selection = "id = ?"; String[] selectionArgs = {String.valueOf(id)}; db.delete("users", selection, selectionArgs); db.close(); } }
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1266216.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复