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

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

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

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

Java

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

Android

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

Android Studio

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

Q&A

解決済

1回答

3183閲覧

AndroidでSQLiteを使いたいです。データベースのクラスを一つ作って、その値activity_main.xmlのlistで表示するには、どうすればいいのですか?

edoooooo

総合スコア476

SQLite

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

Java

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

Android

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

Android Studio

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

0グッド

0クリップ

投稿2017/04/03 20:01

AndroidでSQLiteを使いたいです。データベースのクラスを一つ作って、その値activity_main.xmlのlistで表示するには、どうすればいいのですか?

Databaseのクラスを一つ作りそこで、このようなコードを書いたのですが、
// queryメソッド DBのデータを取得
// 第1引数:DBのテーブル名
// 第2引数:取得するカラム名
// 第3引数:選択条件(WHERE句)
// 第4引数:第3引数のWHERE句において?を使用した場合に使用
// 第5引数:集計条件(GROUP BY句)
// 第6引数:選択条件(HAVING句)
// 第7引数:ソート条件(ODERBY句)の中にどう書けばいいのかがわかりません。アドバイスをいただけないでしょうか?

java

1package com.example.android.sample.memo; 2 3import android.content.ContentValues; 4import android.content.Context; 5import android.database.Cursor; 6import android.database.sqlite.SQLiteDatabase; 7import android.database.sqlite.SQLiteOpenHelper; 8 9/** 10 * Created by endoutaichi on 2017/04/02. 11 */ 12 13public class MemoDBHelper extends SQLiteOpenHelper { 14 15 16 //データベース名 17 private static final String DB_NAME = "memo.db"; 18 19 //データベースバージョン 20 private static final int DB_VERSION = 1; 21 //テーブル名 22 private static final String TABLE_NAME = "memo"; 23 //IDカラム 24 public static final String _ID = "_id"; 25 //ファイル名カラム 26 public static final String TITLE = "title"; 27 //内容 28 public static final String CONTENT = "content"; 29 //作成日時 30 public static final String DATA = "date"; 31 32 private SQLiteDatabase db = null; 33 private MemoDBHelper dbHelper = null; // DBHelper 34 protected Context context; // Context 35 36 37 public MemoDBHelper(Context context) { 38 super(context, DB_NAME, null, DB_VERSION); 39 } 40 41 42 public MemoDBHelper openDB() { 43 db = dbHelper.getWritableDatabase(); // DBの読み書き 44 return this; 45 } 46 47 /** 48 * DBを閉じる 49 * closeDB() 50 */ 51 public void closeDB() { 52 db.close(); // DBを閉じる 53 db = null; 54 } 55 56 57 @Override 58 public void onCreate(SQLiteDatabase db) { 59 String createTable = "CREATE TABLE" + TABLE_NAME + "(" + 60 _ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + 61 TITLE + "TEXT," + 62 CONTENT + "TEXT," + 63 DATA + "INTEGER NOT NULL," + 64 ")"; 65 66 db.execSQL(createTable); 67 } 68 69 /** 70 * DBのレコードへ登録 71 * saveDB() 72 * 73 * @param title 題名 74 * @param content 本文 75 * @param data 締め切り 76 * @param id id 77 */ 78 public void saveDB(String id, String title, int content, int data) { 79 80 db.beginTransaction(); // トランザクション開始 81 82 try { 83 ContentValues values = new ContentValues(); // ContentValuesでデータを設定していく 84 values.put(_ID, id); 85 values.put(TITLE, title); 86 values.put(CONTENT, content); 87 values.put(DATA, data); 88 89 // insertメソッド データ登録 90 // 第1引数:DBのテーブル名 91 // 第2引数:更新する条件式 92 // 第3引数:ContentValues 93 db.insert(TABLE_NAME, null, values); // レコードへ登録 94 95 db.setTransactionSuccessful(); // トランザクションへコミット 96 } catch (Exception e) { 97 e.printStackTrace(); 98 } finally { 99 db.endTransaction(); // トランザクションの終了 100 } 101 } 102 103 104 105 106 /** 107 * DBのデータを取得 108 * getDB() 109 * 110 * @param columns String[] 取得するカラム名 nullの場合は全カラムを取得 111 * @return DBのデータ 112 */ 113 public Cursor cursor(String[] columns) { 114 115 // queryメソッド DBのデータを取得 116 // 第1引数:DBのテーブル名 117 // 第2引数:取得するカラム名 118 // 第3引数:選択条件(WHERE句) 119 // 第4引数:第3引数のWHERE句において?を使用した場合に使用 120 // 第5引数:集計条件(GROUP BY句) 121 // 第6引数:選択条件(HAVING句) 122 // 第7引数:ソート条件(ODERBY句) 123 124 while(cursor.moveToNext()){ 125 //対応する方のgetメソッドで取得する 126 //INTEGER型のカラム 127 long id = cursor.getLong(cursor.getColumnIndex(_ID)); 128 //TEXT型のカラム 129 String content = cursor.getString(cursor.getColumnIndex(CONTENT)); 130 String title = cursor.getString(cursor.getColumnIndex(TITLE)); 131 String data = cursor.getString(cursor.getColumnIndex(DATA)); 132 133 } 134 135 //必ずとじる 136 cursor.close(); 137 138 139 return db.query(TABLE_NAME, columns, null, null, null, null, null); 140 } 141 142 143 144 @Override 145 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 146 147 //バージョン管理をここで行う 148 } 149 150 151} 152 153 154 155 156

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

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

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

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

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

guest

回答1

0

ベストアンサー

SQLiteDatabase
自身でコメントに記載している通りで必要なものがあれば各句を記載するだけです。必要が無い箇所はnullにしてかまいませんが、第一引数は最低限セットしてください。


こちらcursor(String[] columns)と言う中で普通にqueryお使いになっていましたね。

もし質問の内容がSQL内のデータが取れないというのであれば過去の質問にもありますよ。
https://teratail.com/questions/12385

投稿2017/04/04 01:14

編集2017/04/04 01:20
uniko

総合スコア448

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

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

edoooooo

2017/04/04 11:06

ありがとうございます。 過去の質問を見てみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問