標籤:creates operation find print contact sql語句 i++ eof name
在使用hibernate架構,查詢資料庫多張表或者單張表的某幾個需要的欄位資料時,往往只能通過sql語句配合setResultTransformer將查詢到的資料封裝到一個map集合中,再將map集合放入list中返回資料。
樣本:
控制層:查詢還款明細,還款單號、流水號、還款人、還款日期、還款金額//查詢還款明細,還款單號、流水號、還款人、還款日期、還款金額
List<Map<String,Object>> list2 = receivableService.findContactwriteoffByBillId(billId);System.out.println("list2的大小:"+list2);System.out.println("list2的大小:"+list2.size());JSONObject jsonTotal2 = new JSONObject();JSONArray jsonArray2 = new JSONArray();if(list2.size() != 0){ for (int i = 0; i < list2.size(); i++) {Object fBillno =list2.get(i).get("fBillno");Object banktransactionserialno =list2.get(i).get("banktransactionserialno");Object remitoutbankaccountname =list2.get(i).get("remitoutbankaccountname");Object operationdatetime =list2.get(i).get("operationdatetime");Object amount =list2.get(i).get("amount");JSONObject jsonObject2 = new JSONObject();jsonObject2.put("fBillno", fBillno);jsonObject2.put("banktransactionserialno", banktransactionserialno);jsonObject2.put("remitoutbankaccountname", remitoutbankaccountname);jsonObject2.put("operationdatetime", operationdatetime);jsonObject2.put("amount", amount);jsonArray2.add(jsonObject2);jsonTotal2.put("name", "還款明細");jsonTotal2.put("options", jsonArray2);}
service層查詢資料
//查詢還款明細,還款單號、流水號、還款人、還款日期、還款金額CONTACTWRITEOFF@Overridepublic List<Map<String, Object>> findContactwriteoffByBillId(String billId) {String sql = "SELECT ff.`billno` fBillno,ff.`banktransactionserialno`,ff.`remitoutbankaccountname`,ff.`operationdatetime`,ff.`amount` " +" FROM fin_contactwriteoff ff WHERE ff.`csbill` =‘"+billId+"‘";Query query = this.getSession().createSQLQuery(sql);query.setResultTransformer(new ResultTransformer() {private static final long serialVersionUID = 1L;public Object transformTuple(Object[] val, String[] arg1) {Map<String,Object> m = new HashMap<String,Object>();m.put("fBillno", val[0]);m.put("banktransactionserialno", val[1]);m.put("remitoutbankaccountname", val[2]);m.put("operationdatetime", val[3]);m.put("amount", val[4]);return m;}@Overridepublic List transformList(List arg0) {return arg0;}});List<Map<String,Object>> list = query.list();return list;}
在控制層查詢到的資料做個封裝返回到前端即可
Hibernate 中setResultTransformer使用