写在前面的话,本文转载自http://www.eoeandroid.com/thread-81911-1-1.html

package it.service;import java.util.ArrayList;import java.util.List;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.util.Log;import it.bean.Person;/**** 实体操作类* rawQuery 执行sql查询* execSQL 执行增删 改的sql* 由SQLiteOpenHelper 的继承类 MangerDatabase获取数据库管理实例* 由SQLiteDatabase的对象去获取这个管理实例* 这个对象可以执行rawQuery和execSQL方法*/public class PersonService {private MangerDatabase dbmanger;public PersonService(Context context) {dbmanger=new MangerDatabase(context);}//保存public void save(Person person){/*** 打开数据库 取得数据操作对象* getWritableDatabase()和getReadableDatabase()方法都可以获取一个用于操作数据库的SQLiteDatabase实例。* 但getWritableDatabase() 方法以读写方式打开数据库,一旦数据库的磁盘空间满了,数据库就只能读而不能写,* 倘若使用的是getWritableDatabase() 方法就会出错。* getReadableDatabase()方法先以读写方式打开数据库,如果数据库的磁盘空间满了,就会打开失败* 当打开失败后会继续尝试以只读方式打开数据库。* SQLiteDatabase sqlite数据库的管理类*/SQLiteDatabase database= dbmanger.getWritableDatabase();database.execSQL("insert into person(name,age) values(?,?)",new Object[]{person.getName(),person.getAge()});}//更新public void update(Person person){SQLiteDatabase database= dbmanger.getWritableDatabase();//execSQL是执行sql语句database.execSQL("update person set name=?,age=? where personid=?",new Object[]{person.getName(),person.getAge(),person.getPersonId()});}//根据id执行查询数据public Person findbyid(Integer id){SQLiteDatabase database= dbmanger.getWritableDatabase();//Cursor是游标类 游标在数据库中其实就是一个数据集Cursor cursor = database.rawQuery("select * from person where personid=?", new String[]{String.valueOf(id)});if(cursor.moveToNext()){Log.i("xxx", "xxx"+String.valueOf(cursor.getInt(3)));Person person=new Person(cursor.getInt(0),cursor.getString(1),cursor.getShort(2));return person;}return null;}//删除public void delete(Integer... ids){if(ids.length>0){StringBuilder sb = new StringBuilder();for(Integer id : ids){sb.append('?').append(',');}//删除最后一个字符sb.deleteCharAt(sb.length()-1);SQLiteDatabase database= dbmanger.getWritableDatabase();//execSQL是执行sql语句database.execSQL("delete from person where personid in("+sb+")",(Object[])ids);}}//分页查询 一public List getdatePerson(int startResult,int maxResult){List persons=new ArrayList();SQLiteDatabase database= dbmanger.getWritableDatabase();//Cursor是游标类 游标在数据库中其实就是一个数据集//rawQuery(String sql,String[]s) 参数一 是一个sql语句 参数二是参数一sql语句中条件的占位符所存的具体值,这些值是一个字符string数组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;} 



更多相关文章

  1. ANDROID 使用 Service 在手机锁屏休眠状态下后台执行发送短信息
  2. RN 打包流程
  3. android 根据Uri获取文件绝对路径
  4. Android在onCreate()中获得控件尺寸 (转)
  5. android检查sqlite数据库中是否存在某个元素
  6. android字体闪烁动画(线程)
  7. android创建数据库(SQLite)保存图片示例
  8. Android手机开发:SQLite数据库
  9. android 项目收获01

随机推荐

  1. Android绘图系列(一)——自定义View基础
  2. Android 播放视频示例
  3. Android(安卓)2.2开始resources.arsc有改
  4. Unity3D游戏开发之Unity与Android交互调
  5. 【Android】开机自启动Service
  6. Android NDK 从入门到精通(汇总篇)
  7. Android资源(res和assets目录)
  8. ndroid:paddingLeft与android:layout_mar
  9. Android -- Looper.prepare()和Looper.lo
  10. Android 内核相关内容总结