Sqlite数据库相关操作
1 数据库思路 2 SQLiteOpenHelper的引入 3 DataBaSEOpenHelper 的使用 4 数据库的增删改查操作 增加示例: 更新示例:
查找示例: public Person find(int personId){ SQLiteDatabase db=openHelper.getWritableDatabase(); Cursor cursor=db.rawQuery("select * from person where personid=?",new String[]{String.valueOf(i)}); while(cursor.moveToFirst()){ int personid=cursor.getInt(cursor.getColumnIndex("personid")); String name=cursor.getString(cursor.getColumnIndex("name")); String phone=cursor.getString(cursor.getColumnIndex("phone")); return new Person(personid,name,phone); } cursor.close(); return null; }
统计示例: public int count(){ SQLiteDatabase db=openHelper.getReadableDatabase(); Cursor cursor=db.rawQuery("select count(*) from person",null); int i=0; while(cursor.moveToFirst()){ i=cursor.getInt(0); break; } return i; } 分页示例: public List<Person> page(int offset,int resuletNumber){ SQLiteDatabase db=openHelper.getWritableDatabase(); ArrayList<Person> persons=new ArrayList<Person>(); Person person; Cursor cursor=db.rawQuery("select * from person limit ?,?",new String []{String.valueOf(offset),String.valueOf(resuletNumber)}); while(cursor.moveToNext()){ int personid=cursor.getInt(cursor.getColumnIndex("personid")); String name=cursor.getString(cursor.getColumnIndex("name")); String phone=cursor.getString(cursor.getColumnIndex("phone")); person=new Person(personid,phone); persons.add(person); } return persons; }
public void payment(){ 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();//设置事务的标志为成功 }finally{ db.endTransaction();//结束事务,默认情况下是回滚事务 } } 结束事务有两种:提交事务和回滚事务。默认情况是回滚事务!!! 事务是否提交是由事务的标志来决定的,如果事务的标志位失败(false),那么就回滚事务,否则(true)提交事务。 所以默认情况下事务的标志为失败(false),事务回滚. 为什么要把结束事务放在finally里面? 若不这样当事务发生异常,便不会往下执行了,数据库要等到一个超时后才会结束事务而影响性能,所以在finally里将其结束 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |