49. JavaでのDBの取得周りについて
id name lv
1 セイバー 10
2 アーチャー 9
3 ランサー 8
DBテーブル 「servant」
dbObj = GetFromDB(“SELECT * FROM servant”);
Servant[] data = new Servant[dbObj.GetCount()];
for( int i = 0; i < dbObj.GetCount(); ++i ){
data[i] = new Servant();
data[i].id = dbObj.GetInt( i , “id” );
data[i].name = dbObj.GetString( i , “name” );
data[i].lv = dbObj.GetInt( i , “lv” );
}
// 各カラムごとに個別に取ってくる必要があり面倒
DB上に上記のようなテーブルがあったと
仮定して、それを処理するJavaプログラム
は左のような仮コードになる
// どこかでクラス定義している
class Servant{
public int id;
public string name;
public int lv;
}
50. JavaでのDBの取得周りについて
id name lv
1 セイバー 10
2 アーチャー 9
3 ランサー 8
DBテーブル 「servant」
dbObj = GetFromDB(“SELECT * FROM servant”);
Servant[] data = new Servant[dbObj.GetCount()];
for( int i = 0; i < dbObj.GetCount(); ++i ){
data[i] = new Servant();
data[i].id = dbObj.GetInt( i , “id” );
data[i].name = dbObj.GetString( i , “name” );
data[i].lv = dbObj.GetInt( i , “lv” );
}
// 各カラムごとに個別に取ってくる必要があり面倒
カラムが増えれば増えるほど、ここを書く
量が増えてきて面倒だし、ミスも増える
// どこかでクラス定義している
class Servant{
public int id;
public string name;
public int lv;
}
54. Reflectionについて
id name lv
1 セイバー 10
2 アーチャー 9
3 ランサー 8
DBテーブル 「servant」
// DBからデータを引くとき、各public変数の名前に勝手に代入させる
class Servant{
public int id;
public string name;
public int lv;
} DB名と変数名で紐づけして、
勝手に値が入るようにする
55. JavaでのDBの取得周りについて
id name lv
1 セイバー 10
2 アーチャー 9
3 ランサー 8
DBテーブル 「servant」
dbObj = GetFromDB(“SELECT * FROM servant”);
Servant[] data = dbObj.GetCount();
for( int i = 0 ; i < dbObj.GetCount();++i){
data[i] = new Servant();
dbObj.Read<Servant>( i , data[i] );
}
// どこかでクラス定義している
class Servant{
public int id;
public string name;
public int lv;
}