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'