Cursor:游标结果集
PersonSQliteOpenHelper.java:
public class PersonSQLiteOpenHelper extends SQLiteOpenHelper {
/**
* 数据库的构造函数
*
* @param context
*
// *name:数据库名称
// *factory:游标工厂
// *version:数据库版本号 >=1
*/
public PersonSQLiteOpenHelper(Context context ) {
super(context, "mydb.db3",null, 1);
// TODO Auto-generated constructor stub
}
/**
* 数据库第一次创建时调用的方法
*/
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
String sql = "create table person(_id integer ,name varchar(20),age integer);";
db.execSQL(sql);//创建person表
}
/**
* 数据库版本号更新时调用方法
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}PersonDao.java:
public class PersonDao {
public static PersonSQLiteOpenHelper mHelper;
public PersonDao(Context context) {
// TODO Auto-generated constructor stub
mHelper = new PersonSQLiteOpenHelper(context);
}
// 添加到person 一条数据
public void insert(Person person) {
SQLiteDatabase db = mHelper.getWritableDatabase();
if (db.isOpen()) {// 如果数据库打开,执行插入操作
// String sql = "insert into person(name, age) values ('lisi',12);";
db.execSQL("insert into person(name,age) values (?,?)",
new Object[] { person.getName(), person.getAge() });
db.close();
}
}
public void delete(int id) {
SQLiteDatabase db = mHelper.getWritableDatabase();
if (db.isOpen()) {
db.execSQL("delete from person where _id = ?", new Integer[] { id });
db.close();
}
}
public void update(int id ,String name) {
SQLiteDatabase db = mHelper.getWritableDatabase();
if (db.isOpen()) {
db.execSQL("update person set name = ? where _id = ?",
new Object[] { name, id });
db.close();
}
}
public List<Person> queryAll() {
SQLiteDatabase db = mHelper.getReadableDatabase();
if (db.isOpen()) {
// db.execSQL("select * from person ;");
Cursor cursor = db.rawQuery("select _id ,name , age from person ;",
null);
int id, age;
String name;
if (cursor != null && cursor.getColumnCount() > 0) {
List<Person> personList = new ArrayList<Person>();
while (cursor.moveToNext()) {
id = cursor.getInt(0);
name = cursor.getString(1);
age = cursor.getInt(2);
personList.add(new Person(id, name, age));
}
db.close();
return personList;
}
db.close();
}
return null;
}
public Person queryItem(int id) {
SQLiteDatabase db = mHelper.getReadableDatabase();
if (db.isOpen()) {
int _id;
String name;
int age;
Cursor cursor = db.rawQuery(
"select _id,name,age from person where _id = ?",
new String[] { id + "" });
if (cursor != null && cursor.moveToFirst()) {
_id = cursor.getInt(0);
name = cursor.getString(1);
age = cursor.getInt(2);
db.close();
return new Person(_id, name, age);
}
db.close();
}
return null;
}
}
Testcase.java:
import java.util.List;
import dao.PersonDao;
import entities.Person;
import DB.PersonSQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase;
import android.test.AndroidTestCase;
import android.util.Log;
public class TestCase extends AndroidTestCase {
private static final String TAG = "TestCase";
public void test() {
// 数据库什么时候创建
// 调用这个方法,数据库是不会创建的
PersonSQLiteOpenHelper openHelper = new PersonSQLiteOpenHelper(
getContext());
// 此时才创建,并执行onCreate方法
openHelper.getReadableDatabase();
}
public void testInsert() {
PersonDao dao = new PersonDao(getContext());
dao.insert(new Person(0, "guanxi", 77));
}
public void testDelete() {
PersonDao dao = new PersonDao(getContext());
dao.delete(1);
}
public void testUpdate() {
PersonDao dao = new PersonDao(getContext());
dao.update(1, "fengjie");
}
public void testQueryAll() {
PersonDao dao = new PersonDao(getContext());
List<Person> persons = dao.queryAll();
for (Person person : persons) {
Log.i(TAG, person.toString());
}
}
public void testQueryItem() {
PersonDao dao = new PersonDao(getContext());
Person person = dao.queryItem(1);
Log.i(TAG, person.toString());
}
}
Android---38---SQLiteOpenHelper类
原文:http://blog.csdn.net/u013476556/article/details/45668111