package com.travelsky.service;

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

/**
*
* 作者:wtmax<br>
* 功能描述: SQLite操纵类,可以生成及更新指定名称数据库<br>
* 创建时间:2011-09-21 21:56:57<br>
* 版本信息:1.0 <br>
* Copyright: Copyright (c) 2011<br>
*/
public class DataBaseOpenHelper extends SQLiteOpenHelper {

public static final String DBNAME = "travelsky";
public static final int version = 1;

public DataBaseOpenHelper(Context context) {
super(context, DBNAME, null, version);//数据库版本如有发生变更,就会调用onUpgrade方法
}

@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE person (personid integer primary key autoincrement, name varchar(20), age INTEGER)");
}

/**
* 数据库版本如有发生变更,就会调用onUpgrade方法
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS person");
onCreate(db);
}

}


package com.travelsky.service;

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

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

import com.travelsky.domain.Person;

/**
*
* 作者:wtmax<br>
* 功能描述: SQLite操纵类,可以对指定名称数据库中的表进行CRUD操作<br>
* 创建时间:2011-09-21 22:28:57<br>
* 版本信息:1.0 <br>
* Copyright: Copyright (c) 2011<br>
*/
public class PersonService {
private DataBaseOpenHelper dbOpenHelper;

public PersonService(Context context) {
dbOpenHelper = new DataBaseOpenHelper(context);
}

public void saves(){
SQLiteDatabase database = dbOpenHelper.getWritableDatabase();
database.beginTransaction();
try{
database.execSQL("insert into person(name, age) values(?,?)", new Object[]{"立马", (short)32});
database.execSQL("insert into person(name, age) values(?,?)", new Object[]{"当下", (short)37});
database.setTransactionSuccessful();//提交事务(做到事务统一)
}catch(Exception e){

}
database.endTransaction();
// database.close();
}

public void save(Person person){
SQLiteDatabase database = dbOpenHelper.getWritableDatabase();
database.execSQL("insert into person(name, age) values(?,?)", new Object[]{person.getName(), person.getAge()});
// database.close();
}

public void update(Person person){
SQLiteDatabase database = dbOpenHelper.getWritableDatabase();
database.execSQL("update person set name=?, age=? where personid=?",
new Object[]{person.getName(), person.getAge(), person.getId()});
}

public Person find(Integer id){
SQLiteDatabase database = dbOpenHelper.getWritableDatabase();
Cursor cursor = database.rawQuery("select * from person where personid=?", new String[]{String.valueOf(id)});
if(cursor.moveToNext()){
return new Person(cursor.getInt(0),cursor.getString(1),cursor.getShort(2));
}
return null;
}

public void delete(Integer... ids){
if(ids.length>0){
SQLiteDatabase database = dbOpenHelper.getWritableDatabase();
StringBuffer sb = new StringBuffer();
for(Integer id : ids){
sb.append('?').append(",");
}
sb.deleteCharAt(ids.length-1);
database.execSQL("delete person where personid in("+sb+")",
new Object[]{ids});
}
}

public List<Person> getScrollData(int startResult, int maxResult){
SQLiteDatabase database = dbOpenHelper.getWritableDatabase();
List<Person> persons = new ArrayList<Person>();
Cursor cursor = database.rawQuery("select * from person limit ?, ?",
new String[]{String.valueOf(startResult), String.valueOf(maxResult)});
while(cursor.moveToNext()){
persons.add(new Person(cursor.getInt(0),cursor.getString(1),cursor.getShort(2)));
}
return persons;
}

public long getCount(){
SQLiteDatabase database = dbOpenHelper.getWritableDatabase();
Cursor cursor = database.rawQuery("select count(*) from person", null);
if(cursor.moveToNext()){
return cursor.getLong(0);
}
return 0;
}
}


package com.travelsky.service;

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

import com.travelsky.domain.Person;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

public class OtherPersonService {

private DataBaseOpenHelper dbOpenHelper;

public OtherPersonService(Context context) {
dbOpenHelper = new DataBaseOpenHelper(context);
}

public void save(Person person){
SQLiteDatabase database = dbOpenHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", person.getName());
values.put("age", person.getAge());
database.insert("person", "name", values);
}

public void update(Person person){
SQLiteDatabase database = dbOpenHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", person.getName());
values.put("age", person.getAge());
database.update("person", values, "personid=?", new String[]{String.valueOf(person.getId())});
}

public Person find(Integer id){
SQLiteDatabase database = dbOpenHelper.getWritableDatabase();
Cursor cursor = database.query("person", new String[]{"personid", "name", "age"},
"personid=?", new String[]{String.valueOf(id)}, null, null, null);
if(cursor.moveToNext()){
return new Person(cursor.getInt(0), cursor.getString(1), cursor.getShort(2));
}
return null;
}

public void delete(Integer... ids){
if(null != ids && ids.length>0){
SQLiteDatabase database = dbOpenHelper.getWritableDatabase();
StringBuffer sb = new StringBuffer();
String[] sbIds = new String[sb.length()];
for(int i=0;i<ids.length;i++){
sb.append('?').append(',');
sbIds[i] = String.valueOf(ids[i]);
}
sb.deleteCharAt(sb.length()-1);
database.delete("person", "personid in("+sb+")", sbIds);
}
}

public List<Person> getScrollData(int startResult, int maxResult){
SQLiteDatabase database = dbOpenHelper.getWritableDatabase();
List<Person> persons = new ArrayList<Person>();
Cursor cursor = database.query("person", new String[]{"personid", "name", "age"},
null, null, null, null, "personid desc", startResult + "," + maxResult);
while(cursor.moveToNext()){
persons.add(new Person(cursor.getInt(0), cursor.getString(1), cursor.getShort(2)));
}
return persons;
}

public int count(){
SQLiteDatabase database = dbOpenHelper.getWritableDatabase();
Cursor cursor = database.query("person", new String[]{"count(*)"}, null, null, null, null, null);
if(cursor.moveToNext()){
return cursor.getInt(0);
}
return 0;
}
}

更多相关文章

  1. android:keyboardNavigationCluster
  2. SQlite Android(安卓)数据库应用程序系统
  3. Google Android's Gingerbread Update Coming Soon
  4. android首页Splash页面简单实现
  5. android SQLite的CRUD
  6. Android(安卓)打包失败,提示 Android(安卓)resource linking fail
  7. Android版本和API Level对应关系
  8. Android版本号与API级别对应关系表
  9. android判断用户是否已登陆详细代码

随机推荐

  1. i.MX Android(安卓)R10.3 User Guide Upd
  2. Android(安卓)Res xml
  3. android 自定义表盘控件
  4. Android(安卓)高德地图驾车路线规划
  5. Android(安卓)广播(Android(安卓)10)
  6. Android(安卓)SMS(一) —— 读取短信
  7. android 利用service来播放音乐
  8. android判断网络状态
  9. Android读取手机短信
  10. 『ANDROID』Android实现图片缩放与旋转