Hibernate使用SQL进行查询
2016-07-19 11:00
295 查看
使用SQL语句进行查询的步骤:
得到sessionFactory
得到session
使用sql语句创建查询createQuery
规范返回值的类型,使用addScalar函数,第一个参数必须与ResultSet中的字段一一对应,区分大小写。
使用实例类接受返回的数据
使用list()进行进行查询
演示代码如下:
用来接受数据的实体类如下:
使用的SQL语句,就不用在xxx.hbm.xml语句中定义实体类和数据库字段的一一对应关系,因为在上面的addScalar中已经这么做了。
使用的是hibernate 3,大小写是区分的。我们常用的属性命名方式是驼峰形式的,这里会带来一点不方便,如果有解决方案的麻烦指出。
得到sessionFactory
得到session
使用sql语句创建查询createQuery
规范返回值的类型,使用addScalar函数,第一个参数必须与ResultSet中的字段一一对应,区分大小写。
使用实例类接受返回的数据
使用list()进行进行查询
演示代码如下:
public List<VideoSchedule> getVideoScheduleList() { String hqlQueryString="select a.name areaname,c.camera_id cameraid,c.name cameraname,v.guid,v.enable enableflag from camera_info as c inner join area as a on a.area_id=c.area_id inner join vrm_record_schedule as v on c.camera_id=v.camera_id;"; Session session=getHibernateTemplate().getSessionFactory().openSession(); SQLQuery query=session.createSQLQuery(hqlQueryString); query.addScalar("areaname",StandardBasicTypes.STRING); query.addScalar("cameraid", StandardBasicTypes.STRING); query.addScalar("cameraname", StandardBasicTypes.STRING); query.addScalar("guid", StandardBasicTypes.STRING); query.addScalar("enableflag", StandardBasicTypes.STRING); query.setResultTransformer(Transformers.aliasToBean(VideoSchedule.class)); List<VideoSchedule> videoScheduleList=query.list(); return videoScheduleList; }
用来接受数据的实体类如下:
public class VideoSchedule { private String areaName; private String cameraId; private String cameraName; private String enableFlag; private String guid; //get,set方法 }
使用的SQL语句,就不用在xxx.hbm.xml语句中定义实体类和数据库字段的一一对应关系,因为在上面的addScalar中已经这么做了。
使用的是hibernate 3,大小写是区分的。我们常用的属性命名方式是驼峰形式的,这里会带来一点不方便,如果有解决方案的麻烦指出。
相关文章推荐
- SQL中的三值逻辑
- SQL Server 作业批量停止
- 结束SQL阻塞的进程
- 动态生成SQL Server视图作业
- SQL Server 语句操纵数据库
- SQL(结构化查询语句)
- oracle sql日期比较
- linux快速部署mysql服务器
- sql 存储过程分页
- 在WINXP系统上安装SQL Server企业版的方法
- 通过批处理调用SQL的方法(osql)
- SQL Server 存储过程的分页
- ASP程序与SQL存储过程结合使用详解
- SQL SERVER编写存储过程小工具
- 防御SQL注入攻击时需要注意的一个问题
- Microsoft Sql server2005的安装步骤图文详解及常见问题解决方案
- PostgreSQL教程(十九):SQL语言函数
- SQL Server复制需要有实际的服务器名称才能连接到服务器