黑马程序员技术交流社区

标题: 增删改查操作 [打印本页]

作者: liujian5461267    时间: 2016-4-30 14:13
标题: 增删改查操作
  1. package cn.itcast.service;

  2. import java.util.ArrayList;
  3. import java.util.List;

  4. import android.content.ContentValues;
  5. import android.content.Context;
  6. import android.database.Cursor;
  7. import android.database.sqlite.SQLiteDatabase;

  8. import cn.itcast.domain.Person;

  9. public class OtherPersonService {
  10.         private DBOpenHelper dbOpenHelper;

  11.         public OtherPersonService(Context context) {
  12.                 this.dbOpenHelper = new DBOpenHelper(context);
  13.         }
  14.         /**
  15.          * 添加记录
  16.          * @param person
  17.          */
  18.         public void save(Person person){
  19.                 SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
  20.                 ContentValues values = new ContentValues();
  21.                 values.put("name", person.getName());
  22.                 values.put("phone", person.getPhone());
  23.                 values.put("amount", person.getAmount());
  24.                
  25.                 /*第二个参数为空值字段,当第三个参数为null或空时设置,不能设置为personid
  26.                 db.execSQL("insert into person(name, phone, amount) values(?,?,?)",
  27.                 new Object[]{person.getName(), person.getPhone(), person.getAmount()});
  28.                 */
  29.                 db.insert("person", null, values);
  30.         }
  31.         /**
  32.          * 删除记录
  33.          * @param id 记录ID
  34.          */
  35.         public void delete(Integer id){
  36.                 SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
  37.                 db.delete("person", "personid=?", new String[]{id.toString()});
  38.                 //db.execSQL("delete from person where personid=?", new Object[]{id});
  39.         }
  40.         /**
  41.          * 更新记录
  42.          * @param person
  43.          */
  44.         public void update(Person person){
  45.                 SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
  46.                 ContentValues values = new ContentValues();
  47.                 values.put("name", person.getName());
  48.                 values.put("phone", person.getPhone());
  49.                 values.put("amount", person.getAmount());
  50.                 db.update("person", values, "personid=?", new String[]{person.getId().toString()});
  51.                 //db.execSQL("update person set name=?,phone=?,amount=? where personid=?",
  52.                 //new Object[]{person.getName(), person.getPhone(),  person.getAmount(), person.getId()});
  53.         }
  54.         /**
  55.          * 查询记录
  56.          * @param id 记录ID
  57.          * @return
  58.          */
  59.         public Person find(Integer id){
  60.                 SQLiteDatabase db = dbOpenHelper.getReadableDatabase();
  61. //第二个参数设为null表示获取虽有数据,等于new String[]{"name"+"phone"+"..."}               
  62.                 Cursor cursor = db.query("person", null, "personid=?", new String[]{id.toString()}, null, null, null);
  63. //Cursor cursor = db.rawQuery("select * from person where personid=?", new String[]{id.toString()});               
  64.                 if(cursor.moveToFirst()){
  65.                         int personid = cursor.getInt(cursor.getColumnIndex("personid"));
  66.                         int amount = cursor.getInt(cursor.getColumnIndex("amount"));
  67.                         String name = cursor.getString(cursor.getColumnIndex("name"));
  68.                         String phone = cursor.getString(cursor.getColumnIndex("phone"));
  69.                         return new Person(personid, name, phone, amount);
  70.                 }
  71.                 cursor.close();
  72.                 return null;
  73.         }
  74.         /**
  75.          * 分页获取记录
  76.          * @param offset 跳过前面多少条记录
  77.          * @param maxResult 每页获取多少条记录
  78.          * @return
  79.          */
  80.         public List<Person> getScrollData(int offset, int maxResult){
  81.                 List<Person> persons = new ArrayList<Person>();
  82.                 SQLiteDatabase db = dbOpenHelper.getReadableDatabase();
  83. Cursor cursor = db.query("person", null, null, null, null, null, "personid asc", offset+ ","+ maxResult);
  84. //Cursor cursor = db.rawQuery("select * from person order by personid asc limit ?,?",
  85. //                new String[]{String.valueOf(offset), String.valueOf(maxResult)});               
  86.                 while(cursor.moveToNext()){
  87.                         int personid = cursor.getInt(cursor.getColumnIndex("personid"));
  88.                         int amount = cursor.getInt(cursor.getColumnIndex("amount"));
  89.                         String name = cursor.getString(cursor.getColumnIndex("name"));
  90.                         String phone = cursor.getString(cursor.getColumnIndex("phone"));
  91.                         persons.add(new Person(personid, name, phone, amount));
  92.                 }
  93.                 cursor.close();
  94.                 return persons;
  95.         }
  96.         /**
  97.          * 获取记录总数
  98.          * @return
  99.          */
  100.         public long getCount(){
  101.                 SQLiteDatabase db = dbOpenHelper.getReadableDatabase();
  102.                 Cursor cursor = db.query("person", new String[]{"count(*)"}, null, null, null, null, null);
  103.                 //        Cursor cursor = db.rawQuery("select count(*) from person", null);
  104.                
  105.                 cursor.moveToFirst();
  106.                 long result = cursor.getLong(0);
  107.                 cursor.close();
  108.                 return result;
  109.         }
  110. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2