在 Android 開(kāi)發(fā)中,我們通常使用 SQLite 數(shù)據(jù)庫(kù)進(jìn)行本地?cái)?shù)據(jù)庫(kù)操作。首先,我們需要在 AndroidManifest.xml 中添加網(wǎng)絡(luò)權(quán)限:
<uses-permission android:name="android.permission.INTERNET" />
然后,我們需要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)庫(kù)幫助類,例如 DatabaseHelper.java:
import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class DatabaseHelper extends SQLiteOpenHelper { private static final String DB_NAME = "user_db"; private static final int DB_VERSION = 1; private static final String TABLE_NAME = "user_table"; private static final String COLUMN_ID = "id"; private static final String COLUMN_USERNAME = "username"; private static final String COLUMN_PASSWORD = "password"; public DatabaseHelper(Context context) { super(context, DB_NAME, null, DB_VERSION); } @Override public void onCreate(SQLiteDatabase db) { String createTableQuery = "CREATE TABLE " + TABLE_NAME + " (" + COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COLUMN_USERNAME + " TEXT, " + COLUMN_PASSWORD + " TEXT" + ");"; db.execSQL(createTableQuery); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME); onCreate(db); } }
接著,我們創(chuàng)建一個(gè)用戶類,例如 User.java:
public class User { private int id; private String username; private String password; public User(int id, String username, String password) { this.id = id; this.username = username; this.password = password; } public int getId() { return id; } public String getUsername() { return username; } public String getPassword() { return password; } }
接下來(lái),我們需要實(shí)現(xiàn)從本地?cái)?shù)據(jù)庫(kù)獲取用戶列表的代碼,例如 getLocalUserList(). 首先,我們需要從數(shù)據(jù)庫(kù)中獲取所有用戶數(shù)據(jù),并將其存儲(chǔ)在一個(gè) ArrayList<User> 中,然后將其返回。如果數(shù)據(jù)庫(kù)中沒(méi)有用戶數(shù)據(jù),則返回一個(gè)空的 ArrayList<User>。這個(gè)方法應(yīng)該放在 DatabaseHelper.java 中:
public ArrayList<User> getLocalUserList() { ArrayList<User> userList = new ArrayList<>(); SQLiteDatabase db = this.getReadableDatabase(); String query = "SELECT * FROM " + TABLE_NAME; Cursor cursor = db.rawQuery(query, null); if (cursor.moveToFirst()) { do { int id = cursor.getInt(cursor.getColumnIndex(COLUMN_ID)); String username = cursor.getString(cursor.getColumnIndex(COLUMN_USERNAME)); String password = cursor.getString(cursor.getColumnIndex(COLUMN_PASSWORD)); userList.add(new User(id, username, password)); } while (cursor.moveToNext()); } cursor.close(); db.close(); return userList; }