数据库的增删改查

这里写图片描述
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
       }
    } 
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值