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 }