spring mvc +jdbctemplate 返回多表查询List

发现 hibernate做多表查询 是忒麻烦了 
Spring JDBC提供了一个BeanPropertyRowMapper的实现,能够自动将数据库表中读出的字段与Domain对象的属性进行映射 

果断用 jdbctemplate啊 下面 说下方法 
首先 在dao里 注入下 
@Autowired 
public JdbcTemplate jdbcTemplate; 

然后在springappplication.xml里 配置下 
  
       
            
                
            
        

然后建立一个符合自己业务的bean 

然后写dao方法 
Java代码   收藏代码
  1. public List findGoodsListBean(String goodsnum, Integer vmid,  
  2.         Integer omid, String rusjstart, String rusjend) throws Exception {  
  3.     // if (userid == null) {  
  4.     // return new ArrayList();  
  5.     // }  
  6.     StringBuilder sbstr = new StringBuilder(  
  7.             "SELECT g.*,u.name acceptancename,c.name companyname,vm.name vmname"  
  8.                     + " ,om.name omname,cc.name contactsname FROM goods g,pus_sys_user u,companyinfors c "  
  9.                     + " ,variety_management vm,origin_management om ,companycontacts cc WHERE g.acceptanceid=u.id"  
  10.                     + " AND g.companyid=c.id AND g.vmid=vm.id AND g.omid=om.id "  
  11.                     + " AND g.contactsid=cc.id AND g.state=1");  
  12.   
  13.     List list = jdbcTemplate.query(sbstr.toString(), new BeanPropertyRowMapper(GoodsListBean.class));  
  14.     return list;  
  15. }  


最后把这个list直接丢到easyui的rows里就好了 

Java代码   收藏代码
  1. List listg=new ArrayList();  
  2.         //List listgend=new ArrayList();  
  3.         try {  
  4.             listg=goodsDao.findGoodsListBean(goodsnum, vmid, omid,rusjstart, rusjend);  
  5.         } catch (Exception e1) {  
  6.             // TODO Auto-generated catch block  
  7.             e1.printStackTrace();  
  8.             logger.error("货物查询异常", e1);  
  9.             listg=new ArrayList();  
  10.         }  
  11.         mapjson.put(  
  12.                 "rows",  
  13.                 listg);  

你可能感兴趣的:(Spring相关开发技巧)