Android SQLite增删改查

//目录结构

Android SQLite增删改查

//编写DbOpenHelper.java类,继承SQLiteOpenHelper

  1. package sn.len.sqlite.service;  
  2. import Android.content.Context;  
  3. import android.database.sqlite.SQLiteDatabase;  
  4. import android.database.sqlite.SQLiteOpenHelper;  
  5. public class DbOpenHelper extends SQLiteOpenHelper   
  6. {  
  7.     private static final String DATABASENAME="database.db";  
  8.     private static final int DATABASVERSION=1;  
  9.     public DbOpenHelper(Context context)   
  10.     {  
  11.         //实例化父类,创建数据库   
  12.         super(context, DATABASENAME, null, DATABASVERSION);  
  13.     }  
  14.     @Override  
  15.     public void onCreate(SQLiteDatabase db)   
  16.     {  
  17.         db.execSQL("create table sqlitetable(id integer primary key autoincrement,name varchar(20))");  
  18.     }  
  19.     @Override  
  20.     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)   
  21.     {  
  22.           
  23.     }  
  24.     /* 
  25.     *1.如果数据库文件不存在,SQLiteOpenHelper在自动创建数据库后会调用oncreate()方法, 
  26.     *在该方法中一般需要创建表、视图等组件。在创建前数据库一般是空的,因此不需要先删除数据库中相关的组件。 
  27.     *2.如果数据库文件存在,并且当前版本号高于上次创建或升级的版本号,SQLiteOpenHelper会调用onUpdate()方法 
  28.     *调用该方法后会更新数据库的版本号。在onupdate()方法中除了创建表、视图等组件外,还需要先删除这些相关的组件, 
  29.     *因此,在调用onupdate()方法前,数据库是存在的,里面还原许多数据库组建。 
  30.     *详细了解:请看:http://hi.baidu.com/%C8%F4%CB%AA/blog/item/3d839c132e80353bdc54017b.html 
  31.     * */  
  32. }  
编写bean Person.java
  1. package sn.len.sqllite.domain;  
  2.   
  3. public class Person   
  4. {  
  5.     private Integer id;  
  6.     private String name;  
  7.     public Integer getId()   
  8.     {  
  9.         return id;  
  10.     }  
  11.     public void setId(Integer id)   
  12.     {  
  13.         this.id = id;  
  14.     }  
  15.     public String getName()   
  16.     {  
  17.         return name;  
  18.     }  
  19.     public void setName(String name)   
  20.     {  
  21.         this.name = name;  
  22.     }  
  23.     public Person(Integer id, String name)   
  24.     {  
  25.         this.id = id;  
  26.         this.name = name;  
  27.     }  
  28.     public Person()  
  29.     {  
  30.           
  31.     }  
  32.     @Override  
  33.     public String toString()   
  34.     {  
  35.         return "Person [id=" + id +  + name + }  
//编写具体实现功能的service层PersonServic.java
  1. package sn.len.sqlite.service;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.List;  
  5.   
  6. import sn.len.sqllite.domain.Person;  
  7. import android.content.Context;  
  8. import android.database.Cursor;  
  9. import android.database.sqlite.SQLiteDatabase;  
  10.   
  11. public class PersonService   
  12. {  
  13.     //拿到SQLiteDatabase对象   
  14.     private DbOpenHelper dbhelp;  
  15.     public PersonService(Context context)  
  16.     {  
  17.         this.dbhelp=new DbOpenHelper(context);  
  18.     }  
  19.     //保存   
  20.     public void save(Person person)  
  21.     {  
  22.         SQLiteDatabase dbopen=dbhelp.getWritableDatabase();  
  23.         dbopen.execSQL("insert into sqlitetable(name) values(?)"new Object[]{person.getName()});  
  24.     }  
  25.     //删除   
  26.     public void del(Integer id)  
  27.     {  
  28.         SQLiteDatabase dbopen=dbhelp.getWritableDatabase();  
  29.         dbopen.execSQL("delete from sqlitetable where id=?"new Object[]{id});  
  30.     }  
  31.     //更新   
  32.     public void update(Person person)  
  33.     {  
  34.         SQLiteDatabase dbopen=dbhelp.getWritableDatabase();  
  35.         dbopen.execSQL("update sqlitetable set name=? where id=?"new Object[]{person.getName(),person.getId()});  
  36.     }  
  37.     //查找   
  38.     public Person select(Integer id)  
  39.     {  
  40.         SQLiteDatabase dbopen=dbhelp.getReadableDatabase();  
  41.         Cursor cursor=dbopen.rawQuery("select * from sqlitetable where id=?",new String[]{id.toString()});  
  42.         int db_id=cursor.getInt(cursor.getColumnIndex("id"));  
  43.         String name=cursor.getString(cursor.getColumnIndex("name"));  
  44.         return new Person(db_id,name);  
  45.     }  
  46.     //分页   
  47.     public List<Person> getScrollData(Integer offset,Integer maxResult)  
  48.     {  
  49.         List<Person> p=new ArrayList<Person>();  
  50.         SQLiteDatabase dbopen=dbhelp.getReadableDatabase();  
  51.         Cursor cursor=dbopen.rawQuery("select * from sqlitetable limit ?,?"new String[]{offset.toString(),maxResult.toString()});  
  52.         while(cursor.moveToNext())  
  53.         {  
  54.             int id=cursor.getInt(cursor.getColumnIndex("id"));  
  55.             String name=cursor.getString(cursor.getColumnIndex("name"));  
  56.             Person persons=new Person(id,name);  
  57.             p.add(persons);  
  58.         }  
  59.         cursor.close();  
  60.         return p;  
  61.     }  
  62.     //得到总行数   
  63.     public long getCount()  
  64.     {  
  65.         SQLiteDatabase dbopen=dbhelp.getReadableDatabase();  
  66.         Cursor cusor=dbopen.rawQuery("select count(*) from sqlitetable"null);  
  67.         cusor.moveToFirst();//不用判断,不管有没能结果都会返回一条记录   
  68.         long count=cusor.getLong(0);  
  69.         return count;  
  70.     }  
  71.       
  72.     //操作数据,基本都用execSQL();   
  73.     //查询数据,基本都用rawQuery();   
  74. }  

相关推荐