hibernate对连接池的支持和HQL查询
hibernate对连接池的支持
连接池,
作用: 管理连接;提升连接的利用效率!
常用的连接池: C3P0连接池
Hibernate 自带的也有一个连接池,且对C3P0连接池也有支持!
只维护一个连接,比较简陋。
可以查看hibernate.properties文件查看连接池详细配置:
...... ################################# ### Hibernate Connection Pool ### ################################# # Hibernate自带的连接池:只有一个连接 hibernate.connection.pool_size 1 ########################### ### C3P0 Connection Pool### ########################### #Hibernate连接池的参数 #hibernate.c3p0.max_size 2 最大连接数 #hibernate.c3p0.min_size 2 最小连接数 #hibernate.c3p0.timeout 5000 超时连接 #hibernate.c3p0.max_statements 100 最大执行的命令个数 #hibernate.c3p0.idle_test_period 3000 空闲测试时间 #hibernate.c3p0.acquire_increment 2 连接不够用的时候,每次增加的连接数 #hibernate.c3p0.validate false ############################## ### Proxool Connection Pool### ############################## ## Properties for external configuration of Proxool hibernate.proxool.pool_alias pool1 ## Only need one of the following #hibernate.proxool.existing_pool true #hibernate.proxool.xml proxool.xml #hibernate.proxool.properties proxool.properties ################################# ### Plugin ConnectionProvider ### ################################# ## use a custom ConnectionProvider (if not set, Hibernate will choose a built-in ConnectionProvider using hueristics) #Hibernate对C3P0的连接池支持 #hibernate.connection.provider_class org.hibernate.connection.DriverManagerConnectionProvider #hibernate.connection.provider_class org.hibernate.connection.DatasourceConnectionProvider #hibernate.connection.provider_class org.hibernate.connection.C3P0ConnectionProvider #hibernate.connection.provider_class org.hibernate.connection.ProxoolConnectionProvider ......
Hibernate.cfg.xml 中增加连接池相关配置:
<!-- 连接池配置 --> <!-- 配置连接驱动管理类 --> <property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property> <!-- 配置连接池参数信息 --> <property name="hibernate.c3p0.min_size">2</property> <property name="hibernate.c3p0.max_size">4</property> <property name="hibernate.c3p0.timeout">5000</property> <property name="hibernate.c3p0.max_statements">10</property> <!-- 最大执行sql语句的条数 --> <property name="hibernate.c3p0.idle_test_period">3000</property> <property name="hibernate.c3p0.acquire_increment">2</property>
HQL查询
1、分页查询
@Test public void test() { Session session=sf.openSession(); session.beginTransaction(); Query query=session.createQuery("from Employee"); //从记录数 ScrollableResults scroll=query.scroll(); //得到滚动的结果集 scroll.last(); //滚到最后一条 int totalCount=scroll.getRowNumber()+1; //得到滚动的记录数,即总记录数 //设置分页参数 query.setFirstResult(0); query.setMaxResults(4); List<Employee> list=query.list(); for (Employee employee : list) { System.out.println(employee); } session.getTransaction().commit(); session.close(); }
2、HQL的各种查询
@Test public void testHql() { Session session=sf.openSession(); session.beginTransaction(); //查询指定的列 // Query query=session.createQuery("select e.empId,e.empName from Employee e"); //查询指定的列,同时自动封装【必须要提供带参数的构造器】 // Query query=session.createQuery("select new Employee(e.empId,e.empName) from Employee e"); //条件查询 一个条件/多个条件/ or /and /like模糊查询 //占位符 // Query query=session.createQuery("from Employee where empName=?"); // query.setString(0, "王五"); //条件查询,命名参数 // Query query=session.createQuery("from Employee where empId=:myId and empName=:myName"); // query.setParameter("myId", 3); // query.setParameter("myName", "王五"); //模糊查询 // Query query=session.createQuery("from Employee where empName like ?"); // query.setString(0, "%王%"); //聚合函数统计 // Query query=session.createQuery("select count(*) from Employee"); // Long num=(Long)query.uniqueResult(); // System.out.println(num); //分组查询 Query query=session.createQuery("select e.dept,count(*) from Employee e group by e.dept"); System.out.println(query.list()); session.getTransaction().commit(); session.close(); }
js:多级菜单
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>延迟菜单</title> <link rel="stylesheet" type="text/css" href="miaov_style.css"> </head> <script type="text/javascript"> window.onload = function() { var aA=getByClass(document,'normal'); var aSpan=getByClass(document,'float_layer'); var timer=null; for (var i = aA.length - 1; i >= 0; i--) { aA[i].index=i; aA[i].onmouseover=function () { for (var i = aSpan.length - 1; i >= 0; i--) { aSpan[i].style.display='none'; } aSpan[this.index].style.display='block'; clearInterval(timer); } aA[i].onmouseout=function () { var This=this; timer=setTimeout(function () { aSpan[This.index].style.display='none'; },1000); } aSpan[i].onmouseover=function () { clearInterval(timer); }; aSpan[i].onmouseout=function () { var This=this; timer=setTimeout(function () { This.style.display='none'; },1000); } } function getByClass(oParent, sClass) { var aElem = oParent.getElementsByTagName('*'); var result = []; //正则表达式 // '\' 表示转义 // \b 在正则里表示单词的边界位置 // 'i' 区分大小写 var re=new RegExp('\\b'+sClass+'\\b','i'); for (var i = aElem.length - 1; i >= 0; i--) { if (re.test(aElem[i].className)) { result.push(aElem[i]); } } return result; } } </script> <body> <div id="nav"> <div class="adorn1"></div> <div class="adorn2"></div> <ul> <li> <a class="normal" href="#"><span>首页</span></a> <span class="float_layer w1 pos1"> <span class="arrows"></span> <span class="decorate1"></span> <span class="decorate2"></span> <a href="#"><span>最近更新</span></a> <a href="#"><span>活动</span></a> <a href="#"><span>报名试听</span></a> <a href="#"><span>学员反馈</span></a> </span> </li> <li class="line"> <a class="normal" href="#"><span>关于我们</span></a> <span class="float_layer w2 pos2"> <span class="arrows"></span> <span class="decorate1"></span> <span class="decorate2"></span> <a href="#"><span>妙味讲师</span></a> <a href="#"><span>培训方式</span></a> <a href="#"><span>培训理念</span></a> <a href="#"><span>联系我们</span></a> </span> </li> <li class="line"> <a class="normal" href="#"><span>作品</span></a> <span class="float_layer w3 pos3"> <span class="arrows"></span> <span class="decorate1"></span> <span class="decorate2"></span> <a href="#"><span>般固</span></a> <a href="#"><span>MATRIX</span></a> <a href="#"><span>留学e网</span></a> <a href="#"><span>ECMall</span></a> </span> </li> <li class="line"> <a class="normal" href="#"><span>博客</span></a> <span class="float_layer w4 pos4"> <span class="arrows"></span> <span class="decorate1"></span> <span class="decorate2"></span> <a href="#"><span>JS教程</span></a> <a href="#"><span>弹出层效果</span></a> <a href="#"><span>3D球面标签云</span></a> <a href="#"><span>Window计算器</span></a> </span> </li> </ul> <p><a href="#">>>更多</a></p> </div> </body> </html>
效果连接:延迟菜单、
代码:链接
hibernate对连接池的支持和HQL查询的更多相关文章
- hibernate对连接池的支持
连接池, 作用: 管理连接:提升连接的利用效率! 常用的连接池: C3P0连接池 Hibernate 自带的也有一个连接池,且对C3P0连接池也有支持! Hbm 自带连接池: ...
- Java Hibernate 之连接池详解
Hibernate支持第三方的连接池,官方推荐的连接池是C3P0,Proxool,以及DBCP.在配置连接池时需要注意的有三点: 一.Apche的DBCP在Hibernate2中受支持,但在Hiber ...
- java框架篇---hibernate之连接池
Hibernate支持第三方的连接池,官方推荐的连接池是C3P0,Proxool,以及DBCP.在配置连接池时需要注意的有三点: 一.Apche的DBCP在Hibernate2中受支持,但在Hiber ...
- HQL查询及Hibernate对c3p0连接池的支持
//HQL查询 // auto-import要设置true,如果是false,写HQL时要指定类的全名 //查询全部列 Query query = session.createQuery(" ...
- Hibernate查询、连接池、二级缓存
Hibernate第三天: 1. 对象状态 2. session缓存 3. lazy懒加载 4. 映射 一对一对映射 组件/继承映射 目标: 一.hibernate查询 二.hibernate对连接池 ...
- Hibernate的查询,二级缓存,连接池
Hibernate的查询,二级缓存,连接池 1.Hibernate查询数据 Hibernate中的查询方法有5中: 1.1.Get/Load主键查询 使用get或者load方法来查询,两者之间的区别在 ...
- hibernate+mysql的连接池配置
1:连接池的必知概念 首先,我们还是老套的讲讲连接池的基本概念,概念理解清楚了,我们也知道后面是怎么回事了. 以前我们程序连接数据库的时候,每一次连接数据库都要一个连接,用完后再释放.如果频繁的 ...
- Hibernate整合C3P0实现连接池
Hibernate整合C3P0实现连接池 hibernate中可以使用默认的连接池,无论功能与性能都不如C3PO(网友反映,我没有测试过),C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI ...
- [JavaEE] Hibernate连接池配置测试
转载自51CTO http://developer.51cto.com/art/200906/129914.htm Hibernate支持第三方的连接池,官方推荐的连接池是C3P0,Proxool,以 ...
随机推荐
- NSString 初始化方法的内存比较
NSString *str1 = @"hello"; NSString *str2 = @"hello"; NSString *str3 = [NSString ...
- hdu 5291 dp+优化 ****
多校实在高能 题解链接 题意:有n中糖果,每种糖果有ai个.分给A,B两个人.两人的糖果要一样多,可以都是0,1......m个.同一种糖果没有区别. 问有几种分法. 定义dp[i]表示两人之间相差i ...
- hdu1963 完全背包(数据压缩)
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1963 注意:题中有一句话说债券的价钱都是1000的倍数,我之前没看到这句话,写的完全背包, ...
- [Papers]NSE, $\p_3u$, Lebesgue space [Cao, DCDSA, 2010]
$$\bex \p_3\bbu\in L^p(0,T;L^q(\bbR^3)),\quad \frac{2}{p}+\frac{3}{q}=2,\quad \frac{27}{16}\leq q\le ...
- linux lvm的操作手册_pvcreate_vgcreate_lvcreate_相关
一. 前言 每个Linux使用者在安装Linux时都会遇到这样的困境:在为系统分区时,如何精确评估和分配各个硬盘分区的容量,因为系统管理员不但要考虑到当前某 个分区需要的容量,还要预见该分区以后可能需 ...
- 从LINQ开始之LINQ to Objects(下)
前言 上一篇<从LINQ开始之LINQ to Objects(上)>主要介绍了LINQ的体系结构.基本语法以及LINQ to Objects中标准查询操作符的使用方法. 本篇则主要讨论LI ...
- 支持向量机(SVM)举例
例(1) 无核(No kernel or linear kernel) 代码和数据集来自于https://github.com/fengdu78/Coursera-ML-AndrewNg-Notes ...
- R安装时出现辑程包不存在,解决方法
R > -------------------------------------------------[解决方案]1.使用命令单独安装caret,安装的时间很长.install.packag ...
- HDU 3360 National Treasures(最小点覆盖)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3360 题目大意: 在一个n*m的格子中,每个格子有一个数值,-1表示空,其余表示财宝.每个财宝的数值转 ...
- 安全测试之bWAPP环境搭建
本篇文章介绍独立安装部署bwapp. 安装环境:window7+IIS7+mysql5.6+php5.6 bWAPP下载地址:https://sourceforge.net/projects/bwap ...