歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android SQLite增刪改查

Android SQLite增刪改查

日期:2017/3/1 10:51:04   编辑:Linux編程

//目錄結構



//編寫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. *1.如果數據庫文件不存在,SQLiteOpenHelper在自動創建數據庫後會調用oncreate()方法,
  25. *在該方法中一般需要創建表、視圖等組件。在創建前數據庫一般是空的,因此不需要先刪除數據庫中相關的組件。
  26. *2.如果數據庫文件存在,並且當前版本號高於上次創建或升級的版本號,SQLiteOpenHelper會調用onUpdate()方法
  27. *調用該方法後會更新數據庫的版本號。在onupdate()方法中除了創建表、視圖等組件外,還需要先刪除這些相關的組件,
  28. *因此,在調用onupdate()方法前,數據庫是存在的,裡面還原許多數據庫組建。
  29. *詳細了解:請看:http://hi.baidu.com/%C8%F4%CB%AA/blog/item/3d839c132e80353bdc54017b.html
  30. * */
  31. }
編寫bean Person.java
  1. package sn.len.sqllite.domain;
  2. public class Person
  3. {
  4. private Integer id;
  5. private String name;
  6. public Integer getId()
  7. {
  8. return id;
  9. }
  10. public void setId(Integer id)
  11. {
  12. this.id = id;
  13. }
  14. public String getName()
  15. {
  16. return name;
  17. }
  18. public void setName(String name)
  19. {
  20. this.name = name;
  21. }
  22. public Person(Integer id, String name)
  23. {
  24. this.id = id;
  25. this.name = name;
  26. }
  27. public Person()
  28. {
  29. }
  30. @Override
  31. public String toString()
  32. {
  33. return "Person [id=" + id + ", name=" + name + "]";
  34. }
  35. }
//編寫具體實現功能的service層PersonServic.java
  1. package sn.len.sqlite.service;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import sn.len.sqllite.domain.Person;
  5. import android.content.Context;
  6. import android.database.Cursor;
  7. import android.database.sqlite.SQLiteDatabase;
  8. public class PersonService
  9. {
  10. //拿到SQLiteDatabase對象
  11. private DbOpenHelper dbhelp;
  12. public PersonService(Context context)
  13. {
  14. this.dbhelp=new DbOpenHelper(context);
  15. }
  16. //保存
  17. public void save(Person person)
  18. {
  19. SQLiteDatabase dbopen=dbhelp.getWritableDatabase();
  20. dbopen.execSQL("insert into sqlitetable(name) values(?)", new Object[]{person.getName()});
  21. }
  22. //刪除
  23. public void del(Integer id)
  24. {
  25. SQLiteDatabase dbopen=dbhelp.getWritableDatabase();
  26. dbopen.execSQL("delete from sqlitetable where id=?", new Object[]{id});
  27. }
  28. //更新
  29. public void update(Person person)
  30. {
  31. SQLiteDatabase dbopen=dbhelp.getWritableDatabase();
  32. dbopen.execSQL("update sqlitetable set name=? where id=?", new Object[]{person.getName(),person.getId()});
  33. }
  34. //查找
  35. public Person select(Integer id)
  36. {
  37. SQLiteDatabase dbopen=dbhelp.getReadableDatabase();
  38. Cursor cursor=dbopen.rawQuery("select * from sqlitetable where id=?",new String[]{id.toString()});
  39. int db_id=cursor.getInt(cursor.getColumnIndex("id"));
  40. String name=cursor.getString(cursor.getColumnIndex("name"));
  41. return new Person(db_id,name);
  42. }
  43. //分頁
  44. public List<Person> getScrollData(Integer offset,Integer maxResult)
  45. {
  46. List<Person> p=new ArrayList<Person>();
  47. SQLiteDatabase dbopen=dbhelp.getReadableDatabase();
  48. Cursor cursor=dbopen.rawQuery("select * from sqlitetable limit ?,?", new String[]{offset.toString(),maxResult.toString()});
  49. while(cursor.moveToNext())
  50. {
  51. int id=cursor.getInt(cursor.getColumnIndex("id"));
  52. String name=cursor.getString(cursor.getColumnIndex("name"));
  53. Person persons=new Person(id,name);
  54. p.add(persons);
  55. }
  56. cursor.close();
  57. return p;
  58. }
  59. //得到總行數
  60. public long getCount()
  61. {
  62. SQLiteDatabase dbopen=dbhelp.getReadableDatabase();
  63. Cursor cusor=dbopen.rawQuery("select count(*) from sqlitetable", null);
  64. cusor.moveToFirst();//不用判斷,不管有沒能結果都會返回一條記錄
  65. long count=cusor.getLong(0);
  66. return count;
  67. }
  68. //操作數據,基本都用execSQL();
  69. //查詢數據,基本都用rawQuery();
  70. }
Copyright © Linux教程網 All Rights Reserved