[問題] java ee的getResultList如何實作

看板java作者 (gg)時間13年前 (2012/11/07 23:55), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
我想要知道java ee的getResultList method是如何實作 我有下ee api的source code查只知道在Query interface有定義getResultList method 不清楚在哪裡實作code 我很想知道getResultList如何work 另外如果要研究api的source code有沒有建議的方法入門 主要是因為我寫了1個class想要將query resultSet存到對應的物件 //連接資料庫 public class DBConnection { private Connection connection; private Statement statement; private ResultSet resultSet; private boolean hasRow; private boolean isReturn; private ArrayList<ArrayList<Object>> allResultList; private Object returnObj; public void connectDB(String query) { . . . try { Class.forName("com.informix.jdbc.IfxDriver"); connection = DriverManager.getConnection(dbURL); statement = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSetMetaData metaData = resultSet.getMetaData(); int numberOfColumns = metaData.getColumnCount(); while (resultSet.next()) { hasRow = true; if (isReturn) { if (numberOfColumns == 1) { resultSet.last(); int rowCount = resultSet.getRow(); resultSet.first(); if (rowCount == 1) returnObj = resultSet.getObject(1); } else { ArrayList<Object> arrayResultSet = new ArrayList<Object>(); for (int i = 1; i <= numberOfColumns; i++) { arrayResultSet.add(resultSet.getObject(i)); } allResultList.add(arrayResultSet); } } else break; } } catch (SQLException sqlEx) { . . . } } //回傳query 1筆結果 public Object getReturnObj(){ return returnObj; } //回傳query 結果 public ArrayList<ArrayList<Object>> getAllResultList() { return allResultList; } } //接收處理data public class DataProcessing { private ArrayList<TableAfpopf1> Afpopf1List; . . . private void setDataList(ArrayList<ArrayList<Object>> allResultList, int choiceNum) { int inputindex = 0; DateFormat sdf = new SimpleDateFormat("yyyy-mm-dd"); if (choiceNum == 1) { for (int i=0; i<allResultList.size(); i++) { TableAfpopf1 afpItem = new TableAfpopf1(); for (Object obj : allResultList.get(i)) { switch (inputindex+1) { case 1: afpItem.setFcerno((String)obj); break; . . . . case 57: afpItem.setQueryno((String)obj); break; } inputindex++; } Afpopf1List.add(afpItem); } } . . . } } 由於query有57筆欄位 因此case 1到case 57塞到TableAfpopf1的Afpopf1List裡 我覺得這code實在有點蠢 剛好發現getResultList似乎有我想要的功能 所以我想知道getResultList如何被實作出來 或者有其他有效率的寫法也可以讓我學習 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.226.18.28

11/08 16:00, , 1F
reflect?
11/08 16:00, 1F
文章代碼(AID): #1GceI9id (java)