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();