1.创建一个包com.itheima.db.bao 新建一个类 PersonDao
package com.itheima.db.dao;
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
import java.util.jar.Attributes.Name;
import android.R.integer;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import com.itheima.db.PersonSQLiteOpenHeaper;
import com.itheima.db.domain.Person;
public class PersonDao {
private PersonSQLiteOpenHeaper helper;
//在构造方法里面完成helper的初始化
public PersonDao(Context context){
helper = new PersonSQLiteOpenHeaper(context);
}
/*
* 添加一条记录到数据库
*/
public long add(String name, String number){
SQLiteDatabase db = helper.getWritableDatabase();
//db.execSQL("insert into person (name, number) values(?,?)",new Object[]{name,number})//;public void add(String name, String number)
ContentValues values = new ContentValues();//
values.put("name", name);//
values.put("number",number);//
long id = db.insert("person", null, values);//
db.close();
return id;//
}
/*
* 查询记录是否存在
*/
public boolean find(String name) {
SQLiteDatabase db = helper.getReadableDatabase();
//Cursor cursor = db.rawQuery("select * from person where name = ?", new String[]{name});
Cursor cursor = db.query("person", null, "name = ?", new String[]{name}, null,null, null);//
boolean result = cursor.moveToNext();
cursor.close();
db.close();
return result;
}
/*
* 修改一条记录
*/
public int update(String name, String newnumber) {
SQLiteDatabase db = helper.getWritableDatabase();
//db.execSQL("update person set number = ? where name = ?", new Object[]{newnumber,name});//public void update(String name, String newnumber)
ContentValues values = new ContentValues();//
values.put("number", newnumber);//
int number = db.update("person", values, "name = ?", new String[]{name});//
db.close();
return number;//
}
/*
* 删除一条记录
*/
public int delete(String name) {
SQLiteDatabase db = helper.getWritableDatabase();
//db.execSQL("delete from person where name = ?", new Object[]{name});//public void delete(String name)
int number = db.delete("person", "name=?", new String[]{name});//
db.close();
return number;//
}
/*
* 返回全部数据库信息
*/
public List<Person> findAll(){
SQLiteDatabase db = helper.getReadableDatabase();
List<Person> persons = new ArrayList<Person>(); //联系人包装到Person对象 ,看步骤2.1
//Cursor cursor = db.rawQuery("select * from person", null);
Cursor cursor = db.query("person", new String[]{"name","id","number"}, null, null, null, null, null);//
while(cursor.moveToNext()){
int id = cursor.getInt(cursor.getColumnIndex("id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
String number = cursor.getString(cursor.getColumnIndex("number"));
Person p = new Person(id, name, number); // 看步骤2.2
persons.add(p);
}
cursor.close();
db.close();
return persons;
}
}
2.创建一个包com.itheima.db.domain 新建一个类 Person
2.1
public class Person {
private int id; //联系人内容
private String name;
private String number;
}
生成Getters and Setters方法: 右击->source->Generate Getters and Setters...->全选->finsh
2.2
生成Person构造方法: 右击->source->Generate Constructor using fileds ->全选->finsh
public Person() { //无参构造方法
}
public Person(int id, String name, String number) { //有参构造方法
this.id = id;
this.name = name;
this.number = number;
}
2.3
生成toString构造方法: 右击->source->Generate toString()... ->全选->finsh
public String toString() {
return "Person [id=" + id + ", name=" + name + ", number=" + number
+ "]";
}
package com.itheima.db.domain;
import android.R.integer;
public class Person {
private int id;
private String name;
private String number;
public Person() {
}
@Override
public String toString() {
return "Person [id=" + id + ", name=" + name + ", number=" + number
+ "]";
}
public Person(int id, String name, String number) {
this.id = id;
this.name = name;
this.number = number;
}
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 String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
}
3.测试
package com.itheima.db.test;
import java.util.List;
import com.itheima.db.PersonSQLiteOpenHeaper;
import com.itheima.db.dao.PersonDao;
import com.itheima.db.domain.Person;
import android.database.sqlite.SQLiteDatabase;
import android.test.AndroidTestCase;
public class TestPersonDB extends AndroidTestCase {
public void testCreatDB()throws Exception{
PersonSQLiteOpenHeaper helper = new PersonSQLiteOpenHeaper(getContext());
SQLiteDatabase db = helper.getWritableDatabase();
}
public void testAdd()throws Exception {
PersonDao dao = new PersonDao(getContext());
dao.add("changwuyang", "201607248");
}
public void testfind()throws Exception {
PersonDao dao = new PersonDao(getContext());
boolean result = dao.find("changwuyang");
assertEquals(true, result);
}
public void testupdate()throws Exception {
PersonDao dao = new PersonDao(getContext());
dao.update("changwuyang", "201607247");
}
public void testdelete()throws Exception {
PersonDao dao = new PersonDao(getContext());
dao.delete("changwuyang");
}
public void testAll()throws Exception {
PersonDao dao = new PersonDao(getContext());
List<Person> persons = dao.findAll();
for(Person p: persons){
System.out.println (p.toString()); //看步骤2.3
}
}
}