728x90
SQLite는 데이터베이스 관리 시스템이지만
응용 프로그램에 넣어 사용하는 비교적 가벼운 데이터베이스이다.
1.
public class DBHelper extends SQLiteOpenHelper
{
public DBHelper(Context context){
super(context,"Test.db",null,1); //버전 수정 가능
}
// 사용할 db가 없을 경우 db 파일 새롭게 만듬
// 자동 호출. 테이블 생성, 기타 필요한 작업업
@Override
public void onCreate(SQLiteDatabase db) { //항상 최신구조
Log.d("test","db 생성");
String sql ="CREATE TABLE TestTable("
+"idx INTEGER PRIMARY KEY AUTOINCREMENT,"
+"textData TEXT NOT NULL,"
+"intData INTEGER NOT NULL,"
+"floatData REAL NOT NULL,"
+"dateData DATE NOT NULL)";
db.execSQL(sql);
}
//버전관리
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
switch (oldVersion)
{
case 1:
//1에서 2버전 형태로 테이블 구조를 변경 작업
case 2:
//2에서 3버전으로
}
}
}
<사용>
public void btnOpenDB(View view) {
DBHelper helper = new DBHelper(this);
SQLiteDatabase db = helper.getWritableDatabase();
String sql = "INSERT INTO TestTable (textData, intData, floatData, dateData) VALUES (?,?,?,?)";
//===============데이터 준비================//
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
String date = sdf.format(new Date());
String[] arg1 = {"문자열1", "100", "1.1", date};
String[] arg2 = {"문자열2", "200", "1.2", date};
db.execSQL(sql, arg1);
db.execSQL(sql, arg2);
db.close();
textView.setText("완료");
}
public void btnLoadDB(View view) {
DBHelper helper = new DBHelper(this);
SQLiteDatabase db = helper.getWritableDatabase();
String sql = "select * from TestTable";
// String[] arg1 ={"1"} //?에 값 넣을 때
//쿼리 실행
Cursor cursor = db.rawQuery(sql,null);
textView.setText("");
//선택된 로우를 끝까지 반복하며 데이터를 가져온다.
while(cursor.moveToNext())
{
//컬럼 인덱스 번호를 통해 데이터를 가져온다.
int idx = cursor.getInt(cursor.getColumnIndex("idx"));
String textData = cursor.getString(cursor.getColumnIndex("textData"));
int intData = cursor.getInt(cursor.getColumnIndex("intData"));
double floatData = cursor.getDouble(cursor.getColumnIndex("floatData"));
String dateData = cursor.getString(cursor.getColumnIndex("dateData"));
textView.append("idx"+idx+"\n");
textView.append("textData"+textData+"\n");
textView.append("intData"+intData+"\n");
textView.append("floatData"+floatData+"\n");
textView.append("dateData"+dateData+"\n");
}
db.close();
}
public void btnUpdateDB(View view)
{
DBHelper helper = new DBHelper(this);
SQLiteDatabase db = helper.getWritableDatabase();
String sql = "UPDATE TestTable SET textData = ? WHERE idx=?";
String[] args = {"수정문자열","1"};
db.execSQL(sql,args);
db.close();
textView.setText("수정완료");
}
도움되는 사이트
https://www.sqlitetutorial.net/sqlite-create-table/
https://www.sqlitetutorial.net/tryit/
https://nuggy875.tistory.com/28
'Front-end > Android (안드로이드 앱 개발)' 카테고리의 다른 글
Android Studio , 화면 회전 시 처리 (0) | 2020.08.17 |
---|---|
Android Studio , 리소스 & values 파일 (0) | 2020.08.16 |
Android Studio , 파일 저장 읽기, 내부 저장소 / 외부 저장소 (0) | 2020.08.11 |
Android Studio , ListFragment & DialogFragment (0) | 2020.08.07 |
Android Studio , Service & Intent Service & Forground Service (0) | 2020.08.05 |
댓글