在Android平台上进行应用程序开发时,连接数据库是必不可少的技能之一。Android主要支持SQLite数据库,这是一种轻量级的关系型数据库,适合于移动设备的有限资源。本文将深入探讨如何在Android应用中连接和操作SQLite数据库。 我们创建数据库通常需要自定义一个SQLiteOpenHelper的子类。这个类的主要作用是管理数据库的版本,创建和升级数据库。例如: ```java public class DatabaseHelper extends SQLiteOpenHelper { // 数据库版本号 private static final int DATABASE_VERSION = 1; // 数据库名称 private static final String DATABASE_NAME = "account.db"; // 表结构定义 private static final String TABLE_NAME = "account_table"; private static final String COLUMN_ID = "_id"; private static final String COLUMN_NAME = "name"; private static final String COLUMN_AMOUNT = "amount"; public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + " ( " + COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COLUMN_NAME + " TEXT, " + COLUMN_AMOUNT + " INTEGER)"; db.execSQL(CREATE_TABLE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME); onCreate(db); } } ``` 接下来,我们需要实现对数据库的增删改查操作。这些操作通常在SQLiteOpenHelper的子类中定义为静态方法,通过传递SQL语句或者ContentValues对象来完成。例如,添加一条记账记录: ```java public long insertAccount(String name, int amount) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues contentValues = new ContentValues(); contentValues.put(COLUMN_NAME, name); contentValues.put(COLUMN_AMOUNT, amount); long result = db.insert(TABLE_NAME, null, contentValues); db.close(); return result; } ``` 查询数据可以使用SQLiteQueryBuilder或直接执行SQL语句,如下所示: ```java public List<Account> getAllAccounts() { List<Account> accountList = new ArrayList<>(); SQLiteDatabase db = this.getReadableDatabase(); Cursor cursor = db.query(TABLE_NAME, new String[]{COLUMN_ID, COLUMN_NAME, COLUMN_AMOUNT}, null, null, null, null, null); if (cursor.moveToFirst()) { do { Account account = new Account(); account.setId(cursor.getInt(0)); account.setName(cursor.getString(1)); account.setAmount(cursor.getInt(2)); accountList.add(account); } while (cursor.moveToNext()); } cursor.close(); db.close(); return accountList; } ``` 为了在应用程序中使用数据库,我们需要实例化DatabaseHelper,并调用其提供的方法。例如,在Activity中添加记账项: ```java DatabaseHelper dbHelper = new DatabaseHelper(this); dbHelper.insertAccount("购物", 120); ``` 此外,还可以实现ContentProvider,使数据能跨应用共享,并使用LoaderManager和CursorLoader异步加载数据,提高用户体验。 总结,Android连接数据库涉及的主要知识点包括: 1. 使用SQLiteOpenHelper管理数据库版本,创建和升级数据库。 2. 定义表结构,创建数据表。 3. 实现增删改查操作,处理SQL语句和ContentValues。 4. 在应用程序中实例化数据库辅助类并调用相应方法。 5. 可选地,使用ContentProvider和LoaderManager提升数据管理的效率和灵活性。 在"记账"应用实例中,开发者通常会结合UI界面,让用户输入记账信息,并通过上述方法与SQLite数据库进行交互,保存和展示记账记录。这涉及到Android UI组件如EditText、Button和ListView,以及适配器(Adapter)的使用。通过这种方式,用户可以方便地在Android设备上进行日常记账管理。
- 1
- 「已注销」2013-11-28不错啊,能跑起来
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助