Sqlite3 增删改查操作实例
来源:互联网 发布:淘宝客一月能赚多少钱 编辑:程序博客网 时间:2024/05/07 06:43
(1) 在android中使用sqlite数据库,首先需要了解SQLiteOpenHerper这个类, 是用来实现数据库初始化的一个类,我们需要继承这个类,初始化我们的数据库:
DBOpenHelper.java
package com.xiaoming.domain;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteDatabase.CursorFactory;import android.database.sqlite.SQLiteOpenHelper;public class DBOpenHelper extends SQLiteOpenHelper{public DBOpenHelper(Context context){super(context, "sqlite.db", null, 1);}@Overridepublic void onCreate(SQLiteDatabase db) {db.execSQL("create table persons (_id integer primary key autoincrement," +"name varchar null," +"age int null);" );}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {// TODO Auto-generated method stub}}
Person:
package com.xiaoming.domain;public class Person {private String name;private Integer age;private Integer personid;public Person() { name= null;age = null;personid = null;}public Person(Integer personid,String name, int age) {this.personid = personid;this.name = name;this.age = age;}public Person(String name, int age) {this.personid = null;this.name = name;this.age = age;}public Integer getPersonid() {return personid;}public void setPersonid(Integer personid) {this.personid = personid;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}
PersonService:
package com.xiaoming.service;import java.util.ArrayList;import java.util.List;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import com.xiaoming.domain.DBOpenHelper;import com.xiaoming.domain.Person;public class PersonService {Context context = null;DBOpenHelper dbOpenHelper = null;public PersonService(Context context) {this.context = context;dbOpenHelper = new DBOpenHelper( context );}/** * 添加记录 * @param p */public void insert(Person p){SQLiteDatabase db = dbOpenHelper.getWritableDatabase();db.execSQL("insert into persons(name,age) values(?,?);",new Object[]{p.getName(),p.getAge()});}/** * 删除记录 * @param id */public void delete(Integer id){SQLiteDatabase db = dbOpenHelper.getWritableDatabase();db.execSQL("delete from persons where _id=?;",new Object[]{id});}/** * 更新记录 * @param p */public void update(Person p){SQLiteDatabase db = dbOpenHelper.getWritableDatabase();db.execSQL("update persons set name=?,age=? where _id=?",new Object[]{p.getName(),p.getAge(),p.getPersonid()} );}/** * 查找记录 * @param id * @return */public Person find(Integer id){SQLiteDatabase db = dbOpenHelper.getReadableDatabase();Cursor cursor = db.rawQuery("select * from persons where _id=?", new String[]{id.toString()}) ;if( cursor.moveToFirst() ){int personid = cursor.getInt(cursor.getColumnIndex("_id"));String name = cursor.getString(cursor.getColumnIndex("name"));int age = cursor.getInt(cursor.getColumnIndex("age"));return new Person(personid,name,age);}cursor.close();return null;}/** * 分页查找记录 * @param offset * @param maxResult * @return */public List<Person> getScrollData(int offset, int maxResult){List<Person> personlist = new ArrayList<Person>();SQLiteDatabase db = dbOpenHelper.getReadableDatabase();Cursor cursor = db.rawQuery("select * from persons order by _id asc limit ?,? ",new String[]{String.valueOf(offset), String.valueOf(maxResult)}) ;while( cursor.moveToNext() ){int personid = cursor.getInt(cursor.getColumnIndex("_id"));String name = cursor.getString(cursor.getColumnIndex("name"));int age = cursor.getInt(cursor.getColumnIndex("age"));personlist.add(new Person(personid,name,age) );}cursor.close();return personlist;}/** * 得到记录数 * @return */public long getCount(){SQLiteDatabase db = dbOpenHelper.getReadableDatabase();Cursor cursor = db.rawQuery("select count(*) from persons",null );cursor.moveToFirst();long result = cursor.getLong(0);return result;}}
(3)然后需要写一个测试类PersonServiceTest:
package com.xiaoming.test;import java.util.ArrayList;import java.util.List;import com.xiaoming.domain.DBOpenHelper;import com.xiaoming.domain.Person;import com.xiaoming.service.PersonService;import android.test.AndroidTestCase;import android.util.Log;public class PersonServiceTest extends AndroidTestCase {private static final String TAG = "PersonServiceTest";public void testInsert(){PersonService pService = new PersonService(getContext());Person p = new Person("王强",40);Person p1 = new Person("小花",40);Person p2 = new Person("小狗",40);Person p3 = new Person("小猫",40);Person p4 = new Person("自傲做",40);Person p5 = new Person("我晕哦",40);Person p6 = new Person("么得",40);Person p7 = new Person("张建",40);pService.insert(p1);pService.insert(p2);pService.insert(p3);pService.insert(p4);pService.insert(p5);pService.insert(p6);pService.insert(p7);}public void testdelete(){PersonService pService = new PersonService(getContext());pService.delete(1);}public void testUpdate(){PersonService pService = new PersonService(getContext());Person p = pService.find(5);if( p == null ){Log.i(TAG,"id="+p.getPersonid()+"的人没有找到");return ;}p.setName("哈哈哈哈");pService.update(p);}public void testFind(){PersonService pService = new PersonService(getContext());Person p = pService.find(2);Log.i(TAG,"_id="+p.getPersonid()+", name="+p.getName()+", age="+p.getAge());}public void testGetScrollData(){PersonService pService = new PersonService(getContext());ArrayList<Person> pList = (ArrayList<Person>) pService.getScrollData(1, 5);for(Person p:pList){Log.i(TAG,"_id="+p.getPersonid()+", name="+p.getName()+", age="+p.getAge());}}public void testGetCount(){PersonService pService = new PersonService(getContext());long count = pService.getCount();Log.i(TAG,""+count);}}
0 0
- Sqlite3 增删改查操作实例
- sqlite3增删查改应用
- php增删改查操作实例详解
- PHP增删改查操作实例详解
- golang操作postgreSQL(增删改查实例)
- 增删查改操作
- IOS sqlite3 数据增删改查
- sqlite3增删改查C++类实现
- django sqlite3增删改查
- sqlite3 常用语法 增删改查
- sqlite3增删改查,导入导出
- C++实现Sqlite3增删改查
- django sqlite3 后台数据库的增删改查
- jQuery实例--Ajax信息的增删改查等操作
- 安卓开发SQLite增删改查操作实例
- C#Winfrom数据库增删改查实例--SQL操作版
- JDBC实现数据库的增删改查操作实例
- 对hbase进行增删改查的操作实例
- ASP.NET缓存全解析4:应用程序数据缓存
- 渗透测试必备-Firefox全套渗透装
- ASP.NET缓存全解析5:文件缓存依赖
- 解决EXTJS在firefox里字体显示偏小
- CMD常用命令
- Sqlite3 增删改查操作实例
- android ListView
- 介绍几本数学书
- ASP.NET缓存全解析6:数据库缓存依赖
- jquery之动态级联下拉列表
- 使用C#解决部分Win8.1系统窗口每隔几秒失去焦点的问题
- WPA/RSN四次握手和PTK
- ASP.NET 缓存全解析7:第三方分布式缓存解决方案 Memcached和Cacheman
- 7z 的命令行