// 通过SQLiteOpenHelper调用如下方法时会返回SQLiteDatabase,通过SQLiteDatabase可以对数据库进行操作
getWritableDatabase()
getReadableDatabase()
public class PersonService {private DBOpenHelper dbOpenHelper;public PersonService(Context context) {this.dbOpenHelper = new DBOpenHelper(context);}public void payment(){ 通过SQLiteOpenHelper调用如下方法时会返回SQLiteDatabase,通过SQLiteDatabase可以对数据库进行操作SQLiteDatabase db = dbOpenHelper.getWritableDatabase();db.beginTransaction();//开启事务try{db.execSQL("update person set amount=amount-10 where personid=1");db.execSQL("update person set amount=amount+10 where personid=2");db.setTransactionSuccessful();//设置事务的标志为True}finally{db.endTransaction();//结束事务,有两种情况:commit,rollback,//事务的提交或回滚是由事务的标志决定的,如果事务的标志为True,事务就会提交,否侧回滚,默认情况下事务的标志为False
}}/*** 添加记录* @param person*/public void save(Person person){SQLiteDatabase db = dbOpenHelper.getWritableDatabase();db.execSQL("insert into person(name, phone, amount) values(?,?,?)",new Object[]{person.getName(), person.getPhone(), person.getAmount()});}/*** 删除记录* @param id 记录ID*/public void delete(Integer id){SQLiteDatabase db = dbOpenHelper.getWritableDatabase();db.execSQL("delete from person where personid=?", new Object[]{id});}/*** 更新记录* @param person*/public void update(Person person){SQLiteDatabase db = dbOpenHelper.getWritableDatabase();db.execSQL("update person set name=?,phone=?,amount=? where personid=?",new Object[]{person.getName(), person.getPhone(), person.getAmount(), person.getId()});}/*** 查询记录* @param id 记录ID* @return*/public Person find(Integer id){SQLiteDatabase db = dbOpenHelper.getReadableDatabase();Cursor cursor = db.rawQuery("select * from person where personid=?", new String[]{id.toString()});if(cursor.moveToFirst()){int personid = cursor.getInt(cursor.getColumnIndex("personid"));int amount = cursor.getInt(cursor.getColumnIndex("amount"));String name = cursor.getString(cursor.getColumnIndex("name"));String phone = cursor.getString(cursor.getColumnIndex("phone"));return new Person(personid, name, phone, amount);}cursor.close();return null;}/*** 分页获取记录* @param offset 跳过前面多少条记录* @param maxResult 每页获取多少条记录* @return*/public List
}
public class OtherPersonService {private DBOpenHelper dbOpenHelper;public OtherPersonService(Context context) {this.dbOpenHelper = new DBOpenHelper(context);}/*** 添加记录* @param person*/public void save(Person person){SQLiteDatabase db = dbOpenHelper.getWritableDatabase();ContentValues values = new ContentValues();values.put("name", person.getName());values.put("phone", person.getPhone());values.put("amount", person.getAmount());db.insert("person", null, values);}/*** 删除记录* @param id 记录ID*/public void delete(Integer id){SQLiteDatabase db = dbOpenHelper.getWritableDatabase();db.delete("person", "personid=?", new String[]{id.toString()});}/*** 更新记录* @param person*/public void update(Person person){SQLiteDatabase db = dbOpenHelper.getWritableDatabase();ContentValues values = new ContentValues();values.put("name", person.getName());values.put("phone", person.getPhone());values.put("amount", person.getAmount());db.update("person", values, "personid=?", new String[]{person.getId().toString()});}/*** 查询记录* @param id 记录ID* @return*/public Person find(Integer id){SQLiteDatabase db = dbOpenHelper.getReadableDatabase();Cursor cursor = db.query("person", null, "personid=?", new String[]{id.toString()}, null, null, null);if(cursor.moveToFirst()){int personid = cursor.getInt(cursor.getColumnIndex("personid"));int amount = cursor.getInt(cursor.getColumnIndex("amount"));String name = cursor.getString(cursor.getColumnIndex("name"));String phone = cursor.getString(cursor.getColumnIndex("phone"));return new Person(personid, name, phone, amount);}cursor.close();return null;}/*** 分页获取记录* @param offset 跳过前面多少条记录* @param maxResult 每页获取多少条记录* @return*/public List
}