質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

2回答

2856閲覧

PupSQLiteをAndroidアプリに使用したい

Haru_T

総合スコア34

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2016/09/16 08:17

英単語アプリを作っています。
そこで単語のデータを管理するのに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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

まず一つ、PupSQLiteとはWindows上で動作するSQLiteファイルを見たり編集したりするエディタ(アプリケーション)の事です。
「PupSQLiteとSQLite」は「メモ帳とテキストファイル」の関係と同じです。

話を聞く限り、英単語の追加はPupSQLite上で行うつもりなのでしょうか?
そうであれば、既に作成されたsqliteファイルを読み取って中身を取り出す部分だけ実装すればよさそうですね。
であればこのあたりでしょうか?

ただ、SQLiteというのはほとんどSQLのようなものであり、データベースの知識が全くない人にはちょっと敷居が高いです。
単にPupSQLite上で編集したデータを読み取りたいだけというのならPupSQLite上でcsvファイルとして吐き出す機能があるはずですので、それを読み取る機能を作った方が簡単かもしれません。

投稿2016/09/16 09:14

編集2016/09/16 09:16
ishi9

総合スコア1294

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Haru_T

2016/09/17 05:11

ありがとうございます!PupSQLiteとSQLiteの関係性が分かっていなかったので、とても分かりやすいです。私の場合、今のところですがアプリ上ではデータの追加や削除は行わない予定なので是非参考にさせて頂きます!!
guest

0

PupSQliteというよりSQLite3をJavaから使うということですね。(PupSQLiteはSQLite3のデータベースを扱うためのアプリケーションです)

JavaからならJDBCかODBC経由になると思います。

Javaでsqlite3にJDBCで接続

あたりが参考になるかと思います。

投稿2016/09/16 08:39

PineMatsu

総合スコア3579

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Haru_T

2016/09/17 05:14

ありがとうございます!参考にさせて頂きます(^^)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問