实时搜索: java 连接池哪个好

java 连接池哪个好

739条评论 3914人喜欢 2621次阅读 962人点赞
动力java机构程序员培训怎么样? , 因为数据库反复的连接是很耗资源的,所以用连接池比较好
哪位高手能提供一个连接SQL server 2000 的连接池
最好是提供一个main方法从连接池里拿到连接读取数据库里面的数据

除了tomcat 连接池的办法 我写的查询时c/s架构的 所以tomcat无法使用 , dbcp. c3p0. proxool
查了下hibernate推荐c3p0. spring推荐dbcp
没有一个准确的..
谁能推荐一下什么情况下用什么好? 并且回答下假如面试时问到了,该怎么回答? ...

为什么HikariCP被号称为性能最好的Java数据库连接池,如何配置使用: 那么,这么好的P是怎么做到的呢?官网详细地说明了HikariCP所做的一些优化,总结如下: 字节码精简:优化代码,直到编译后的字节码最少,这样,CPU缓存可以加载更多的程序代码; 优化代理和拦截器:减少代码,例如HikariCP的Statement proxy只有100行代码,只有BoneCP的十分之一; 自定义数组类型(FastStatementList)代替ArrayList:避免每次get()调用都要进行range check,避免调用remove()时的从头到尾的扫描; 自定义集合类型(ConcurrentBag):提高并发读写的效率; 其他针对BoneCP缺陷的优化,比如对于耗时超过一个CPU时间片的方法调用的研究(但没说具体怎么优化)。 很多优化的对比都是针对BoneCP的……哈哈。

java数据库连接池最大连接数最小连接数怎么设置: 最大连接数:这个连接池最多能有几条连接,如果初始化的连接数没有了,用户可以创建,但是要给个判断不能超过最大连接数。
最小连接数:就是连接池初始化的连接(连接池初始化多少条连接)

// 设置最大连接数,(根据并发请求合理设置)。
config.setMaxTotal(100);
// 设置最大空闲连接数,(根据并发请求合理设置)
config.setMaxIdle(20);
// 多长空闲时间之后回收空闲连接
setMinEvictableIdleTimeMillis(60000);
// 设置最小空闲连接数或者说初始化连接数
config.setMinIdle(10);
// 设置最大等待时间
config.setMaxWaitMillis(500);
// 跟验证有关
config.setTestOnBorrow(true);
// 跟验证有关
config.setTestOnReturn(false);
// 启动空闲连接的测试
config.setTestWhileIdle(false);

java程序员培训学校哪家好?: 这个学校短期强化培训,培训四五个月时间,通过项目实战,获取真实项目经验。有兴趣可以到他们有个专业的java实验班可以去体验一下。

java数据库连接池最大连接数最小连接数怎么设置: 最大连接数:这个连接池最多能有几条连接,如果初始化的连接数没有了,用户可以创建,但是要给个判断不能超过最大连接数。
最小连接数:就是你连接池初始化的连接(连接池初始化多少条连接)

尚硅谷传智动力节点的Java,这三家学校哪家的更好一些?: 你基础好不好呢?如果没有基础就只能去动力节点了,其他没有基础班好像。如果你不清楚的话,还可以到动力的深圳校区具体的问问

java 因为数据库反复的连接是很耗资源的,所以用连接池比较好: tomcat连接池的方法

1:连接池所要解决的问题:
应用程序每一次与数据库的连接都会由于网络传输和执行数据库查询而严重降低了程序的执行效率,因此我们需要用到连接池将将我们经常要用到的数据保存在连接池中,这样就减少了网络传输和因查询而给程序执行效率带来的影响。

2:连接池的本质:用一个集合保存查询出来的数据。

3:连接池的实现原理:
我们要使用Connect pool,首先要做的是访问datasource(所有的要访问的数据都放在这里面)。datasource数据源是通过LDAP(light directory access protocal)软件进行管理的(其本质就是将数据源以树状结构进行存储,这样的话,方便查询(树状结构的查询效率是最快的),java通过JNDI(java naming directory interface)访问LDAP里面的数据。

4:在tomcat种配置连接池:
1)打开tomcat目录下的conf/context.cfg:在里面加入如下配置
Xml代码
<Resource driverClassName="oracle.jdbc.driver.OracleDriver"url="jdbc:oracle:thin:@localhost:1521:orcl" username="scott" password="tiger" maxActive="20" type="javax.sql.DataSource" author="Container" name="ds"></Resource>

