1
public
class DBOpenHelper extends SQLiteOpenHelper {
2 3public DBOpenHelper(Context context) {
4super(context, "itcast.db", null, 2);//<包>/databases/ 5 }
6 7 @Override
8publicvoid onCreate(SQLiteDatabase db) {//是在数据库每一次被创建的时候调用的 9 db.execSQL("CREATE TABLE person(personid integer primary key autoincrement, name varchar(20), phone VARCHAR(12) NULL)");
10 }
1112 @Override
13publicvoid onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { //数据库版本改变时调用
14 db.execSQL("ALTER TABLE person ADD amount integer");
15 }
1617 }
1
public
class
PersonService {
2
private
DBOpenHelper dbOpenHelper;
3
4
public
PersonService(Context context) {
5
this.dbOpenHelper = new DBOpenHelper(context);
6 }
7 8publicvoid payment(){
9 SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
10 db.beginTransaction();//开启事务 11try{
12 db.execSQL("update person set amount=amount-10 where personid=1");
13 db.execSQL("update person set amount=amount+10 where personid=2");
14 db.setTransactionSuccessful();//设置事务的标志为True 15 }finally{
16 db.endTransaction();//结束事务,有两种情况:commit,rollback,
17//事务的提交或回滚是由事务的标志决定的,如果事务的标志为True,事务就会提交,否侧回滚,默认情况下事务的标志为False 18 }
19 }
20/** 21 * 添加记录
22 * @param person
23*/ 24publicvoid add(Person person){
25 SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
26 db.execSQL("insert into person(name, phone, amount) values(?,?,?)",
27new Object[]{person.getName(), person.getPhone(), person.getAmount()});
28 }
29/** 30 * 删除记录
31 * @param id 记录ID
32*/ 33publicvoid delete(Integer id){
34 SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
35 db.execSQL("delete from person where personid=?", new Object[]{id});
36 }
37/** 38 * 更新记录
39 * @param person
40*/ 41publicvoid update(Person person){
42 SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
43 db.execSQL("update person set name=?,phone=?,amount=? where personid=?",
44new Object[]{person.getName(), person.getPhone(), person.getAmount(), person.getId()});
45 }
46/** 47 * 查询记录
48 * @param id 记录ID
49 * @return 50*/ 51public Person find(Integer id){
52 SQLiteDatabase db = dbOpenHelper.getReadableDatabase();
53 Cursor cursor = db.rawQuery("select * from person where personid=?", new String[]{id.toString()});
54if(cursor.moveToFirst()){
55int personid = cursor.getInt(cursor.getColumnIndex("personid"));
56int amount = cursor.getInt(cursor.getColumnIndex("amount"));
57 String name = cursor.getString(cursor.getColumnIndex("name"));
58 String phone = cursor.getString(cursor.getColumnIndex("phone"));
59returnnew Person(personid, name, phone, amount);
60 }
61 cursor.close();
62returnnull;
63 }
64/** 65 * 分页获取记录
66 * @param offset 跳过前面多少条记录
67 * @param maxResult 每页获取多少条记录
68 * @return 69*/ 70public List<Person> getScrollData(int offset, int maxResult){
71 List<Person> persons = new ArrayList<Person>();
72 SQLiteDatabase db = dbOpenHelper.getReadableDatabase();
73 Cursor cursor = db.rawQuery("select * from person order by personid asc limit ?,?",
74new String[]{String.valueOf(offset), String.valueOf(maxResult)});
75while(cursor.moveToNext()){
76int personid = cursor.getInt(cursor.getColumnIndex("personid"));
77int amount = cursor.getInt(cursor.getColumnIndex("amount"));
78 String name = cursor.getString(cursor.getColumnIndex("name"));
79 String phone = cursor.getString(cursor.getColumnIndex("phone"));
80 persons.add(new Person(personid, name, phone, amount));
81 }
82 cursor.close();
83return persons;
84 }
85/** 86 * 分页获取记录
87 * @param offset 跳过前面多少条记录
88 * @param maxResult 每页获取多少条记录
89 * @return 90*/ 91public Cursor getCursorScrollData(int offset, int maxResult){
92 SQLiteDatabase db = dbOpenHelper.getReadableDatabase();
93 Cursor cursor = db.rawQuery("select personid as _id,name,phone,amount from person order by personid asc limit ?,?",
94new String[]{String.valueOf(offset), String.valueOf(maxResult)});
95return cursor;
96 }
97 98/** 99 * 获取记录总数
100 * @return101*/102publiclong getCount(){
103 SQLiteDatabase db = dbOpenHelper.getReadableDatabase();
104 Cursor cursor = db.rawQuery("select count(*) from person", null);
105 cursor.moveToFirst();
106long result = cursor.getLong(0);
107 cursor.close();
108return result;
109 }
110 }
原文:http://www.cnblogs.com/zhangshan/p/4481559.html
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!