Tomcat6.0的Mysql数据库连接池设置与举例(总结)
来源:互联网 发布:中班亲子美工活动教案 编辑:程序博客网 时间:2024/05/22 17:19
连接池绝对注意事项:
使用连接池时需要牢记的最重要事项是,无论在代码中出现了什么(异常、控制流等),连接以及由连接创建的任何部分(语句、结果集等)均应被关闭,以 便能再次使用它们。如不然,它们将纠缠在一起,在最好的情况下,意味着它们所代表的MySQL服务器资源(缓冲区、锁定、套接字等)可能会捆绑一段时间, 在最坏的情况下,可能会导致永久捆绑。
连接池的最佳大小是什么?
与所有其他配置经验规则一样, 回答是“它取决于具体情况”。尽管最佳大小取决与预期的负载和平均的数据库事务时间,最佳的连接池大小小于你的预期。例如,如果使用的是Sun公司的 Java Petstore Blueprint应用程序,对于包含15~20个连接的连接池,使用MySQL和Tomcat,在可接受的相应时间下,可服务于中等程度的负载(600 个并发用户)。
要想确定用于应用程序的连接池大小,应使用诸如Apache Jmeter或The Grinder等工具创建负载测试脚本,并对应用程序进行负载测试。
确定出发点的一种简单方法是,将连接池的最大连接数配置为“无限”,运行负载测试,并测量最大的并发连接数。随后,应进行反向操作,确定出使应用程序具有最佳性能的连接池的最小和最大值。
1.将数据库驱动程序的JAR文件放在Tomcat的 /lib 中;
2. .配置tomcat下的conf下的context.xml文件,在<context></context>之间添加连接池如下:
<Resource name="jdbc/MySQL"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:MySQL://localhost/notes"
username="root"
password="13579147"
maxActive="100"
maxIdle="30"
maxWait="10000" />
属性说明:name,数据源名称,通常取”jdbc/XXX”的格式;
type,”javax.sql.DataSource”;
password,数据库用户密码;
driveClassName,数据库驱动;
maxIdle,最大空闲数,数据库连接的最大空闲时间。超过空闲时间,数据库连
接将被标记为不可用,然后被释放。设为0表示无限制。
MaxActive,连接池的最大数据库连接数。设为0表示无限制。
maxWait ,最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示
无限制。
3.在你的web应用程序的web.xml中设置数据源参考,如下:
在<web-app></web-app>节点中加入,
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/MySQL</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
子节点说明: description,描述信息;
res-ref-name,参考数据源名字;
res-type,资源类型,”javax.sql.DataSource”;
res-auth,”Container”;
res-sharing-scope,”Shareable”;
4.建立一个测试jsp,代码如下:
!doctype html public "-//w3c//dtd html 4.0 transitional//en"
"http://www.w3.org/TR/REC-html40/strict.dtd">
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%@ page session="false" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
<%
out.print("我的测试开始");
DataSource ds = null;
try{
InitialContext ctx=new InitialContext();
ds=(DataSource)ctx.lookup("java:comp/env/jdbc/MySQL");
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
提示:users必须是数据库已有的表,
这里的数据库前文提及的Data Source URL配置里包含的数据库。
String strSql = " select * from users";
ResultSet rs = stmt.executeQuery(strSql);
while(rs.next()){
out.print(rs.getString(1));
}
out.print("我的测试结束");
}
catch(Exception ex){
out.print(“出现例外信息是:”+ex.getMessage());
ex.printStackTrace();
}
%>
</head>
<body>
</body>
</html>
2. 在要用到数据库操作的类或jsp页面中,用DBPool.getPool().getConnection(),获得一个Connection对象,就可以进行数据库操作,最后别忘了对Connection对象调用close()方法,注意:这里不会关闭这个Connection,而是将这个 Connection放回数据库连接池。
- Tomcat6.0的Mysql数据库连接池设置与举例(总结)
- Tomcat6.0 连接池(与MySQL数据库连接)的配置
- tomcat6的MSSQL Server2000数据库连接池设置
- tomcat6.0 + JSP + mysql数据库连接池配置
- tomcat6.0 + JSP + mysql数据库连接池配置
- JSP+mySQL+TOMCAT6.0数据库连接池配置
- tomcat6.0 + JSP + mysql数据库连接池配置
- JSP+mySQL+TOMCAT6.0数据库连接池配置
- tomcat6.0 + JSP + mysql数据库连接池配置
- tomcat6.0配置mysql数据库连接池
- Tomcat6.x 与mysql 局部数据库连接池配置
- Tomcat6.0数据库连接池的应用
- Tomcat6.0数据库连接池的配置
- JDBC数据库连接类(MySQL与Oracle举例)
- tomcat6.0+mysql数据库连接池配置[测试成功](
- TomCat6.0数据库连接池配置实例(mysql数据库)
- TomCat6.0数据库连接池配置实例(mysql数据库)
- TomCat6.0数据库连接池配置实例(mysql数据库)
- 用jsonArray解析数据例子
- ThreadLocal浅谈
- AJAX 多次发送异步请求的 XmlHttpRequest 对象的设置
- Java反射机制
- 这里Invalidate()能够代替RedrawWindow()的工作
- Tomcat6.0的Mysql数据库连接池设置与举例(总结)
- 把DataReader转换成model
- oracle定时执行存储过程的job
- Android的一段常用动画效果代码(如何让点击的图片控件加速飞入到指定位置)
- VC中的无穷
- 使用库函数gets和putchar实现字符串反转
- session疑问
- linux内核hack-运行中动态添加系统调用
- 类对象数组初始化(三种方法)