歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

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=" + name + "]";  
  36.     }  
  37. }  
//編寫具體實現功能的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. }  
Copyright © Linux教程網 All Rights Reserved