android简单的实现数据库增删改查

来源:互联网 发布:淘宝图片尺寸修改软件 编辑:程序博客网 时间:2024/05/18 01:21

首先创建一个类DataBaseHelper 继承SQLiteOpenHelper

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;


public class DataBaseHelper extends SQLiteOpenHelper {


    private static final String name = "appledata"; // 数据库名称
    private static final int version = 1; // 数据库版本
    public static final String PERSONID = "personid";

    public static final String AGE = "age";
    public static final String NAME = "name";

    public DataBaseHelper(Context context) {
        super(context, name, null, version);
        // TODO Auto-generated constructor stub
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        //创建一个表格person autoincrement是personid列自动递增
        db.execSQL("CREATE TABLE IF NOT EXISTS person (" + PERSONID + " integer primary key autoincrement," + NAME
                + " varchar(20)," + AGE + " integer)");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL(" ALTER TABLE person ADD sex VARCHAR(1) NULL ");
    }

}

创建一个类DataDeal ,处理数据库的连接、断开与增删改查

import java.util.ArrayList;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;


public class DataDeal {

    SQLiteDatabase sqLiteDatabase;
    DataBaseHelper dataBaseHelper;

    public DataDeal(Context context) {
        dataBaseHelper = new DataBaseHelper(context);
    }


    /*
     * 单独一个方法,获得数据库的链接
     */
    public void getDataBaseConn() {
        sqLiteDatabase = dataBaseHelper.getWritableDatabase();
    }


    public void releaseDataBase() {
        sqLiteDatabase.close();
    }


    /**
     * 查询数据库 返回person集合
     * 
     * @return ArrayList<Person>
     */
    public ArrayList<Person> query() {
        ArrayList<Person> list = new ArrayList<Person>();
        Person person = null;
        String sql = "select *from person";
        Cursor cursor = sqLiteDatabase.rawQuery(sql, null);
        while (cursor.moveToNext()) {
            person = new Person();
            person.setPersonId(cursor.getInt(cursor.getColumnIndex(DataBaseHelper.PERSONID)));
            person.setAge(cursor.getInt(cursor.getColumnIndex(DataBaseHelper.AGE)));
            person.setName(cursor.getString(cursor.getColumnIndex(DataBaseHelper.NAME)));


            list.add(person);
        }
        return list;
    }


    /**
     * 增加数据库
     */
    public void add(Person person) {
        String sql = "insert into person(name,age) values(?,?)";
        Object[] bindArgs = { person.getName(), person.getAge() };
        sqLiteDatabase.execSQL(sql, bindArgs);
    }


    /**
     * 删除指定id的数据
     */
    public void delete(int id) {
        String sql = "delete from person where personid=" + id;
        sqLiteDatabase.execSQL(sql);
    }


    /**
     * 根据id号修改指定id的人的年龄
     */
    public void modify(int id, int age) {
        String sql = "update person set age=? where personid=?";
        Object[] bindArgs = { age, id };
        sqLiteDatabase.execSQL(sql, bindArgs);
    }
}

Person类就简单的实现了personid、age、name的get set方法