JavaツールクラスはResultSetオブジェクトを介して対応するエンティティListセットを返す
4533 ワード
以下から抜粋:http://www.cnblogs.com/lsy131479/p/9037786.html
JDBCを学んでからこのようなコードをたくさん使いました.
このような似たようなコードは毎日使っていて、毎日copyで、みんなはとっくにうんざりしていると信じています.
今日!Today!Javaプログラマーの福祉が来ました
最近病気で家でぶらぶらしていて退屈な道具類を書きました.
1つの
ResultSetオブジェクトと対応するエンティティークラスオブジェクト.対応するリストセットを返すことができます
ついにCtrl+c Ctrl+vを使わなくなりました!!!
使用するテクノロジー:
Java反射メカニズム
汎用クラス
実現構想:
まずツールクラスである以上、もちろん高可用性を実現しなければならない.そうしないと意味がない.
ResultSetオブジェクトを介してエンティティのセットを返す以上、個人的にはこのエンティティクラスが不確定な要素であることが考えられます.
OK、思いついたのは汎用クラスで、仮想タイプTを定義し、正確なタイプを入力して反射することでこのクラスの一連の情報を得る.
次に、付与+list.に進みます.add()操作
私はこのツール類にDBRsHelpと名付けました(自分の命名レベルがますます高くなっていることに気づきました.小さなナルシストです()
くだらないことは言わないで、栗をつけます(命名は規範的ではありません、噴き出さないでください):
成功!!ハハハ
転載先:https://www.cnblogs.com/GaoAnLee/p/9039456.html
JDBCを学んでからこのようなコードをたくさん使いました.
ResultSet rs = this.executeQuery(sql, objs);
List list = new Array();
if(rs.next()){
xxx x = new xxx();
x.setxxx(rs.getString("xxx"));
x.setsss(rs.getString("sss"));
list.add(x);
}
このような似たようなコードは毎日使っていて、毎日copyで、みんなはとっくにうんざりしていると信じています.
今日!Today!Javaプログラマーの福祉が来ました
最近病気で家でぶらぶらしていて退屈な道具類を書きました.
1つの
ResultSetオブジェクトと対応するエンティティークラスオブジェクト.対応するリストセットを返すことができます
ついにCtrl+c Ctrl+vを使わなくなりました!!!
使用するテクノロジー:
Java反射メカニズム
汎用クラス
実現構想:
まずツールクラスである以上、もちろん高可用性を実現しなければならない.そうしないと意味がない.
ResultSetオブジェクトを介してエンティティのセットを返す以上、個人的にはこのエンティティクラスが不確定な要素であることが考えられます.
OK、思いついたのは汎用クラスで、仮想タイプTを定義し、正確なタイプを入力して反射することでこのクラスの一連の情報を得る.
次に、付与+list.に進みます.add()操作
私はこのツール類にDBRsHelpと名付けました(自分の命名レベルがますます高くなっていることに気づきました.小さなナルシストです()
くだらないことは言わないで、栗をつけます(命名は規範的ではありません、噴き出さないでください):
package cn.news.util;
import java.lang.reflect.Field;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import cn.news.dao.BaseDAO;
import cn.news.entity.Users;
/**
*
* @author:
*
* @time: 3:49:32
*
* @ : https://www.cnblogs.com/lsy131479/
*
*/
// ,T:
public class DBRsHelp {
public List util(T t, ResultSet rs) throws Exception {
//
List list = new ArrayList();
// ( )
Class c = t.getClass();
// , . 。 。
Field[] fs = c.getDeclaredFields();
// ,
if (rs != null) {
while (rs.next()) {
//
t = (T) c.newInstance();
//
for (int i = 0; i < fs.length; i++) {
/*
* fs[i].getName():
*
* f:
*/
Field f = t.getClass().getDeclaredField(fs[i].getName());
// true
f.setAccessible(true);
/*
* f.getType().getName():
*/
//
if (f.getType().getName().equals(String.class.getName())) {
f.set(t, rs.getString(fs[i].getName()));
} else if (f.getType().getName().equals(int.class.getName())) {
f.set(t, rs.getInt(fs[i].getName()));
}
}
list.add(t);
}
}
//
return list;
}
//
public static void main(String[] args) throws Exception {
DBRsHelp util = new DBRsHelp();
Users u = new Users();
String sql = "select * from news_users";
BaseDAO dao = new BaseDAO();
dao.rs = dao.executeQuery(sql);
List util1 = util.util(u, dao.rs);
for (Users users : util1) {
System.out.println("uname:" + users.getUname());
System.out.println("upwd:" + users.getUpwd());
System.out.println("ustart:" + users.getUstate());
System.out.println("usessionid:" + users.getUsessionid());
System.out.println("================================================");
}
}
}
成功!!ハハハ
転載先:https://www.cnblogs.com/GaoAnLee/p/9039456.html