<Resource driverClassName="oracle.jdbc.driver.OracleDriver"url="jdbc:oracle:thin:@localhost:1521:orcl" username="scott" password="tiger" maxActive="20" type="javax.sql.DataSource" author="Container" name="ds"></Resource>
其中:maxActive:代表的是要配置的最大连接数。
type:资源类型
2)通过应用程序执行上述连接:
Java代码
<%@page contentType="text/html" %>
<%@page import="java.sql.*"%>
<%@page import="javax.sql.*"%>
<%@page import="javax.naming.*"%>
<html>
<body>
<% Context ctx=new InitialContext();
DataSource ds=(DataSource)ctx.lookup("java:comp/env/ds");//必须要
Connection con=ds.getConnection();
out.println("<h1>connection succeeful</h1>");
con.close();
%>
</body>
</html>

<%@page contentType="text/html" %>
<%@page import="java.sql.*"%>
<%@page import="javax.sql.*"%>
<%@page import="javax.naming.*"%>
<html>
<body>
<% Context ctx=new InitialContext();
DataSource ds=(DataSource)ctx.lookup("java:comp/env/ds");//必须要
Connection con=ds.getConnection();
out.println("<h1>connection succeeful</h1>");
con.close();
%>
</body>
</html>
conn.close():连接池是被覆盖了的,本质上的含义,把连接池借过来的连接还回去。

从零开始学java web 开发书上的例子
以sql server 2005为例,讲解tomcat6.0上的配置。

下载sqljdbc.jar放在tomcat的lib目录,tomcat/conf/context.xml文件,<Context></Context>中加入配置代码。

<Resource name="jdbc/dbplling" author="Container" type="javax.sql.DataSource" driverClassName="com.microsoft.sqlserverdriver.jdbc.sqlserverdriverDriver"url="jdbc:sqlserver//127.0.0.1:1433;databasename=testdemo" username="sa" password="123" maxActive="100" maxIdle="30"; maxWait="5000"></Resource>

web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<resource-ref>
<description>SQL Server 2005 DataSource</description>
<res-ref-name>jdbc/dbpooling</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

</web-app>

showUsers.jsp
<%@ page language="java" import="java.sql.*,javax.sql.*,javax.naming.*"
pageEncoding="GB2312"%>

<html>
<head>
<title>全部注册用户信息</title>
</head>

<body>
<%
try {
DataSource ds = null;
InitialContext ctx = new InitialContext();//建立上下文对象
ds = (DataSource) ctx.lookup("java:comp/env/jdbc/dbpooling");//通过JNDI查找数据连接池
Connection conn = ds.getConnection();//获得数据库连接对象

PreparedStatement pstate = conn
.prepareStatement("select * from [User]");
ResultSet rs = pstate.executeQuery();
out.println("<table border=1>");
out.println("<tr><td>用户名</td><td>密码</td></tr>");
while (rs.next()) {
out.println("<tr><td>");
out.println(rs.getString(2));
out.println("</td><td>");
out.println(rs.getString(3));
out.println("</td></tr>");
}
out.println("</table>");
} catch (SQLException e) {
out.println(e);
}
%>
</body>
</html>

java的3种数据库连接池用哪个好?: 1 dbcp
dbcp可能是使用最多的开源连接池,原因大概是因为配置方便,而且很多开源和tomcat应用例子都是使用的这个连接池吧。
这个连接池可以设置最大和最小连接,连接等待时间等,基本功能都有。这个连接池的配置参见附件压缩包中的:dbcp.xml
使用评价:在具体项目应用中,发现此连接池的持续运行的稳定性还是可以,不过速度稍慢,在大并发量的压力下稳定性
有所下降,此外不提供连接池监控

2 c3p0
c3p0是另外一个开源的连接池,在业界也是比较有名的,这个连接池可以设置最大和最小连接,连接等待时间等,基本功能都有。
这个连接池的配置参见附件压缩包中的:c3p0.xml。
使用评价:在具体项目应用中,发现此连接池的持续运行的稳定性相当不错,在大并发量的压力下稳定性也有一定保证,
此外不提供连接池监控。

