打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
19. SQLite 数据库操作
1. 创建实体类Person
public class Person { 
 public int personId;
 public String name; 
 public String sex;
 public int age; 
 public String phone; 

 public Person() { } 

 public Person(String name, String sex, int age) { 
 this.name = name; 
 this.sex = sex;
 this.age = age; 
 }
 
public Person(String name, String sex, int age, String phone) { 
 this(name, sex, age);
 this.phone = phone;
 } 

 public Person(int personId, String name, String sex, int age, String phone) { 
 this(name, sex, age, phone); 
 this.personId = personId;
 }
 }

2. 书写DBOpenHelper类继承SQLiteOpenHelper
public class DBOpenHelper extends SQLiteOpenHelper { 
 public DBOpenHelper(Context context) { 
 super(context, "myDB.db", null, 2); 
//保存在<包>/data/data/databases 
 } 

 @Override 
 public void onCreate(SQLiteDatabase sqLiteDatabase) { 
//数据库每一次调用时创建 
 sqLiteDatabase.execSQL("create table person(" + "personid integer primary key autoincrement, name varchar(20), " + "sex varchar(10), age integer)"); 
 } 

 @Override 
 public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i2) {
 //数据库版本改变时执行 
 sqLiteDatabase.execSQL("alter table person add phone varchar(12) null");
 } 
}

3. 书写服务类完成增删改查
public class PersonService { 
 private DBOpenHelper dbOpenHelper; 
 public PersonService(Context context) { 
 this.dbOpenHelper = new DBOpenHelper(context); 
 } 

 public void save(Person person) { 
 SQLiteDatabase db = dbOpenHelper.getWritableDatabase(); 
 ContentValues values = new ContentValues(); 
 values.put("name", person.name); 
 values.put("sex", person.sex); 
 values.put("age", person.age);
 values.put("phone", person.phone); 
 db.insert("person", null, values);
 } 

 public void delete(int personId) { 
 SQLiteDatabase db = dbOpenHelper.getWritableDatabase(); 
 db.delete("person", "personid=?", new String[]{String.valueOf(personId)});
 } 

 public void update(Person person) { 
 SQLiteDatabase db = dbOpenHelper.getWritableDatabase(); 
 ContentValues values = new ContentValues(); 
 values.put("name", person.name); 
 values.put("sex", person.sex); 
 values.put("age", person.age);
 values.put("phone", person.phone); 
 db.update("person", values, "personid=?", new String[]{String.valueOf(person.pers onId)}); 
 } 

 public Person find(int personId) { 
 SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
 Cursor cursor = db.query("person", null, "personid=?", new String[]{String.valueOf( personId)}, null, null, null); 
 Person person = null; 
 while(cursor.moveToNext()) { 
 int id = cursor.getInt(cursor.getColumnIndex("personid")); 
 String name = cursor.getString(cursor.getColumnIndex("name")); 
 String sex = cursor.getString(cursor.getColumnIndex("sex")); 
 int age = cursor.getInt(cursor.getColumnIndex("age")); 
 String phone = cursor.getString(cursor.getColumnIndex("phone")); 
 person = new Person(id, name, sex, age, phone); 
 } 
 return person; 
 } 

 public List<Person> getScrollData(int offset, int maxResult) {
 List<Person> persons = new ArrayList<Person>(); 
 SQLiteDatabase db = dbOpenHelper.getWritableDatabase(); 
 Cursor cursor = db.query("person", null, null, null, null, null, "personid asc", offset + ", " + maxResult); 
 while(cursor.moveToNext()) { 
 int id = cursor.getInt(cursor.getColumnIndex("personid")); 
 String name = cursor.getString(cursor.getColumnIndex("name")); 
 String sex = cursor.getString(cursor.getColumnIndex("sex")); 
 int age = cursor.getInt(cursor.getColumnIndex("age")); 
 String phone = cursor.getString(cursor.getColumnIndex("phone"));
 persons.add(new Person(id, name, sex, age, phone));
 } 
 return persons;
 } 
 public long getCount() { 
 SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
 Cursor cursor = db.query("person", new String[]{"count(*)"}, null, null, null, null, null);  cursor.moveToFirst(); 
 long result = cursor.getLong(0); 
 return result; 
 } 
 }
 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
android中SQLite的使用总结,用excSQL和rawQuery方法实现一般得增删...
Android内容提供者(Content provider)
6.3.1 数据存储与访问之
SQLite
Android SQLite数据库版本更新
android四大组件--ContentProvider详解
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服