由于比较简单,在此处只写一些HQL语言。

表关系,多对一。

CREATE TABLE `user` (
`id` int() NOT NULL AUTO_INCREMENT,
`uname` varchar() ,
PRIMARY KEY (`id`)
)
CREATE TABLE `idcard` (
`id` INT() PRIMARY KEY NOT NULL AUTO_INCREMENT,
`addr` VARCHAR(),
`uid` INT() ,
FOREIGN KEY (`uid`) REFERENCES `user` (`id`)
)

其中每张表都有对应的类,分别是User,IdCard

1 查询全部

Query q = session.createQuery("from User");
List list = q.list();

2 查询指定列

Query q = session.createQuery("select u.uname, u.id from User u");

3 条件查询,and,or,between,模糊查询

Query q = session.createQuery("from User u where u.id between ? and ?");
q.setParameter(, );
q.setParameter(, );

4 聚合函数,count;分组,group by

Query q = session.createQuery("select i.iaddr,count(*) from User u, IdCard i where u.id=i.id group by i.iaddr ");
List list = q.list();

5 分页查询

Query q = session.createQuery("from User");
q.setFirstResult();
q.setMaxResults();

6 获取总记录数

方法一:使用聚合函数COUNT(*)

Query q = session.createQuery("select count(*) from User");
Long result = (Long) q.uniqueResult();

方法二:使用scroll(),首先滚动到最后,然后获取索引值

Query q = session.createQuery("from User");

ScrollableResults scrollResult = q.scroll();  //得到滚动的结果集
scrollResult.last(); //滚动到最后一行
int result = scrollResult.getRowNumber() + ; //获取当前值的索引值,因为是从0开始的,所以需要加1

7 hibernate对数据库连接C3P0连接池的支持,配置参数,可以到hibrenate.properties文件中找到

hibernate.cfg.xml配置文件如下

    <property name="hibernate.connection.driver_class">org.hibernate.connection.C3P0ConnectionProvider</property>
<property name="hibernate.c3p0.min_size"></property>
<property name="hibernate.c3p0.max_size"></property>
<property name="hibernate.c3p0.max_statements"></property>
<property name="hibernate.c3p0.timeout"></property>
<property name="hibernate.c3p0.idle_test_period"></property>
<property name="hibernate.c3p0.acquire_increment"></property>

在mysql中使用如下语句可以查看连接

SHOW PROCESSLIST;

hibernate 中HQL查询的更多相关文章

  1. Hibernate 中Hql 查询中间表的用法

    案例简述: 项目中存在User 用户表 和 Role 角色表 它们之间是多对多的关系 在User类定义中 使用hibernate注解 //角色列表 @ManyToMany(targetEntity = ...

  2. Hibernate中Hql查询

    这篇随笔将会记录hql的常用的查询语句,为日后查看提供便利. 在这里通过定义了三个类,Special.Classroom.Student来做测试,Special与Classroom是一对多,Class ...

  3. hibernate的hql查询

    1.概念介绍 1.Query是Hibernate的查询接口,用于从数据存储源查询对象及控制执行查询的过程,Query包装了一个HQL查询语句. 2.HQL是Hibernate Query Langua ...

  4. Hibernate之HQL查询

    一.Hibernate 提供了以下几种检索对象的方式: 导航对象图检索方式: 根据已经加载的对象导航到其他对象 OID 检索方式: 按照对象的 OID 来检索对象 HQL 检索方式:使用面向对象的 H ...

  5. Hibernate五 HQL查询

    HQL查询一 介绍1.HQL:Hibernate Query Language,是一种完全面向对象的查询语言.使用Hibernate有多重查询方式可供选择:hibernate的HQL查询,也可以使用条 ...

  6. Hibernate 的hql查询简介【申明:来源于网络】

    Hibernate 的hql查询简介[申明:来源于网络] Hibernate 的hql查询简介:http://blog.csdn.net/leaf_130/article/details/539329 ...

  7. JavaWeb_(Hibernate框架)Hibernate中数据查询语句HQL基本用法

    HQL(Hibernate Query Language) 是面向对象的查询语言, 它和 SQL 查询语言有些相似. 在 Hibernate 提供的各种检索方式中, HQL 是使用最广的一种检索方式. ...

  8. hibernate中HQL练习时候一个小小的错误导致语法异常

    package cn.db.po.test; import java.util.List; import cn.db.po.User; import cn.db.po.biz.UserBiz; pub ...

  9. hibernate中带查询条件的分页

    所谓分页,从数据库中分,则是封装一个分页类.利用分页对象进行分页. 但,分页往往带查询条件. 分页类的三个重要数据:[当前页码数],[数据库中的总记录数],[每页显示的数据的条数] 原理:select ...

随机推荐

  1. Div+CSS展示物流跟踪轨迹信息

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  2. Unable to load DLL 'opencv_core290'

    问题: In my winforms application I need to use some Emgu.CV libraries (I have installed Emgu 2.9). Pro ...

  3. [译林军] 译~CrossBridge 简介

    本文由 9ria 社区译林军翻译,转载请注明出处.加入译林军 :http://bbs.9ria.com/thread-286920-1-1.html CrossBridge 是  Adobe  Fla ...

  4. Andorid之Annotation框架初使用(四)

    代替繁琐的finViewById @EActivity public class MyActivity extends Activity { // Injects R.id.myEditText @V ...

  5. linux查找超过一定时间的文件,并批量删除

    1.find . -maxdepth 4  -name "*-*" -mtime 3 -maxdepth的值决定是否对下面的子目录进行递归查找 -mtime 3表示查找刚好3天的: ...

  6. 数学图形(1.29) cochleoid曲线

    它也算是一种螺线吧 相关软件参见:数学图形可视化工具,使用自己定义语法的脚本代码生成数学图形.该软件免费开源.QQ交流群: 367752815 #http://www.mathcurve.com/co ...

  7. Informatica 常用组件Source Qualifier之五 User Defined Join

    User defined join :      输入用户定义的联接与输入自定义 SQL 查询类似.但是,只需输入 WHERE 子句的内容,而不是整个查询. 添加用户定义的联接时,源限定符转换包括默认 ...

  8. Linux下Oracle 10g DataGuard配置(主从同步及切换)

    环境描述:主库: IP: 10.8.3.191 主机名:primaryORACLE_SID=afcORACLE_BASE=/u01/oracleORACLE_HOME=/u01/oracle/10g备 ...

  9. OpenMP 线程互斥锁

    OpenMP是跨平台的多核多线程编程的一套指导性的编译处理方案(Compiler Directive),指导编译器将代码编译为多线程程序. 多线程编程中肯定会涉及到线程之间的资源共享问题,就可以使用互 ...

  10. 开发者和系统管理者最喜爱的开源工具Vim 起步学习的五个技巧

    多年来,我一直想学 Vim.如今 Vim 是我最喜欢的 Linux 文本编辑器,也是开发者和系统管理者最喜爱的开源工具.我说的学习,指的是真正意义上的学习.想要精通确实很难,所以我只想要达到熟练的水平 ...