Androidアプリ【Java】6.SQLite実装
今回は上記のようなあらかじめ用意したEditText上にDBの情報を
表示させるような機能を実装。
Dataクラス作成
カラムを予め定義しておくクラスを作成する。
正直これはSQLiteOpenHelper内で定義しても大丈夫。
Java/android.example.databasesimple/MainActivity
package com.example.databasesimple;
import android.provider.BaseColumns;
public class Data {
public static abstract class DB implements BaseColumns {
public static final String TABLE ="_table";
public static final String _ID = "id";
public static final String COLUMN1 = "column1";
public static final String COLUMN2 = "column2";
public static final String COLUMN3 = "column3";
public static final String COLUMN4 = "column4";
public static final String COLUMN5 = "column5";
public static final String COLUMN6 = "column6";
public static final String COLUMN7 = "column7";
}
}
MyDBHelperクラス作成
Java/android.example.databasesimple/MyDBHelper
package com.example.databasesimple;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import androidx.annotation.Nullable;
public class MyDBHelper extends SQLiteOpenHelper {
public MyDBHelper(Context context) {
super(context, null, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
String TEST = "CREATE TABLE "+ Data.DB.TABLE+" ("+
Data.DB._ID+" INTEGER PRIMARY KEY AUTOINCREMENT,"+
Data.DB.COLUMN1+" TEXT,"+
Data.DB.COLUMN2+" TEXT,"+
Data.DB.COLUMN3+" TEXT,"+
Data.DB.COLUMN4+" TEXT,"+
Data.DB.COLUMN5+" TEXT,"+
Data.DB.COLUMN6+" TEXT,"+
Data.DB.COLUMN7+" TEXT)";
db.execSQL(TEST);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
レイアウトファイル作成
res/layout/activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<GridLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:columnCount="3"
android:rowCount="7">
<TextView
android:layout_marginTop="10dp"
android:textSize="18sp"
android:layout_row="0"
android:layout_column="0"
android:text="@string/sample1"/>
<EditText
android:id="@+id/Text1"
android:layout_width="320dp"
android:layout_row="0"
android:layout_column="1"
android:inputType="date"
android:layout_height="60dp"
android:paddingLeft="5dp"
android:layout_marginTop="10dp"
android:maxLength="8"/>
<TextView
android:layout_marginTop="10dp"
android:textSize="18sp"
android:layout_row="1"
android:layout_column="0"
android:text="@string/sample2"/>
<EditText
android:id="@+id/Text2"
android:layout_marginTop="10dp"
android:layout_width="320dp"
android:layout_height="60dp"
android:layout_row="1"
android:layout_column="1"
android:inputType="text"
android:paddingLeft="5dp"/>
<TextView
android:layout_marginTop="10dp"
android:textSize="18sp"
android:layout_row="2"
android:layout_column="0"
android:text="@string/sample3"/>
<EditText
android:id="@+id/Text3"
android:layout_marginTop="10dp"
android:layout_width="320dp"
android:layout_height="60dp"
android:layout_row="2"
android:layout_column="1"
android:inputType="text"
android:paddingLeft="5dp"/>
<TextView
android:layout_marginTop="10dp"
android:textSize="18sp"
android:layout_row="3"
android:layout_column="0"
android:text="@string/sample4"/>
<EditText
android:id="@+id/Text4"
android:layout_marginTop="10dp"
android:layout_width="320dp"
android:layout_height="60dp"
android:layout_row="3"
android:layout_column="1"
android:inputType="text"
android:paddingLeft="5dp"/>
<TextView
android:layout_marginTop="10dp"
android:textSize="18sp"
android:layout_row="4"
android:layout_column="0"
android:text="@string/sample5"/>
<EditText
android:id="@+id/Text5"
android:layout_marginTop="10dp"
android:layout_width="320dp"
android:layout_height="60dp"
android:layout_row="4"
android:layout_column="1"
android:inputType="text"
android:paddingLeft="5dp"/>
<TextView
android:layout_marginTop="10dp"
android:textSize="18sp"
android:layout_row="5"
android:layout_column="0"
android:text="@string/sample6"/>
<EditText
android:id="@+id/Text6"
android:layout_marginTop="10dp"
android:layout_width="320dp"
android:layout_height="60dp"
android:layout_row="5"
android:layout_column="1"
android:inputType="text"
android:paddingLeft="5dp"/>
<TextView
android:layout_marginTop="10dp"
android:textSize="18sp"
android:layout_row="6"
android:layout_column="0"
android:text="@string/sample7"/>
<EditText
android:id="@+id/Text7"
android:layout_marginTop="10dp"
android:layout_width="320dp"
android:layout_height="60dp"
android:layout_row="6"
android:layout_column="1"
android:inputType="text"
android:paddingLeft="5dp"/>
</GridLayout>
</LinearLayout>
MainActivity編集
package com.example.databasesimple;
import androidx.appcompat.app.AppCompatActivity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MyDBHelper helper = new MyDBHelper(this);
SQLiteDatabase db = helper.getReadableDatabase();
//実際に挿入する値
db.execSQL("insert into _table(column1,column2,column3,column4,column5,column6,column7)values('db1','db2','db3','db4','db5','db6','db7');");
//変数宣言と初期化
String text1="",text2="",text3="",text4="",text5="",text6="",text7="";
Cursor c = db.query(Data.DB.TABLE,new String[]{
Data.DB.COLUMN1, Data.DB.COLUMN2, Data.DB.COLUMN3, Data.DB.COLUMN4, Data.DB.COLUMN5, Data.DB.COLUMN6, Data.DB.COLUMN7
},null,null,null,null,null);
//変数を複数作成し一つのCursorで全てのEditTextに値を入れる
boolean aaa = c.moveToFirst();
while (aaa){
text1+=String.format("%s",c.getString(0));
aaa = c.moveToNext();
}
boolean bbb = c.moveToFirst();
while (bbb){
text2+=String.format("%s",c.getString(1));
bbb = c.moveToNext();
}
boolean ccc = c.moveToFirst();
while (ccc){
text3+=String.format("%s",c.getString(2));
ccc = c.moveToNext();
}
boolean ddd = c.moveToFirst();
while (ddd){
text4+=String.format("%s",c.getString(3));
ddd = c.moveToNext();
}
boolean eee = c.moveToFirst();
while (eee){
text5+=String.format("%s",c.getString(4));
eee = c.moveToNext();
}
boolean fff = c.moveToFirst();
while (fff){
text6+=String.format("%s",c.getString(5));
fff =c.moveToNext();
}
boolean ggg = c.moveToFirst();
while (ggg){
text7+=String.format("%s",c.getString(6));
ggg=c.moveToNext();
}
final EditText editText1 =findViewById(R.id.Text1);
editText1.setText(text1);
final EditText editText2 = findViewById(R.id.Text2);
editText2.setText(text2);
final EditText editText3 = findViewById(R.id.Text3);
editText3.setText(text3);
final EditText editText4 = findViewById(R.id.Text4);
editText4.setText(text4);
final EditText editText5 = findViewById(R.id.Text5);
editText5.setText(text5);
final EditText editText6 = findViewById(R.id.Text6);
editText6.setText(text6);
final EditText editText7 = findViewById(R.id.Text7);
editText7.setText(text7);
}
}
私も皆さんと少しづつ成長していきたくこういう形でアウトプットさせていただいております。一つのリアクションでかなりの励みになりますのでどうかよろしくお願いします。