public class DatabaseHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "my_database.db"; private static final int DATABASE_VERSION = 1; private static DatabaseHelper instance; private DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } public static synchronized DatabaseHelper getInstance(Context context) { if (instance == null) { instance = new DatabaseHelper(context.getApplicationContext()); } return instance; } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT)"); db.execSQL("CREATE INDEX IF NOT EXISTS idx_users_name ON users (name)"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } @Override public void onConfigure(SQLiteDatabase db) { super.onConfigure(db); db.execSQL("PRAGMA journal_mode=WAL"); } } public class UserRepository { private DatabaseHelper dbHelper; public UserRepository(Context context) { dbHelper = DatabaseHelper.getInstance(context); } public void insertUsers(List<User> users) { SQLiteDatabase db = dbHelper.getWritableDatabase(); try { db.beginTransaction(); for (User user : users) { ContentValues values = new ContentValues(); values.put("name", user.getName()); db.insert("users", null, values); } db.setTransactionSuccessful(); } finally { db.endTransaction(); } } } public class UserRepository { // ... public List<User> getUsersByName(String name) { SQLiteDatabase db = dbHelper.getReadableDatabase(); Cursor cursor = db.query("users", null, "name=?", new String[]{name}, null, null, null); List<User> users = new ArrayList<>(); if (cursor != null && cursor.moveToFirst()) { do { int id = cursor.getInt(cursor.getColumnIndex("id")); String userName = cursor.getString(cursor.getColumnIndex("name")); users.add(new User(id, userName)); } while (cursor.moveToNext()); cursor.close(); } return users; } } public class UserRepository { // ... public List<User> getAllUsers() { SQLiteDatabase db = dbHelper.getReadableDatabase(); Cursor cursor = db.query("users", new String[]{"id", "name"}, null, null, null, null, null); List<User> users = new ArrayList<>(); if (cursor != null && cursor.moveToFirst()) { do { int id = cursor.getInt(cursor.getColumnIndex("id")); String userName = cursor.getString(cursor.getColumnIndex("name")); users.add(new User(id, userName)); } while (cursor.moveToNext()); cursor.close(); } return users; } } @Table(name = "users") public class User extends BaseOrmLiteEntity { @DatabaseField(columnName = "id", id = true) private int id; @DatabaseField(columnName = "name") private String name; // ... public User() { } public User(int id, String name) { this.id = id; this.name = name; } // getter and setter methods }


上一篇:
下一篇:
切换中文