Programming/안드로이드
sqlite
파란크리스마스
2018. 9. 29. 01:03
728x90
출처
DBManager.java
package com.bluexmas.common; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class DBManager extends SQLiteOpenHelper { private static String TAG = DBManager.class.getName(); // Database 버전 public static final int DB_VERSION = 12; // Database 이름 (SQLite 파일명) public static final String DB_NAME = "bluexmas.db"; // DBManager 객체 - 한번만 객체가 생성되도록 static 으로 변수 선언 : singleton 패턴 private static DBManager instance = null; private Context context; // private 생성자 : singleton 패턴 private DBManager(Context context) { super(context, DB_NAME, null, DB_VERSION); this.context = context; } // DBManager 객체 반환 : singleton 패턴 public static DBManager getInstance(Context context) { if (instance == null) instance = new DBManager(context); return instance; } public Context getContext() { return this.context; } @Override public void onCreate(SQLiteDatabase db) { // 테이블 생성 관련 SQL 스크립트 실행 } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // DB_VERSION 버전이 올라 가면 변경될 SQL 스크립트 실행 } }
VideoEntity.java
package com.bluexmas.common; public class VideoEntity { public static final String TABLE_NAME = "video_info"; public static final String COLUMN_NAME_MEDIA_ID = "v_id"; public static final String COLUMN_NAME_TYPECODE = "type_code"; public static final String COLUMN_NAME_FILEPATH = "path"; public static final String COLUMN_NAME_REGDATE = "regdate"; public String getTableName() { return TABLE_NAME; } public String genCreateSQL() { return "CREATE TABLE "+this.getTableName()+"( " + COLUMN_NAME_MEDIA_ID+" INTEGER PRIMARY KEY AUTOINCREMENT, " + COLUMN_NAME_TYPECODE+" CHAR(2) NOT NULL, " + COLUMN_NAME_FILEPATH+" TEXT NOT NULL, " + COLUMN_NAME_REGDATE+" TEXT NOT NULL " + ");"; } }
DBManager.java
package com.bluexmas.common; public class DBManager extends SQLiteOpenHelper { // private static String TAG = DBManager.class.getName(); // Database 버전 public static final int DB_VERSION = 12; // Database 이름 (SQLite 파일명) public static final String DB_NAME = "bluexmas.db"; // DBManager 객체 - 한번만 객체가 생성되도록 static 으로 변수 선언 : singleton 패턴 private static DBManager instance = null; private Context context; private VideoEntity videoEntity = null; // private 생성자 : singleton 패턴 private DBManager(Context context) { super(context, DB_NAME, null, DB_VERSION); this.context = context; // VideoEntity 생체 생성 this.videoEntity = new VideoEntity(); } // DBManager 객체 반환 : singleton 패턴 public static DBManager getInstance(Context context) { if (instance == null) instance = new DBManager(context); return instance; } public Context getContext() { return context; } @Override public void onCreate(SQLiteDatabase db) { // 테이블 생성 관련 SQL 스크립트 실행 // VideoEntity 테이블 생성 db.execSQL(this.videoEntity.genCreateSQL()); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // DB_VERSION 버전이 올라 가면 변경될 SQL 스크립트 실행 } // 비디오 정보 추가 (레코드 추가) public int addVideo(String type_code, String path) { if (path == null) return; // DB 객체 가져오기 SQLiteDatabase db = this.getWritableDatabase(); // ContentValues values = new ContentValues(); values.put(this.videoEntity.COLUMN_NAME_TYPECODE, type_code); values.put(this.videoEntity.COLUMN_NAME_FILEPATH, path); values.put(this.videoEntity.COLUMN_NAME_REGDATE, "-"); // 데이터 삽입 long newRowId = db.insert(this.videoEntity.getTableName(), null, values); return getLastID(this.videoEntity.getTableName()); } /** * 마지막 추가한 ID 구하기 * @param table_name 테이블 이름 * @return ID */ public int getLastID(String table_name) { // DB 객체 가져오기 SQLiteDatabase db = this.getWritableDatabase(); final String query = "SELECT last_insert_rowid() FROM "+ table_name; Cursor cur = db.rawQuery(query, null); cur.moveToFirst(); int last_id = cur.getInt(0); cur.close(); return last_id; } }
-