当前位置:首页 > 数据库 > SQlite

SQLite操作

             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)!