********创建***********

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;

public class DataBaseOpenHelper extends SQLiteOpenHelper {
 public static final String DATABASE_NAME = "my.db";
 /**
  * @param context 上下文
  * @param name 数据库的名称
  * @param factory 游标工厂 --CursorFactory factory一般情况下是不需要指定的
  * @param version 版本 当我们的版本号更新的时候系统会自动调用onCreate(SQLiteDatabase db)这个方法
  *
  */
 public DataBaseOpenHelper(Context context,int version) {
  super(context, DATABASE_NAME, null, version);
 }
 /**
  * 1. 这个方法用于初始化数据库表,表结构的创建
  */
 @Override
 public void onCreate(SQLiteDatabase db) {
  db.execSQL("CREATE TABLE person (personid integer primary key autoincrement, name varchar(20), age integer)");
  
 }
 /**
  * 当版本号更改的时候会调用这个方法 @Override
  */
 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  db.execSQL("DROP TABLE IF EXISTS person");
        onCreate(db);
 }

}

********操作***********

import java.util.ArrayList;
import java.util.List;

import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import cn.itcast.domain.Person;
import cn.itcast.sqlite.opendb.DataBaseOpenHelper;

public class DataBaseService {
 private DataBaseOpenHelper opendb;
 private SQLiteDatabase db ;
 public DataBaseService(DataBaseOpenHelper opendb) {
  this.opendb = opendb;
  db = this.opendb.getReadableDatabase();
 }
 public void save(Person person) {
  db.execSQL("insert into person(name,age) values(?,?)",new Object[]{person.getName(),person.getAge()});
 }
 public void delete(Integer id) {
  db.execSQL("delete from person where personid=?",new Object[]{id});
 }
 public void update(Person person) {
  db.execSQL("update person set name=?,age=? where personid=?",new Object[]{person.getName(),person.getAge(),person.getId()});
 }
 public  Cursor getCursor(int firstResult,int maxResult) {
  Cursor cursor = db.rawQuery("select personid as _id,name,age from person limit ?,?",new String[] {firstResult+"",maxResult+""} );
  return cursor;
 }
 public Person getPerson(Integer id) {
  Person person = null;
  Cursor cursor = db.rawQuery("select * from person where personid=?",new String[] {id+""} );
  while(cursor.moveToNext()) {
   person = new Person();
   person.setId(id);
   person.setName(cursor.getString(cursor.getColumnIndex("name")));
   person.setAge(cursor.getInt(cursor.getColumnIndex("age")));
  }
  return person;
 }
 public List<Person> findPersons(int firstResult,int maxResult) {
  List<Person> persons = new ArrayList<Person>();
  Person person = null;
  Cursor cursor = db.rawQuery("select personid as _id,name,age from person limit ?,?",new String[] {firstResult+"",maxResult+""} );
  while(cursor.moveToNext()) {
   person = new Person();
   person.setId(cursor.getInt(cursor.getColumnIndex("personid")));
   person.setName(cursor.getString(cursor.getColumnIndex("name")));
   person.setAge(cursor.getInt(cursor.getColumnIndex("age")));
   persons.add(person);
  }
  
  return persons;
 }
 public long getCount() {
  Cursor cursor = db.rawQuery("select count(*) from person",null);
  cursor.moveToFirst();
  return cursor.getLong(0);
 }
}

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