20240213打卡
在Android中,可以使用SQLite数据库来创建和管理本地数据库。下面使用Android自带的数据库API创建表,并进行增删改查操作:
- 创建数据库帮助类:
首先,创建一个继承自SQLiteOpenHelper
的类,用于管理数据库的创建和版本控制。
// DbHelper.java import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class DbHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "my_database"; private static final int DATABASE_VERSION = 1; // 构造函数 public DbHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } // 创建表 @Override public void onCreate(SQLiteDatabase db) { String createTableQuery = "CREATE TABLE my_table (" + "id INTEGER PRIMARY KEY AUTOINCREMENT, " + "name TEXT, " + "age INTEGER)"; db.execSQL(createTableQuery); } // 更新数据库 @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // 当数据库版本更新时执行的操作 // 一般情况下是备份数据,删除旧表,创建新表,然后将备份数据重新插入 } }
- 进行增删改查操作:
在您的活动或其他Java类中,实例化DbHelper
类并使用SQLiteDatabase
执行增删改查操作。
// MainActivity.java import android.content.ContentValues; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.util.Log; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { private DbHelper dbHelper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); dbHelper = new DbHelper(this); // 插入数据 insertData("John", 25); // 查询数据 readData(); // 更新数据 updateData(1, "Jack"); // 删除数据 deleteData(1); } private void insertData(String name, int age) { SQLiteDatabase db = dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("name", name); values.put("age", age); long newRowId = db.insert("my_table", null, values); Log.d("MainActivity", "New row inserted with ID: " + newRowId); } private void readData() { SQLiteDatabase db = dbHelper.getReadableDatabase(); String[] projection = {"id", "name", "age"}; Cursor cursor = db.query("my_table", projection, 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")); Log.d("MainActivity", "ID: " + id + ", Name: " + name + ", Age: " + age); } cursor.close(); } private void updateData(int id, String newName) { SQLiteDatabase db = dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("name", newName); String selection = "id = ?"; String[] selectionArgs = {String.valueOf(id)}; int count = db.update("my_table", values, selection, selectionArgs); Log.d("MainActivity", count + " rows updated"); } private void deleteData(int id) { SQLiteDatabase db = dbHelper.getWritableDatabase(); String selection = "id = ?"; String[] selectionArgs = {String.valueOf(id)}; int count = db.delete("my_table", selection, selectionArgs); Log.d("MainActivity", count + " rows deleted"); } }
本文作者:丰川扬子
本文链接:https://www.cnblogs.com/newzeon/p/18016062
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步