import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
/**
* SQLiteOpenHelper是SQLiteDatabase的一个帮助类,用来管理数据库的创建和版本更新。
* 一般的用法是定义一个类继承SQLiteOpenHelper,并实现两个回调方法。
*/
public class DBHelper extends SQLiteOpenHelper {
private SQLiteDatabase db = null;
private static final int VERSION = 1;
private static final String DB_NAME = "phone.db";
private static final String TABLE_NAME = "t_phone";
private static final String CREATE_TABLE = "create table "+ TABLE_NAME +" ( "
+ "id integer primary key autoincrement,"
+ "name varchar(20),"
+ "sex varchar(2),"
+ "number text, "
+ "description text " + ");";
/**
* 在SQLiteOpenHelper子类中必须有该构造函数
*
* @param context
* @param name
* @param factory
* @param version
*/
public DBHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
}
public DBHelper(Context context, String name, int version) {
this(context, name, null, version);
}
public DBHelper(Context context, String name) {
this(context, name, VERSION);
}
/**
* 数据库名字和版本号都不能改变了
*
* @param context
*/
public DBHelper(Context context) {
this(context, DB_NAME);
}
/**
* 该函数是在第一次创建数据库的时候执行,实际上是在第一次得到SQLiteDatabase对象的时候执行。
*/
@Override
public void onCreate(SQLiteDatabase db) {
this.db = db;
System.out.println("create database...");
// 执行sql语句
db.execSQL(CREATE_TABLE);
}
/**
* 数据库升级:当构造函数DBHelper传递的参数version与之前的不一样时调用该函数
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
System.out.println("数据库更新了!");
}
/**
* 插入数据
*
* @param table 表名
* @param values 键值对
*/
public void insert(String table, ContentValues values) {
db = this.getWritableDatabase();
db.insert(table, null, values);
db.close();
}
/**
* 查询所有
*
* @param table 表名
* @return
*/
public Cursor query(String table) {
db = this.getReadableDatabase();
Cursor cursor = null;
cursor = db.query(table, null, null, null, null, null, null);
return cursor;
}
/**
* 根据唯一标识id 删除数据
*
* @param id
*/
public void delete(String table, int id) {
db = this.getWritableDatabase();
db.delete(table, "id=?", new String[] { id + "" });
db.close();
}
/**
* 更新数据库中的内容
*
* @param table
* @param values
* @param whereClause
* @param whereArgs
*/
public void update(String table, ContentValues values, String whereClause,
String[] whereArgs) {
db = this.getWritableDatabase();
db.update(table, values, whereClause, whereArgs);
db.close();
}
/**
* 关闭数据库
*/
public void close(){
if(null != db){
db.close();
}
}
}
android数据存储----SQLite数据库
最新推荐文章于 2016-05-17 16:06:00 发布