Android下数据库操作的简单流程:
1.首先,写一个自己的数据库操作帮助类,这个类继承自Android自带的SQLiteOpenHelper.
2.在自己的DAO层借助自己的Helper写数据库操作的一些方法
3.Activity调用DAO层的数据库操作方法进行操作
下面例子是:
1.Helper
- package cn.learn.db.util;
- import android.content.Context;
- import android.database.sqlite.SQLiteDatabase;
- import android.database.sqlite.SQLiteOpenHelper;
- import android.database.sqlite.SQLiteDatabase.CursorFactory;
- public class DBHelper extends SQLiteOpenHelper {
- private final static String DB_NAME ="test.db";//数据库名
- private final static int VERSION = 1;//版本号
- //自带的构造方法
- public DBHelper(Context context, String name, CursorFactory factory,
- int version) {
- super(context, name, factory, version);
- }
- //为了每次构造时不用传入dbName和版本号,自己得新定义一个构造方法
- public DBHelper(Context cxt){
- this(cxt, DB_NAME, null, VERSION);//调用上面的构造方法
- }
- //版本变更时
- public DBHelper(Context cxt,int version) {
- this(cxt,DB_NAME,null,version);
- }
- //当数据库创建的时候调用
- public void onCreate(SQLiteDatabase db) {
- String sql = "create table student(" +
- "id integer primary key autoincrement," +
- "name varchar(20)," +
- "age int)";
- db.execSQL(sql);
- }
- //版本更新时调用
- public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
- String sql = "update student ....";//自己的Update操作
- db.execSQL(sql);
- }
- }
2.写DAO层
- package cn.learn.db.dao;
- import android.content.Context;
- import android.database.sqlite.SQLiteDatabase;
- import cn.learn.db.dao.domain.Student;
- import cn.learn.db.util.DBHelper;
- public class StudentDao {
- DBHelper helper = null;
- public StudentDao(Context cxt) {
- helper = new DBHelper(cxt);
- }
- /**
- * 当Activity中调用此构造方法,传入一个版本号时,系统会在下一次调用数据库时调用Helper中的onUpgrade()方法进行更新
- * @param cxt
- * @param version
- */
- public StudentDao(Context cxt, int version) {
- helper = new DBHelper(cxt, version);
- }
- // 插入操作
- public void insertData(Student stu) {
- String sql = "insert into student (name,age)values(?,?)";
- SQLiteDatabase db = helper.getWritableDatabase();
- db.execSQL(sql, new Object[] { stu.name, stu.age });
- }
- // 其它操作
- }
完成这些,其它操作就简单了....
另外,数据库文件放在这个目录