1、创建继承于SQLiteOpenHelper的类DBHelper,并重写onCreate()和onUpgrade()。
public class DBHelper extends SQLiteOpenHelper {
private static final String TAG = "DBHelper";
public final String CAREA_TABLE = "cArea";
public final String NAREA_TABLE = "nArea";
public final String CAREATE_CAREA_TABLE_SQL = "CREATE TABLE " + CAREA_TABLE + "("
+ "areaCode VARCHAR(20),"
+ "areaName varchar(30),"
+ "parentCode varchar(20),"
+ "sortOrder INTEGER"
+ ");";
public final String CAREATE_NAREA_TABLE_SQL = "CREATE TABLE " + NAREA_TABLE + "("
+ "id VARCHAR(20),"
+ "areaCode varchar(30),"
+ "locationName varchar(20),"
+ "landmark varchar(50)"
+ ");";
//必须要有构造函数
public DBHelper(Context context, String dbName, SQLiteDatabase.CursorFactory factory, int version) {
super(context, dbName, factory, version);
}
// 当第一次创建数据库的时候,调用该方法
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CAREATE_CAREA_TABLE_SQL);
Log.e("create","数据库创建成功1");
db.execSQL(CAREATE_NAREA_TABLE_SQL);
Log.e("create","数据库创建成功2");
}
//当更新数据库的时候执行该方法
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//输出更新数据库的日志信息
Log.i(TAG, "update Database------------->");
}
}
2、DBHelper 的使用
/**
* 数据库名称
*/
private final String DB_NAME = "data.db";
/**
* 数据库版本
*/
private final int DB_VERSION = 1;
private SQLiteDatabase db;
private DBHelper dbHelper;
dbHelper = new DBHelper(this, DB_NAME, null, DB_VERSION);
db = dbHelper.getReadableDatabase();
List<ContentValues> list = new ArrayList<ContentValues>();
insert(list, dbHelper.NAREA_TABLE);
private void insert(List<ContentValues> list, String tableName) {
db.beginTransaction();
try {
for (ContentValues cv : list) {
db.insertOrThrow(tableName, null, cv);
}
db.setTransactionSuccessful();
} catch (Exception e) {
e.printStackTrace();
} finally {
db.endTransaction();
}
}
3、ContentValues 对象的生成示例
private ContentValues getCV(CAreaEntity entity) {
//生成ContentValues对象 //key:列名,value:想插入的值
ContentValues cv = new ContentValues();
//往ContentValues对象存放数据,键-值对模式
cv.put("areaCode", entity.getAreaCode());
cv.put("areaName", entity.getAreaName());
cv.put("parentCode", entity.getParentCode());
cv.put("sortOrder", entity.getSortOrder());
return cv;
}
4、使用之后不要忘记调用 db.close();