import java.io.File;
import java.util.ArrayList;
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.SQLiteException;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Environment;
import android.provider.ContactsContract;
import android.util.Log;
public class DataBaseHelper {
private DBHelper mHelper;
private SQLiteDatabase db;
private static final String Database_Name="account.db";
private static final int Database_Version = 2;
private static String SQL_Table_Create;
private static String Table_Name;
public static final String FILE_PATH = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + Database_Name;
public static final String SQL_Create_accountdb =
"create table accountdb (_id integer primary key autoincrement,"
+"name text not null,"
+"phone text not null"
+")";
private final Context cxt;
private static class DBHelper extends SQLiteOpenHelper {
DBHelper(Context context) {
super(context,FILE_PATH,null,Database_Version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(SQL_Create_accountdb);
}
@Override
public void onOpen(SQLiteDatabase db) {
super.onOpen(db);
}
@Override
public void onUpgrade(SQLiteDatabase db, int i, int i2) {
db.execSQL("DROP TABLE IF EXISTS " + Table_Name);
onCreate(db);
}
}
public DataBaseHelper(Context cxt, String sql, String tname){
this.cxt=cxt;
SQL_Table_Create=sql;
Table_Name=tname;
}
public DataBaseHelper open() throws SQLiteException{
mHelper = new DBHelper(cxt);
db = mHelper.getWritableDatabase();
return this;
}
public void close() {
mHelper.close();
}
public long insertTable(ContentValues values) {
return db.insert(Table_Name, null, values);
}
public boolean deleteTable(String pkColumn, long pkData) {
return db.delete(Table_Name, pkColumn+"="+pkData, null)>0;
}
public Cursor RawQueryString(String sql){
return db.rawQuery(sql,null);
}
public Cursor selectTable(String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy) {
return db.query(Table_Name, columns, selection, selectionArgs, groupBy, having, orderBy);
}
public boolean updateTable(ContentValues values, String pkColumn, long pkData) {
return db.update(Table_Name, values, pkColumn+"="+pkData, null)>0;
}
}
어플이 실행될 때 db가 account.db로 고정되는 것이 아니고 실행될 때마다 1.db, 2.db, 3.db 이런 식으로 바뀌게 하고 싶은데요
그래서 DBHelper(Context context) 부분에 SharedPreferences를 이용해서 하려고하는데 잘 안되네요.
DBHelper(Context context) {
SharedPreferences pref = contextgetSharedPreferences("pref", context.MODE_PRIVATE);
int now = pref.getInt("order", 0);
String FILE_PATH=Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + now + ".db";
SharedPreferences.Editor editor = pref.edit();
editor.putInt("order", now+1);
editor.commit();
super(context,FILE_PATH,null,Database_Version);
}
이런 식으로 고쳤보려고 했는데 잘 안되네요. 어떻게 해야할까요??