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

* 功能描述: SQLite操纵类,可以生成及更新指定名称数据库

* 创建时间:2011-09-21 21:56:57

* 版本信息:1.0

* Copyright: Copyright (c) 2011

*/
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

* 功能描述: SQLite操纵类,可以对指定名称数据库中的表进行CRUD操作

* 创建时间:2011-09-21 22:28:57

* 版本信息:1.0

* Copyright: Copyright (c) 2011

*/
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 getScrollData(int startResult, int maxResult){
SQLiteDatabase database = dbOpenHelper.getWritableDatabase();
List persons = new ArrayList();
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 sb.append('?').append(',');
sbIds[i] = String.valueOf(ids[i]);
}
sb.deleteCharAt(sb.length()-1);
database.delete("person", "personid in("+sb+")", sbIds);
}
}

public List getScrollData(int startResult, int maxResult){
SQLiteDatabase database = dbOpenHelper.getWritableDatabase();
List persons = new ArrayList();
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(安卓)O 版本(Android(安卓)8.0) 存储空间不足时提醒
  2. Android(安卓)数据库 短信 监听
  3. Android各版本对应的SDK和JDK版本
  4. Android(安卓)揭露效果兼容低版本
  5. android aosp 源码版本
  6. Android对应的版本号
  7. Could not find com.android.tools.build:aapt2:3.2.0-4818971.
  8. Android(安卓)新加几个开源项目
  9. NDK各版本下载

随机推荐

  1. 国内关于http://developer.android.com网
  2. Android官方开发文档Training系列课程中
  3. 获取或同步MeeGo和Android项目源码的脚本
  4. Android小疑问解答:为什么ScrollView嵌套
  5. Android(安卓)Studio、Eclipse ADT无法更
  6. Android调用C# .net 的WebService接口
  7. Android中“android:elevation”设置阴影
  8. android的计算器简单布局————网格布
  9. Android(安卓)N之后 Webview导致多语言切
  10. Android(安卓)文字自动滚动(跑马灯)效果的