英単語アプリを作っています。
そこで単語のデータを管理するのにPupSQLiteを使おうと考えています。
その使い方について調べているのですが、PupSQLite自体の使い方を示すサイトばかり目につきます。
参考書やサイトからSQLiteOpenHelperクラスを用いることは分かったので、
私が知りたいことは
・PupSQLiteを使って作ったデータベースの保存場所
・作ったデータベース(外部のデータベース)からデータをAndroidアプリに読み込ませる(組み込む)方法
・外部データベースを用いるのに必要なものや処理(クラスなど)
です。
あるサイトを参考にして(というかほぼそのまま)DataBaseクラスを作ってみたのですが、外部のデータベースを使うのにこのままのコードでいいのか、それとも無意味なコードを示してしまっているのかもわかっていない状況です。。
SQLiteの学習はもちろん進めていくつもりですが、何か参考になりそうなサイトやアドバイス等あればお願いします。
Java
1package com.example.fragmenttest; 2 3import android.content.ContentValues; 4import android.content.Context; 5import android.content.ContextWrapper; 6import android.database.Cursor; 7import android.database.sqlite.SQLiteDatabase; 8import android.database.sqlite.SQLiteOpenHelper; 9 10 11public class Database extends ContextWrapper { 12 private final static String DB_NAME = "test.db"; 13 private final static String DB_TABLE = "test"; 14 private final static String DB_COLUMUS = "(item1 text, item2 text, item3 text, primary key(item1))"; 15 private final static int DB_VERSION = 1; 16 private SQLiteDatabase mySQLiteDatabase = null; 17 18 //コンストラクタ 19 public Database(Context base){ 20 super(base); 21 mySQLiteDatabase = new DBHelper(base).getWritableDatabase(); 22 } 23 24 //データベースクローズ 25 public void closeDB(Context base){ 26 mySQLiteDatabase.close(); 27 mySQLiteDatabase = null; 28 } 29 30 //データ読み込み 31 public String[] readDB(String key){ 32 String[] columus = new String[] {"item1","item2","item3"}; 33 Cursor cursor = mySQLiteDatabase.query(DB_TABLE, columus, "item1='" + key +"'",null, null, null, null); 34 if(cursor.moveToFirst()){ 35 columus[0] = cursor.getString(0); 36 columus[1] = cursor.getString(1); 37 columus[2] = cursor.getString(2); 38 } else { 39 columus = null; 40 } 41 cursor.close(); 42 return columus; 43 } 44 45 //データ更新 46 public void updateDB(String[] columus){ 47 ContentValues values = new ContentValues(); 48 values.put("item1", columus[0]); 49 values.put("item2", columus[1]); 50 values.put("item3", columus[2]); 51 if(mySQLiteDatabase.update(DB_TABLE, values, "item1='" + columus[0] +"'", null) == 0){ 52 mySQLiteDatabase.insert(DB_TABLE, null, values); 53 } 54 } 55 56 //データ削除 オーバーロード 57 public void deleteDB(){ 58 //全件削除 59 mySQLiteDatabase.delete(DB_TABLE, null, null); 60 } 61 public void deleteDB(String key){ 62 //1件削除 63 mySQLiteDatabase.delete(DB_TABLE, "item1='" + key +"'", null); 64 } 65 66 //データ件数取得 67 public int getCount(){ 68 int count = 0; 69 Cursor cursor = null; 70 String[] columus = new String[]{"item1", "item2", "item3"}; 71 cursor = mySQLiteDatabase.query(DB_TABLE, columus, null, null, null, null,null); 72 count = cursor.getCount(); 73 cursor.close(); 74 return count; 75 } 76 77 //インナークラス データベースヘルパー 78 class DBHelper extends SQLiteOpenHelper { 79 public DBHelper(Context context){ 80 super(context, DB_NAME, null, DB_VERSION); 81 } 82 @Override 83 public void onCreate(SQLiteDatabase db){ 84 db.execSQL("CREATE TABLE IF NOT EXISTS " + DB_TABLE + "" + DB_COLUMUS); 85 } 86 @Override 87 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){ 88 db.execSQL("DROP TABLE IF EXISTS " + DB_NAME); 89 onCreate(db); 90 } 91 } 92} 93
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/17 05:11