安卓中对SQLite数据库的增删改查

来源:互联网 发布:net就业前景 知乎 编辑:程序博客网 时间:2024/05/19 03:24

第一步:编写一个java Bean

package com.itfom.entity;public class Person {private String name;private int age;private String phone;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}//创建构造函数public  Person(){}public Person(String name,int age,String phone){this.name=name;this.age=age;this.phone=phone;}//重写toString@Overridepublic String toString() {return "姓名:"+name+"年龄:"+age+"电话:"+phone+"\n";}}
第二步:创建数据库

package com.itfom.helper;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;public class OpenHelper extends SQLiteOpenHelper {public OpenHelper(Context context) {//这三个参数分别为上下文对象,数据库名称,游标,版本号super(context, "xsc.db", null, 1);}@Overridepublic void onCreate(SQLiteDatabase db) {db.execSQL("create table person(name varchar(50),age integer,phone varchar(50))");}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {   // 注:生产环境上不能做删除操作        db.execSQL("DROP TABLE IF EXISTS person");         onCreate(db);}}

第三步:创建数据库的操作类

package com.itfom.entitydao;import java.util.ArrayList;import java.util.List;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import com.itfom.entity.Person;import com.itfom.helper.OpenHelper;public class PersonDao {private OpenHelper helper = null;    /**     * 构造函数     * 调用getWritableDatabase()或getReadableDatabase()方法后,会缓存SQLiteDatabase实例;     * 因为这里是手机应用程序,一般只有一个用户访问数据库,所以建议不关闭数据库,保持连接状态。     * getWritableDatabase(),getReadableDatabase的区别是当数据库写满时,调用前者会报错,调用后者不会,     * 所以如果不是更新数据库的话,最好调用后者来获得数据库连接。     * 对于熟悉SQL语句的程序员最好使用exeSQL(),rawQuery(),因为比较直观明了     * @param context     */     public PersonDao(Context context){    helper = new OpenHelper(context);    }    //实现对该数据库的增加    public void addPerson(Person person){    //获取操作实例    SQLiteDatabase db = helper.getWritableDatabase();    //此方法推荐使用    String sqlStr="insert into person(name,age,phone)values(?,?,?)";    //执行SQL语句    db.execSQL(sqlStr,new Object[]{person.getName(),person.getAge(),person.getPhone()});    //关闭数据库    db.close();    }    //实现对数据库的删除    public void deletePerson(String name){    //获取数据库操作的实例    SQLiteDatabase db=helper.getWritableDatabase();    //创建SQL字符串    String sqlStr="delete from person where name=?";    db.execSQL(sqlStr,new String[]{name});    //关闭数据库    db.close();    }     //实现对数据库的修改    public void updatePerson(Person person){    //获取数据库的操作实例    SQLiteDatabase db=helper.getWritableDatabase();    //创建SQl字符串    String sqlStr="update person set name=?,phone=?where age=?";    //执行SQL语句    db.execSQL(sqlStr, new Object[]{person.getName(),person.getPhone(),person.getAge()});    //关闭数据库    db.close();    }    //实现对数据库的查询    public List<Person> selectPerson(){    //创建集合    List<Person> persons=new ArrayList<Person>();    //获取数据库操作实例    SQLiteDatabase db=helper.getReadableDatabase();    //创建Cursor对象    Cursor cursor=null;    try {cursor = db.rawQuery("select * from person",null);while(cursor.moveToNext()){String name=cursor.getString(cursor.getColumnIndex("name"));int age=cursor.getInt(cursor.getColumnIndex("age"));String phone=cursor.getString(cursor.getColumnIndex("phone"));//创建Person对象Person p=new Person(name,age,phone);//将创建出来的Person对象添加到集合中去persons.add(p);}} catch (Exception e) {e.printStackTrace();}finally{//关闭相应的资源if(cursor!=null){cursor.close();}if(db!=null){db.close();}}return persons;    }}第四步:开始测试package com.itfom.sqlite;import java.util.List;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;import com.itfom.entity.Person;import com.itfom.entitydao.PersonDao;public class MainActivity extends Activity implements OnClickListener{//寻找控件Button btn_add,btn_delete,btn_update,btn_select;//创建数据库操作类的实例PersonDao pd=null;List<Person> persons=null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);init();}//自定义一个方法初始化数据public void init(){//初始化控件btn_add=(Button) findViewById(R.id.btn_add);btn_delete=(Button) findViewById(R.id.btn_delete);btn_update=(Button) findViewById(R.id.btn_update);btn_select=(Button) findViewById(R.id.btn_select);pd=new PersonDao(this);//为每个控件设置监听事件btn_add.setOnClickListener(this);btn_delete.setOnClickListener(this);btn_update.setOnClickListener(this);btn_select.setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.btn_add://添加数据//创建Person对象for (int i = 0; i <100; i++) {Person p=new Person("夏守成"+i,i,"1809527282");pd.addPerson(p);}Toast.makeText(this, "添加数据成功", Toast.LENGTH_SHORT).show();break;case R.id.btn_delete://删除数据pd.deletePerson("夏守成0");Toast.makeText(this, "删除数据成功", Toast.LENGTH_SHORT).show();break;case R.id.btn_update://更新数据//创建Person对象Person p=new Person("刘丹", 21, "110");pd.updatePerson(p);Toast.makeText(this, "数据更新成功", Toast.LENGTH_SHORT).show();break;case R.id.btn_select://查询数据persons=pd.selectPerson();//打印出这些数据for (Person person : persons) {System.out.println(person.toString());}Toast.makeText(this, "数据查询成功", Toast.LENGTH_SHORT).show();break;default:break;}}}
0 0