3 proxool
proxool这个连接池可能用到的人比较少,但也有一定知名度,这个连接池可以设置最大和最小连接,连接等待时间等,基本功能都有。
这个连接池的配置参见附件压缩包中的:proxool.xml。
使用评价:在具体项目应用中,发现此连接池的持续运行的稳定性有一定问题,有一个需要长时间跑批的任务场景任务,同样的代码

为什么HikariCP被号称为性能最好的Java数据库连接池,如何配置使用: 为何要使用HiKariCP?这要先从BoneCP说起:
什么?不是有C3P0/DBCP这些成熟的数据库连接池吗?一直用的好好的,为什么又搞出一个BoneCP来?因为,传说中BoneCP在快速这个特点上做到了极致,官方数据是C3P0等的25倍左右。不相信?其实我也不怎么信。可是,有图有真相啊(图片来自BoneCP官网:
关于可靠性方面,也是有实验和数据支持的。对于数据库连接中断的情况,通过测试getConnection(),各种CP的不相同处理方法如下:
(所有CP都配置了跟connectionTimeout类似的参数为5秒钟)
HikariCP:等待5秒钟后,如果连接还是没有恢复,则抛出一个SQLExceptions 异常;后续的getConnection()也是一样处理;
C3P0:完全没有反应,没有提示,也不会在“CheckoutTimeout”配置的时长超时后有任何通知给调用者;然后等待2分钟后终于醒来了,返回一个error;
Tomcat:返回一个connection,然后……调用者如果利用这个无效的connection执行SQL语句……结果可想而知;大约55秒之后终于醒来了,这时候的getConnection()终于可以返回一个error,但没有等待参数配置的5秒钟,而是立即返回error;
BoneCP:跟Tomcat的处理方法一样;也是大约55秒之后才醒来,有了正常的反应,并且终于会等待5秒钟之后返回error了;

  • iphone6更新要多久

    配置一台目前最好的电脑主机要多少钱: 没有最好,只有更好。 ...

    839条评论 6168人喜欢 4162次阅读 263人点赞
  • 120寸是多少米

    巴黎如果不快乐,你明年会爱我吗?什么意思算不算表白: 如果巴黎不快乐那几年从上海重庆到北京,随后是巴黎。天涯海角,过树穿花,都不及你给的快乐。如果巴黎不快乐。那么,回到我身边,好吗?巴黎若不动人 世间再无浪漫时间改变的不仅是脚的大小,还有人的心。每个人都有一个国,自己做...

    821条评论 1025人喜欢 1304次阅读 590人点赞
  • p10闪存如何测

    现在一台配置比较高的电脑要多少钱: 处理器+主板:I7 8700+B360M 铂机炮主板 2898内存:金士顿dr4 3200 8G套条 669显卡:索泰GTX1060 6G 1499固态:三星500GB 860EVO(SATA3.0) 539机箱:先...

    604条评论 3730人喜欢 2312次阅读 661人点赞
  • ups不间断电源能供电多久

    dds生物电理疗能不能治好过敏性鼻炎: “鼻炎并不会直接引起高血压,诱发高血压的一般是引起呼吸不畅的慢性肥厚性鼻炎,因为这种鼻炎患者的下鼻甲黏丨膜严重肥厚,堵塞上呼吸道,常引起鼾症发作,病程一长,便有极大可能并发高血压。另外,鼻子里面长东西了,结构不正常,...

    849条评论 5434人喜欢 1164次阅读 962人点赞
  • dnf宠物怎么进化

    做完生物电理疗后能碰水吗?: 2个小时内不要碰水,4个小时内不要洗澡,多喝水。 ...

    401条评论 1570人喜欢 2431次阅读 480人点赞
  • mdb文件怎么打开

    河北华林集团DDS生物理疗到底是不是传销?: 截止2018年11月5日,dds生物电理疗尚未被认定为传销,dds生物电理疗为河北华林酸碱平生物技术有限公司旗下产品。但河北华林酸碱平生物技术有限公司总公司因非法直销多次被罚,其分公司涉嫌犯罪,老总被刑拘。据河北省食...

    386条评论 2366人喜欢 6385次阅读 571人点赞