Android使用SQLite数据库的简单实例

时间:2021-05-20

先画个图,了解下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 });
}

// 其它操作

}

完成这些,其它操作就简单了....

另外,数据库文件放在这个目录

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章