.db파일 Android App에 넣기
1. 먼저 assets 폴더를 만들어 줘야한다!! (assets 폴더 없으면 다음 링크를통행 assets 폴더 만들기!)
2. assets 폴더를 만들면 그 안에 ####.db 파일을 넣어준다.
↑ 위와 같이 assets 폴더에 잘 넣어준다~
3. db파일을 잘 넣어줬다면 이제 안드로이드 app에서 코드 넣어볼 차례!
// DB파일 불러오는 함수
// assets 폴더에 db파일 넣어주면됨~
public static final String ROOT_DIR = "/data/data/com.~~~~~/databases/";
public static void setDB(Context ctx) {
File folder = new File(ROOT_DIR);
if(folder.exists()) {
} else {
folder.mkdirs();
}
AssetManager assetManager = ctx.getResources().getAssets();
// db파일 이름 적어주기
File outfile = new File(ROOT_DIR+"######.db");
InputStream is = null;
FileOutputStream fo = null;
long filesize = 0;
try {
is = assetManager.open("######.db", AssetManager.ACCESS_BUFFER);
filesize = is.available();
if (outfile.length() <= 0) {
byte[] tempdata = new byte[(int) filesize];
is.read(tempdata);
is.close();
outfile.createNewFile();
fo = new FileOutputStream(outfile);
fo.write(tempdata);
fo.close();
} else {}
} catch (IOException e) {
}
}
public static final String ROOT_DIR = "/data/data/com.~~~~~/databases/";
→ ~~~~~~에는 자신의 adroid package명을 써준다!
File outfile = new File(ROOT_DIR+"######.db");
is = assetManager.open("######.db", AssetManager.ACCESS_BUFFER);
→ ######에는 자신의 .db 파일의 이름을 써준다!
// Cursor를 통해 .db파일의 내용을 보여주는 함수
public SQLiteDatabase db;
public Cursor cursor;
ProductDBHelper mHelper;
String DBname = "######";
private void ShowMushDBInfo(String name){
setDB(this);
mHelper=new ProductDBHelper(this);
db =mHelper.getWritableDatabase();
String mushname = null;
String mushtype= null;
String mushsym = null;
String mushsim = null;
String sql = "Select * FROM " + DBname;
cursor = db.rawQuery(sql , null);
while (cursor.moveToNext()) {
if(cursor.getString(1).equals(name)) {
mushname = cursor.getString(1);
mushtype = cursor.getString(2);
mushsym = cursor.getString(3);
mushsim = cursor.getString(4);
}
}
mname.setText(mushname);
mtype.setText(mushtype);
msym.setText(mushsym);
msim.setText(mushsim);
}
→ Textview에 내용들이 뜨게 해줬음~
String DBname = "######";
→ ######에는 SQLite로 만들때 테이블 이름을 적는다~
String sql = "Select * FROM " + DBname;
cursor = db.rawQuery(sql , null);
while (cursor.moveToNext()) {
if(cursor.getString(1).equals(name)) {
mushname = cursor.getString(1);
mushtype = cursor.getString(2);
mushsym = cursor.getString(3);
mushsim = cursor.getString(4);
}
}
→ DBname의 테이블에서 cursor로 테이블에 있는 내용 가르쳐줘서 그걸 textview 띄워주겠다라는 Code
→ cursor.getString(0) 부터 시작 !! but 나는 _ID는 필요없기때문에 cursor.getString(1) 부터 시작했다~
package com.~~~~~~;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class ProductDBHelper extends SQLiteOpenHelper { //새로 생성한 adapter 속성은 SQLiteOpenHelper이다.
public ProductDBHelper(Context context) {
super(context, "######.db", null, 1); // db명과 버전만 정의 한다.
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}
package com.~~~~~~;
→ ~~~~~~에는 자신의 adroid package명을 써준다.
super(context, "######.db", null, 1); // db명과 버전만 정의 한다.
→ ######에는 자신의 .db 파일의 이름을 써준다.
INSERT INTO ######
VALUES (1,'~~~~~~', '~~~~~~', '~~~~~~','~~~~~~');
→ ###### 에는 자신의 db 파일 table name을 적어준다.
→ ~~~~~~에는 자신이 입력할 내용을 적는다.
gmlwjd9405.github.io/2019/05/13/db-sql-insert-update-delete.html
출처: egloos.zum.com/adamjin/v/2875879
ⓐ 양자화 올리기...