public class MainDBHelper extends SQLiteOpenHelper {
private Context context;
private static final String PostTable = "post";
private static final int DB_VER = 15;
public MainDBHelper(Context context) {
super(context, "mydb", null, DB_VER);
this.context = context;
}
// Post 테이블 생성
private void f_CreateTable_Post(SQLiteDatabase db) {
String sql = "";
// 테이블 삭제
try {
db.execSQL("drop table if exists `" + PostTable + "`");
} catch (Exception ex) {
Log.e("MYTAG", "Exception in DROP_SQL", ex);
}
// 테이블 생성
try {
sql = "CREATE TABLE `" + PostTable + "` ("
+ " `_id` INTEGER PRIMARY KEY AUTOINCREMENT"
+ ", `post` TEXT"
+ ", `sido` TEXT"
+ ", `sigu` TEXT"
+ ", `eupm` TEXT"
+ ", `road` TEXT"
+ ", `even` TEXT"
+ ");";
Log.v("MYTAG", sql);
db.execSQL(sql);
} catch (Exception ex) {
Log.e("MYTAG", "SQL : " + sql + "\nException in CREATE_SQL", ex);
}
// 테이블 삽입(Assets의 post.dat 파일을 읽어 parsing하여 삽입)
try {
AssetManager assetManager = context.getAssets();
BufferedReader reader = new BufferedReader(new InputStreamReader(assetManager.open("post.dat"), "utf8"));
String buf = "";
while ((buf = reader.readLine()) != null) {
String[] tokens = buf.split("\\|");
if (tokens != null && tokens.length > 4) {
sql = "INSERT INTO `" + PostTable
+ "`(`post`, `sido`, `sigu`, `eupm`, `road`) VALUES ("
+ "'" + tokens[0] + "'"
+ ",'" + tokens[1] + "'"
+ ",'" + tokens[2] + "'"
+ ",'" + tokens[3] + "'"
+ ",'" + tokens[4] + "');";
Log.v("MYTAG", sql);
db.execSQL(sql);
}
}
reader.close();
} catch (Exception ex) {
Log.e("MYTAG", "SQL : " + sql + "\nException in Master Table insert SQL", ex);
}
}
@Override
public void onCreate(SQLiteDatabase db) {
Log.v("MYTAG", "onCreate() 실행");
f_CreateTable_Post(db);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.v("MYTAG", "Upgrading database from version " + oldVersion + " to " + newVersion + ".");
f_CreateTable_Post(db);
}
}