Servlet層
@Override public List porttablemapping(String detaliNumber, String field) throws Exception { /*映射表接口*/ StringBuffer sqlTN = new StringBuffer(); StringBuffer sqll = new StringBuffer(); sqlTN.append("select sources_table from sap_org_mapping_detail where detail_number="+detaliNumber+""); SQLQuery queryTN= this.getBaseDao().getHibernateSession().createSQLQuery(sqlTN.toString()); List<String> listTN=queryTN.list(); String tablename=listTN.get(0); if(field==null){ sqll.append("select * from "+tablename+""); }else{ sqll.append("select "+field+" from "+tablename+""); } List llist=this.getBaseDao().getHibernateSession().createSQLQuery(sqll.toString()).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).list(); return llist; }
list測試的結果為:[{CARDID=268437586, READERNAME=68, READERID=1000068, STATIONID=141, STATIONNAME=中央黨校北門站, RLOCATION=116.45007,39.9918, CARID=魯A00002}, {CARDID=268437575, READERNAME=68, READERID=1000068, STATIONID=141, STATIONNAME=中央黨校北門站, RLOCATION=116.45007,39.9918, CARID=魯A00001}, {CARDID=268437592, READERNAME=68, READERID=1000068, STATIONID=141, STATIONNAME=中央黨校北門站, RLOCATION=116.45007,39.9918, CARID=魯A00004}]
說明:另外,對於ResultTransformer的用法還有很多,它可以將用SQL語句查詢的結果轉化成為指定的BEAN,也可以轉為LIST,也可以轉化為MAP
本來查詢出來的list是List<Object[]>這個類型的,同個setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP)轉換后就是List<map>類型
controller層
@Controller @RequestMapping(value = "/SapOrgMappingDetailController") public class SapOrgMappingDetailController { private ISapOrgMappingDetailService sapOrgMappingDetailService; public ISapOrgMappingDetailService getSapOrgMappingDetailService() { return sapOrgMappingDetailService; } public void setSapOrgMappingDetailService(ISapOrgMappingDetailService sapOrgMappingDetailService) { this.sapOrgMappingDetailService = sapOrgMappingDetailService; } @RequestMapping(value = "/porttablemapping",produces="application/json;charset=utf-8") @ResponseBody() 自動將返回值改為JSON格式 public List porttablemapping(String detaliNumber, String field) throws Exception { List list= sapOrgMappingDetailService.porttablemapping(detaliNumber,field); return list; } }
請求鏈接:
http://localhost:8080/SapOrgMappingDetailController/porttablemapping?detaliNumber='20191108-002_1'&field='sources_field'