SQLite数据库增删改查操作

来源:互联网 发布:男女对唱的网络歌曲 编辑:程序博客网 时间:2024/05/16 10:53

数据库建立工具类:

package com.sqlite;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;public class DBOpenHelper extends SQLiteOpenHelper {public DBOpenHelper(Context context) {//第一个参数上下文对象,第二参数为数据库名,第三迭代结果,第四为版本号super(context, "dbtest.db", null, 4);}@Overridepublic void onCreate(SQLiteDatabase db) {//是在数据库每一次被创建的时候调用的db.execSQL("CREATE TABLE person(personid integer primary key autoincrement, name varchar(20), phone VARCHAR(12) NULL)");}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {db.execSQL("ALTER TABLE person ADD amount integer");}}

增删改查业务类:

package com.sqlite;import java.util.ArrayList;import java.util.List;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;public class PersonService {private DBOpenHelper dbOpenHelper;//构造方法public PersonService(Context context) {this.dbOpenHelper = new DBOpenHelper(context);}/** * 添加记录 * @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<Person> getScrollData(int offset, int maxResult){List<Person> persons = new ArrayList<Person>();SQLiteDatabase db = dbOpenHelper.getReadableDatabase();Cursor cursor = db.rawQuery("select * from person order by personid asc limit ?,?",new String[]{String.valueOf(offset), String.valueOf(maxResult)});while(cursor.moveToNext()){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"));persons.add(new Person(personid, name, phone, amount));}cursor.close();return persons;}/** * 分页获取记录 * @param offset 跳过前面多少条记录 * @param maxResult 每页获取多少条记录 * @return */public Cursor getCursorScrollData(int offset, int maxResult){SQLiteDatabase db = dbOpenHelper.getReadableDatabase();Cursor cursor = db.rawQuery("select personid as _id,name,phone,amount from person order by personid asc limit ?,?",new String[]{String.valueOf(offset), String.valueOf(maxResult)});return cursor;}/** * 获取记录总数 * @return */public long getCount(){SQLiteDatabase db = dbOpenHelper.getReadableDatabase();Cursor cursor = db.rawQuery("select count(*) from person", null);cursor.moveToFirst();long result = cursor.getLong(0);cursor.close();return result;}}

测试用例类:

import java.util.List;import android.test.AndroidTestCase;import android.util.Log;import com.sqlite.DBOpenHelper;import com.sqlite.Person;import com.sqlite.PersonService;public class PersonServiceTest extends AndroidTestCase {private static final String TAG = "PersonServiceTest";public void testCreatDB() throws Exception{DBOpenHelper dbOpenHelper = new DBOpenHelper(getContext());dbOpenHelper.getWritableDatabase();}public void testSave() throws Exception{PersonService service = new PersonService(this.getContext());for(int i = 0 ; i < 20 ; i++){Person person = new Person("name"+ i, "13555"+ i, 100);service.save(person);}}public void testDelete() throws Exception{PersonService service = new PersonService(this.getContext());service.delete(21);}public void testUpdate() throws Exception{PersonService service = new PersonService(this.getContext());Person person = service.find(1);person.setName("nameedit");service.update(person);}public void testFind() throws Exception{PersonService service = new PersonService(this.getContext());Person person = service.find(1);Log.i(TAG, person.toString());}public void testScrollData() throws Exception{PersonService service = new PersonService(this.getContext());List<Person> persons = service.getScrollData(0, 5);for(Person person : persons){Log.i(TAG, person.toString());}}public void testCount() throws Exception{PersonService service = new PersonService(this.getContext());long result = service.getCount();Log.i(TAG, result+"");}public void testUpdateAmount() throws Exception{PersonService service = new PersonService(this.getContext());Person person1 = service.find(1);Person person2 = service.find(2);person1.setAmount(100);person2.setAmount(50);service.update(person1);service.update(person2);}}


原创粉丝点击