使用原生SQL返回实体类具体实现详情
注:可以直接复制粘贴,欢迎提出各种问题,谢谢!
因为网上查询大都是相同的,自己做时发现很多不懂,摸索了很久才弄懂,所以写了这个例子,比较容易看懂吧。
使用原生SQL查询并将结果返回实体中:
(1)因为原生SQL返回使用SQLQuery的createSqlQuery();返回的是list,所以在DAO层(数据操作),创建List方法;
(2)使用SQLQuery的createSqlQuery("sql");方法,注意:因为需要把结果返回实体类,所以,需要先创建实体类;然后把sql语句中需显示的字段或字段对应的别名写成小写;
(3)编写代码:
public List<实体类名> getLists(){
String sql = "sql语句";
SQLQuery query = this.getSession().createsqlquery(sql)
.addScalar("字段1")
.addScalar("字段2")
.addScalar("字段3")
...
.setResultTransformer(Transformers.aliasToBean(实体类名.class));
List<实体类名> list = query.list();
if(list.size()>0){
//返回数据
}
}
(4)在java中显示
直接调用实体类就行了,比如:
List<实体类名> list = userDao.getLists();
for(实体类名 变量名:list){
System.out.print(变量名.字段的get方法);
}
(5)在jsp页面显示
通过后台传递的值,前台显示,例如:
<c:choose>
<c:when test="${not empty list}">
<c:forEach items="${list}" var="lits" varStatus="sta">
<tr id="product1">
<td>${list.id}</td>
<td>${lits.company}</td>
</tr>
</c:forEach>
</c:when>
</c:choose>
备注:如需转载,请付上链接地址,谢谢!