第一步:编写一个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
- @Override
- public 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);
- }
- @Override
- public void onCreate(SQLiteDatabase db) {
- db.execSQL("create table person(name varchar(50),age integer,phone varchar(50))");
- }
- @Override
- public 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;
- @Override
- protected 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);
- }
- @Override
- public 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;
- }
- }
- }