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

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

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

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

Android

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

Q&A

2回答

1094閲覧

Android SQLite ログイン機能の実装

i_takashikun

総合スコア8

SQLite

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

Android

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

0グッド

0クリップ

投稿2018/02/15 05:42

AndroidのSQLiteに関しての質問です。
ログイン機能を実装したいのですが、そもそもテーブルが作成されているかも分からない状態です。
なにをやってもうまくいかず困っています。

Java

1public class MySQLiteOpneHelper extends SQLiteOpenHelper { 2 3 public MySQLiteOpneHelper(Context context) { 4 // 任意のデータベースファイル名と、バージョンを指定する 5 super(context, "test.db", null, 1); 6 } 7 8 /** 9 * このデータベースを初めて使用する時に実行される処理 10 * @param db 11 */ 12 @Override 13 public void onCreate(SQLiteDatabase db) { 14 // テーブルの作成、初期データの投入等を行う。 15 db.execSQL("CREATE TABLE kaiin_table (k_no INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, k_id text NOT NULL, pass text NOT NULL)" ); 16 17 db.execSQL("CREATE TABLE category_table (c_no INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, c_name TEXT NOT NULL )" ); 18 19 db.execSQL("CREATE TABLE kakeibo_table (c_no INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, kinyu_dt DATE NOT NULL, cost INTEGER NOT NULL)"); 20 21 db.execSQL("INSERT INTO category_table(c_no, c_name) VALUES(1,'食費');"); 22 db.execSQL("INSERT INTO category_table(c_no, c_name) VALUES(2,'日用品費');"); 23 db.execSQL("INSERT INTO category_table(c_no, c_name) VALUES(3,'水道・光熱費');"); 24 db.execSQL("INSERT INTO category_table(c_no, c_name) VALUES(4,'医療・保険費');"); 25 db.execSQL("INSERT INTO category_table(c_no, c_name) VALUES(5,'交通費');"); 26 db.execSQL("INSERT INTO category_table(c_no, c_name) VALUES(6,'被服費');"); 27 db.execSQL("INSERT INTO category_table(c_no, c_name) VALUES(7,'交遊費');"); 28 } 29 30 /** 31 * アプリケーションの更新などによって、データベースのバージョンが上がった場合に実行される処理 32 */ 33 @Override 34 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 35 // データの退避、テーブルの再構成等を行う。 36 } 37}

Java

1public class aNewMember extends AppCompatActivity { 2 3 @Override 4 protected void onCreate(Bundle savedInstanceState) { 5 super.onCreate(savedInstanceState); 6 setContentView(R.layout.activity_new_member); 7 8 Button btnOK = this.findViewById(R.id.ok); 9 btnOK.setOnClickListener(new View.OnClickListener() { 10 @Override 11 public void onClick(View v) { 12 13 EditText editPass = findViewById(R.id.editPass); 14 EditText editPass2 = findViewById(R.id.editPass2); 15 EditText editID = findViewById(R.id.editID); 16 17 final String getPass = editPass.getText().toString(); 18 final String getPass2 = editPass2.getText().toString(); 19 final String getID = editID.getText().toString(); 20 21 if ((getPass.length() != 0 && getPass2.length() != 0 && getID.length() != 0) && getPass.equals(getPass2)) { 22 23 SQLiteOpenHelper sqliteOpenHelper = new MySQLiteOpneHelper(getApplicationContext()); 24 SQLiteDatabase db = sqliteOpenHelper.getWritableDatabase(); 25 try { 26 // データ操作 27 db.execSQL("INSERT INTO kaiin_table (k_id, pass) VALUES (getID, getPass)"); 28 } finally { 29 db.close(); 30 } 31 Toast.makeText(aNewMember.this, "登録しました。", Toast.LENGTH_SHORT).show(); 32 finish(); 33 } 34 else { 35 Toast.makeText(aNewMember.this, "入力に不備があります。", Toast.LENGTH_SHORT).show(); 36 37 } 38 } 39 }); 40 } 41} 42

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

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

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

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

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

guest

回答2

0

テーブルができているかどうかは、adbから確認できます。(参考:http://yuki312.blogspot.jp/2012/03/androidsqlite.html)

ざっと方法を書きますと、Windowsの場合はコマンドプロンプトを起動します。その後(>はプロンプト)

chcp 65001
adb shell
cd data/data/{パッケージ}/databases
sqlite3 test.db

{パッケージ}はbuild.gradleに書いてある、applicationIdを入れてください。

ここからSQLを入力してテーブルが有るかを確認できます。

例えば、

sql

1SELECT * FROM kaiin_table;

等を入力してみてください。

まずはそこから確認してみてはいかがでしょうか。

投稿2018/04/26 22:14

webarata3

総合スコア367

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

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

0

下記のようにAndroidStudio上でファイルの確認が可能です。
暗号化していなければDBの中身も見れますよ。
https://developer.android.com/studio/debug/device-file-explorer?hl=ja

投稿2018/04/28 01:32

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問