/**
* person表(用户账户表)对应的实体类
*
* @author Administrator
*
*/
public class Person {
private int id;
private String name;
private int age;
private int account;
public Person() {
super();
}
public Person(int id, String name, int age, int account) {
super();
this.id = id;
this.name = name;
this.age = age;
this.account = account;
}
public int getAccount() {
return account;
}
public void setAccount(int account) {
this.account = account;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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;
}
@Override
public String toString() {
return "id:" + id + " name:" + name + " age:" + "age" + " account:"
+ account;
}
/**
* 數據庫第一次創建的 時候調用 当调用SQLiteOpenHelper的getWritableDatabase()
* 或者getReadableDatabase()方法获取用于操作数据库的SQLiteDatabase实例的时候,
* 如果数据库不存在,Android系统会自动生成一个数据库 接着调用onCreate()方法 onCreate()方法在初次生成数据库时才会被调用
*/
/**
* 創建后保存在 data/data/包/database/
*/
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE person (id integer primary key, name varchar(20),age integer,account integer,CHECK (account>=0))");
}
/**
*
* 數據庫版本改變的時候調用
*/
@Override
public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {
// db.execSQL(" ALTER TABLE person ADD phone VARCHAR(12) NULL"); //
// 往表中增加一列
// DROP TABLE IF EXISTS person 删除表
}
/**
* 删除账户
*
* @param id
* 用户id
*/
public void delete(int id) {
SQLiteDatabase database = dbOpenHelper.getWritableDatabase();
database.execSQL("delete from person where id=?", new Object[] { id });
}
/**
* 更新用户的年龄
*
* @param id
* 用户id
* @param age
*/
public void updateAge(int id, int age) {
SQLiteDatabase database = dbOpenHelper.getWritableDatabase();
database.execSQL("update person set age=? where id=?", new Object[] {
age, id });
}
public Person find(int id) {
Person person = null;
SQLiteDatabase database = dbOpenHelper.getReadableDatabase();
Cursor cursor = database.rawQuery("select * from person where id=?",
new String[] { String.valueOf(id) });
if (cursor.moveToFirst()) {
person = getPerson(cursor);
}
// 注意关闭游标
cursor.close();
return person;
}
/**
* 得到所有的用户
*
* @return 用户列表
*/
public List<Person> getAll() {
List<Person> persons = new ArrayList<Person>();
SQLiteDatabase database = dbOpenHelper.getReadableDatabase();
Cursor cursor = database.rawQuery("select * from person", null);
while (cursor.moveToNext()) {
persons.add(getPerson(cursor));
}
// 注意关闭游标
cursor.close();
return persons;
}
public List<Person> getScrollData(int offset, int maxResult) {
List<Person> persons = new ArrayList<Person>();
SQLiteDatabase database = dbOpenHelper.getReadableDatabase();
Cursor cursor = database.rawQuery(
"select * from person order by id asc limit ?,?", new String[] {
String.valueOf(offset), String.valueOf(maxResult) });
while (cursor.moveToNext()) {
persons.add(getPerson(cursor));
}
// 注意关闭游标
cursor.close();
return persons;
}
/**
* 得到记录的总数
*
* @return 记录总数
*/
public long getCount() {
long count = 0;
SQLiteDatabase database = dbOpenHelper.getReadableDatabase();
Cursor cursor = database.rawQuery("select count(*) from person", null);
if (cursor.moveToFirst()) {
count = cursor.getLong(0);
}
cursor.close();
return count;
}
private Person getPerson(Cursor cursor) {
String name = cursor.getString(cursor.getColumnIndex("name"));
Integer id = cursor.getInt(cursor.getColumnIndex("id"));
int age = cursor.getInt(cursor.getColumnIndex("age"));
int account = cursor.getInt(cursor.getColumnIndex("account"));
return new Person(id, name, age, account);
}