项目——想改变TOMCAT数据库连接池的参数,主要参考文章:
http://www.blogjava.net/gm_jing/articles/308828.html
http://www.cnblogs.com/dennisit/archive/2013/04/04/2999657.html。
对此我的做法是:
一、在%Tomcat_Home%\webapps\yourApp\META-INF 下创建并编写context.xml
<Context reloadable="true">
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Resource name="jdbc/mysqlds" auth="Container" type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="root"
password="123456"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3307/weihedatabase"/>
</Context>
其中相关参数:
配置mysql数据库的连接池,
需要做的额外步骤是将mysql的Java驱动类放到tomcat的lib目录下
maxIdle 连接池中最多可空闲maxIdle个连接
minIdle 连接池中最少空闲maxIdle个连接
initialSize 初始化连接数目
maxWait 连接池中连接用完时,新的请求等待时间,毫秒
username 数据库用户名
password 数据库密码
二、将DRIVER的驱动赋值到%Tomcat_Home%\lib 下,具体文件mysqldriver.jar。
三、编写测试用例test.jsp
<%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
<%@ page import="java.sql.*" %>
<%@ page import="javax.naming.*" %>
<%@ page import="javax.sql.DataSource" %>
<html>
<head>
<title>Tomcat6.0 JNDI!</title>
</head>
<body>
Tomcat连接池测试,获取数据源 <br>
<%
try {
//初始化查找命名空间
Context ctx = new InitialContext();
//参数java:/comp/env为固定路径
Context envContext = (Context)ctx.lookup("java:/comp/env");
//参数jdbc/mysqlds为数据源和JNDI绑定的名字
DataSource ds = (DataSource)envContext.lookup("jdbc/mysqlds");
Connection conn = ds.getConnection();
conn.close();
out.println("<span style='color:red;'>JNDI测试成功<span>");
} catch (NamingException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
%>
</body>
</html>
实验截图
四、FURTHER MORE:上诉测试并没真正与数据库结合。下面的链接讲诉与数据库结合的测试:
http://shuyangyang.blog.51cto.com/1685768/1151537。
以及在调用形式上的改变:
——NOW
Context context = new InitialContext();
DataSource ds = (DataSource)context.lookup("java:/comp/env/jdbc/mysqlds");
Connection conn = ds.getConnection();
——BEFORE 则可以将建立connection的方式以上述形式取代传统方式:
String driver = "xx";
String url = "xx";
String username = "xx";
String password = "xx";
Class.forName(driver);
Connection conn = DriverManager.getConnection(url, username, password);
后记: 连接数据库后果然出错了,google了一下,修改了hibernate.cfg.xml文件,删除了
<property name="connection.url">
jdbc:mysql://localhost:3307/weihedatabase
</property>
<property name="connection.username">root</property>
<property name="connection.password">123456</property>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
等信息。具体解决链接:http://www.coderanch.com/t/218686/ORM/databases/Exception-transaction。