Hibernate SQLQuery 返回List<Bean>结果集
2015-12-03 12:03
531 查看
Hibernate hql查询语句:
Hibernate框架中hql查询简化了许多写sql语句的方法,但在实际应用中仍然有许多不方便的地方,用的最多的仍然是sql语句查询,可能查询出来的结果集并不是和数据库表的数据一一对应,在不想使用一对一、多对一、一对多等关系修改Hibernate配置文件的时候,仍然可以查询出我们需要的结果,代码如下:
需要注意的是:
1. sql语句中返回的值的列名(subMenu,orerationName,isChecked,operationNo,operationmoduleId,nodeoprationid,ismenu)应该和类 Operationmodule的属性一致
2. addScalar("orerationName", Hibernate.STRING) ,这个方法 中的第二个参数用来将查询出来的数据类型转换成类 Operationmodule属性的类型
3. 如果Operationmodule类中有10个属性,上面的代码中只有7个 addScalar()方法,查出来的结果只有上面的7个属性有值,其他3个将没有值
4. Operationmodule.java 和Operationmodule.hbm.xml文件不一定要一致,xml文件只需要和数据库中的字段对应即可,而java文件可以手动添加需要的字段
list=getHibernateTemplate().getSessionFactory().getCurrentSession().createQuery(hql).list();Hibernate sql查询语句:
getHibernateTemplate().getSessionFactory().getCurrentSession().createSQLQuery(sql).list();
Hibernate框架中hql查询简化了许多写sql语句的方法,但在实际应用中仍然有许多不方便的地方,用的最多的仍然是sql语句查询,可能查询出来的结果集并不是和数据库表的数据一一对应,在不想使用一对一、多对一、一对多等关系修改Hibernate配置文件的时候,仍然可以查询出我们需要的结果,代码如下:
List<Operationmodule> list=getHibernateTemplate().getSessionFactory().getCurrentSession().createSQLQuery(sql) .addScalar("subMenu", Hibernate.INTEGER) .addScalar("orerationName", Hibernate.STRING) .addScalar("isChecked", Hibernate.INTEGER) .addScalar("operationNo", Hibernate.STRING) .addScalar("operationmoduleId", Hibernate.STRING) .addScalar("nodeoprationid", Hibernate.STRING) .addScalar("ismenu", Hibernate.STRING) .setResultTransformer(Transformers.aliasToBean(Operationmodule.class)).list();其中的变量sql为
select sub_menu as subMenu,oreration_name as orerationName,isChecked,<pre name="code" class="java">operationNo,operationmoduleId,nodeoprationid,ismenu from operation_module where 1=1 and ...
需要注意的是:
1. sql语句中返回的值的列名(subMenu,orerationName,isChecked,operationNo,operationmoduleId,nodeoprationid,ismenu)应该和类 Operationmodule的属性一致
2. addScalar("orerationName", Hibernate.STRING) ,这个方法 中的第二个参数用来将查询出来的数据类型转换成类 Operationmodule属性的类型
3. 如果Operationmodule类中有10个属性,上面的代码中只有7个 addScalar()方法,查出来的结果只有上面的7个属性有值,其他3个将没有值
4. Operationmodule.java 和Operationmodule.hbm.xml文件不一定要一致,xml文件只需要和数据库中的字段对应即可,而java文件可以手动添加需要的字段
相关文章推荐
- iOS一UIlabel用法详解
- iOS UISlider简单使用
- php使用uediter获取不到内容
- iOS中UITextField 使用全面解析
- MUI 授权
- 如何让NGUI的对象在3D模型之上
- Apue Chapter 8 习题答案
- 带新手资料:UIScrollView课程(一)
- UITextView - 5
- iOS开发UI篇—ios应用数据存储方式(归档)
- UISearchBar改变搜索框的高度
- SpannableStringBuilder SpannableString
- 手机UI自动化测试工具NativeDriver VS Robotium
- ios学习之UIKit框架(1)--UIResponder
- UI基本知识
- UIView常用的一些方法小记之setNeedsDisplay和setNeedsLayout
- iOS 横屏中添加UIImagePickerController获取系统图片
- Adafruit的树莓派教程第五课:使用控制电缆
- Your build settings specify a provisioning profile with the UUID, no provisioning profile was
- push segues are deprecated since ios 8.0