您的位置:首页 > 数据库

SQlite 数据库

2016-06-21 14:35 260 查看
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 });

 }

 // 其它操作

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: