onewayonelife 发表于 2013-1-30 01:14:51

Android学习笔记(十二)

SQLite事物处理
 
PersonService
package org.wp.service;/** ** 使用SQLiteDatabase的beginTransaction()方法可以开启一个事务 * 程序执行到endTransaction() 方法时会检查事务的标志是否为成功 * 如果为成功则提交事务,否则回滚事务 * 当应用需要提交事务,必须在程序执行到endTransaction()方法之前 * 使用setTransactionSuccessful() 方法设置事务的标志为成功 * 如果不调用setTransactionSuccessful() 方法,默认会回滚事务 **/import java.util.ArrayList;import java.util.List;import org.wp.domain.Person;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.util.Log;public class PersonService {private static final String TAG = "PersonService";private DataBaseOpenHelper dataBaseOpenHelper;private SQLiteDatabase database;public PersonService(Context context) {dataBaseOpenHelper = new DataBaseOpenHelper(context);}public void save() {database = dataBaseOpenHelper.getWritableDatabase();// 开始事务database.beginTransaction();try {database.execSQL("insert into person(name,age) values(?,?)",new Object[] { "张三", (short) 26 });database.execSQL("insert into person(name,age) values(?,?)",new Object[] { "田七", (short) 35 });// 调用此方法会在执行到endTransaction() 时提交当前事务,如果不调用此方法会回滚事务database.setTransactionSuccessful();} catch (Exception e) {Log.i(TAG, e.toString());}// 由事务的标志决定是提交事务,还是回滚事务database.endTransaction();}public List<Person> getScrollData(int startResult, int maxResult) {List<Person> persons = new ArrayList<Person>();database = dataBaseOpenHelper.getReadableDatabase();Cursor cursor = database.rawQuery("select * from person limit ?,?",new String[] { String.valueOf(startResult),String.valueOf(maxResult) });while (cursor.moveToNext()) {persons.add(new Person(cursor.getInt(0), cursor.getString(1),cursor.getShort(2)));}return persons;}} 
PersonServiceTest
package org.wp.db;import java.util.List;import org.wp.domain.Person;import org.wp.service.PersonService;import android.test.AndroidTestCase;import android.util.Log;public class PersonServiceTest extends AndroidTestCase {private static final String TAG = "PersonServiceTest";public void testSave() {PersonService personService = new PersonService(this.getContext());personService.save();}public void testGetScrollData() throws Exception {PersonService personService = new PersonService(this.getContext());List<Person> persons = personService.getScrollData(0, 30);for (Person person : persons) {Log.i(TAG, person.toString());}}} 
 
 
页: [1]
查看完整版本: Android学习笔记(十二)