見出し画像

Androidアプリ【Java】6.SQLite実装

画像1

今回は上記のようなあらかじめ用意した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);


}
}

私も皆さんと少しづつ成長していきたくこういう形でアウトプットさせていただいております。一つのリアクションでかなりの励みになりますのでどうかよろしくお願いします。