andriod增、删、改、查

将数据库的增删改查单独放进一个包

 1 */
 2 package com.itheima28.sqlitedemo.dao;
 3 import java.util.ArrayList;
 4 import java.util.List;
 5 
 6 import android.content.Context;
 7 import android.database.Cursor;
 8 import android.database.sqlite.SQLiteDatabase;
 9 
10 import com.itheima28.sqlitedemo.dao.entities.Person;
11 import com.itheima28.sqlitedemo.db.PersonSQliteOpenHelper;
12 public class PersonDao {//谁调用我这个操作的包,就传入自己的对象
13 private PersonSQliteOpenHelper mOpenHelper; //数据库的帮助类对象
14 
15 public PersonDao(Context context){   //构造函数
16 mOpenHelper =new PersonSQliteOpenHelper(context);
17 }

 

 

 1 //插入操作
 2 public void insert(Person person){
 3 //首先连接数据库 这个操作class PersonDao已经做了,用其对象mOpenHelper下的方法
 4 SQLiteDatabase db = mOpenHelper.getWritableDatabase();
 5 //判断数据库是否打开
 6 if(db.isOpen()){ //如果数据库打开,执行添加的操作
 7 //执行添加到数据库的操作 //Object传进来是什么,就是什么,相应前面是什么就写成?
 8 db.execSQL("insert into person(name,age) values(?,?);",new Object[]{person.getName(),person.getAge()});
 9 db.close();//数据库关闭
10 }
11 }

 

 

1 //根据id删除数据
2 public void delete(int id) {
3 SQLiteDatabase db = mOpenHelper.getWritableDatabase();//获得可写的数据库对象
4 if(db.isOpen()){ //如果数据库打开,执行下列操作 //直接传进来id。integer是一个对象类型,int不是。所以不行。
5 db.execSQL("delete from person where _id=?;",new Integer[]{id});//
6 db.close();
7 }
8 }

 

 

1 //更新
2 public void updata(int id,String name){
3 SQLiteDatabase db = mOpenHelper.getWritableDatabase();//获得可写的数据库对象
4 if(db.isOpen()){
5 db.execSQL("updata person set name =? where _id = ?;",new Object[]{name,id});
6 }
7 db.close();
8 }

 

 

 1 //查询所有
 2 public List<Person> queryALL(){
 3 SQLiteDatabase db = mOpenHelper.getWritableDatabase();//获得只读的数据库对象
 4 if(db.isOpen()){
 5 Cursor cursor = db.rawQuery("select * from person;", null); //查询得到“Cursor结果集”
 6 if(cursor !=null && cursor.getCount()>0){//查询集大于0
 7 List<Person> personList = new ArrayList<Person>();//创建一个集合personList
 8 while(cursor.moveToNext()){ //表的游标从上到下移动
 9 int id =cursor.getInt(0);//取第0列---id
10 String name = cursor.getString(1);//取第1列---name
11 int age = cursor.getInt(2);//取第2列---age
12 personList.add(new Person(id,name,age));//将取得的数据装入集合personList
13 }
14 db.close();
15 return personList;//返回这个集合
16 }
17 db.close();
18 }
19 return null;
20 }

 

 1 //查询一个,例如id
 2 public Person queryItem(int id){ //Person类型
 3 SQLiteDatabase db = mOpenHelper.getWritableDatabase();//获得只读的数据库对象
 4 if(db.isOpen()){ //因为 rawQuery(String, String[])类型所以通过id+""把int id弄成String类型
 5 Cursor cursor= db.rawQuery("select _id,name,age from person where _id=?;",new String[]{id+""} );
 6 if(cursor !=null && cursor.moveToFirst()){//moveToFirst首次找到
 7 int _id = cursor.getInt(0);//得到id
 8 String name= cursor.getString(1);//得到name
 9 int age = cursor.getInt(2);//得到年龄
10 db.close();
11 return new Person(_id,name,age);
12 }
13 }
14 return null;
15 }
16 }

 

posted @ 2015-06-13 19:50  刘小神  阅读(248)  评论(0编辑  收藏  举报