發現 hibernate作多表查詢 是忒麻煩了
Spring JDBC提供了一個BeanPropertyRowMapper的實現,可以自動將數據庫表中讀出的字段與Domain對象的屬性進行映射
果斷用 jdbctemplate啊 下面 說下方法
首先 在dao裏 注入下
@Autowired
public JdbcTemplate jdbcTemplate;
而後在springappplication.xml裏 配置下
<!-- jdbc注入 -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>
而後創建一個符合本身業務的bean
而後寫dao方法
public List<GoodsListBean> findGoodsListBean(String goodsnum, Integer vmid,
Integer omid, String rusjstart, String rusjend) throws Exception {
// if (userid == null) {
// return new ArrayList<PusMenu>();
// }
StringBuilder sbstr = new StringBuilder(
"SELECT g.*,u.name acceptancename,c.name companyname,vm.name vmname"
+ " ,om.name omname,cc.name contactsname FROM goods g,pus_sys_user u,companyinfors c "
+ " ,variety_management vm,origin_management om ,companycontacts cc WHERE g.acceptanceid=u.id"
+ " AND g.companyid=c.id AND g.vmid=vm.id AND g.omid=om.id "
+ " AND g.contactsid=cc.id AND g.state=1");
List<GoodsListBean> list = jdbcTemplate.query(sbstr.toString(), new BeanPropertyRowMapper(GoodsListBean.class));
return list;
}
最後把這個list直接丟到easyui的rows裏就行了
List<GoodsListBean> listg=new ArrayList<GoodsListBean>();
//List<GoodsListBean> listgend=new ArrayList<GoodsListBean>();
try {
listg=goodsDao.findGoodsListBean(goodsnum, vmid, omid,rusjstart, rusjend);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
logger.error("貨物查詢異常", e1);
listg=new ArrayList<GoodsListBean>();
}
mapjson.put(
"rows",
listg);