tomcat+mysql数据库的连接池配置
1)下载mm.mysql-2.0.14-bin.jar包,放在tomcat目录下的common/lib文件夹中
2)在tomcat目录下的conf/server.xml中的</Host>前加入(注意:全部大写的地方要替换成你自己的东西)
<!--for mysql database connection pool--><Context path="/APPLICATION_NAME" docBase="APPLICATIOIN_NAME" debug="5" reloadable="true" crossContext="true"> <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_DBTest_log." suffix=".txt" timestamp="true"/> <Resource name="jdbc/DATABASE_NAME" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/DATABASE_NAME"> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <!-- Class name for mm.mysql JDBC driver --> <parameter> <name>driverClassName</name> <value>org.gjt.mm.mysql.Driver</value> </parameter> <!-- The JDBC connection url for connecting to your MySQL dB. The autoReconnect=true argument to the url makes sure that the mm.mysql JDBC Driver will automatically reconnect if mysqld closed the connection. mysqld by default closes idle connections after 8 hours.--> <parameter> <name>url</name> <value>jdbc:mysql://localhost:3306/DATABASE_NAME?autoReconnect=true</value> </parameter> <!-- MySQL dB username and password for dB connections --> <parameter> <name>username</name> <value>DB_USERNAME</value> </parameter> <parameter> <name>password</name> <value>DB_PASSWORD</value> </parameter> <!-- Maximum number of dB connections in pool. Make sure you configure your mysqld max_connections large enough to handle all of your db connections. Set to 0 for no limit.--> <parameter> <name>maxActive</name> <value>100</value> </parameter> <!-- Maximum number of idle dB connections to retain in pool. Set to 0 for no limit. --> <parameter> <name>maxIdle</name> <value>30</value> </parameter> <!-- Maximum time to wait for a dB connection to become available in ms, in this example 10 seconds. An Exception is thrown if this timeout is exceeded. Set to -1 to wait indefinitely.--> <parameter> <name>maxWait</name> <value>10000</value> </parameter> </ResourceParams></Context>这样就算连接完了
3)测试:
DATABASE_NAME:testdb
APPLICATION_NAME:mysqlTest
在testdb数据库里新建表userinfo
id | username1 aaa2 bbb
4)web.xml
<web-app><resource-ref> <description>MySQL Datasource example</description> <res-ref-name>jdbc/testdb</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref></web-app>
5)index.jsp
<%@ page contentType="text/html;charset=gb2312" language="java" import="java.sql.*,javax.naming.*"%>
<% Context initCtx = new InitialContext(); Context ctx = (Context) initCtx.lookup("java:comp/env"); Object obj = (Object) ctx.lookup("jdbc/testdb"); javax.sql.DataSource ds = (javax.sql.DataSource)obj; Connection conn = ds.getConnection(); Statement stmt = conn.createStatement(); String strSql = "select * from userinfo"; ResultSet rs = stmt.executeQuery(strSql);%>
<body> <%while(rs.next()){%> <p> <%=rs.getString("username")%> </p> <%}%><body>
可以看到输出结果为:
aaabbb
1)下载mm.mysql-2.0.14-bin.jar包,放在tomcat目录下的common/lib文件夹中
2)在tomcat目录下的conf/server.xml中的</Host>前加入(注意:全部大写的地方要替换成你自己的东西)
<!--for mysql database connection pool--><Context path="/APPLICATION_NAME" docBase="APPLICATIOIN_NAME" debug="5" reloadable="true" crossContext="true"> <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_DBTest_log." suffix=".txt" timestamp="true"/> <Resource name="jdbc/DATABASE_NAME" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/DATABASE_NAME"> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <!-- Class name for mm.mysql JDBC driver --> <parameter> <name>driverClassName</name> <value>org.gjt.mm.mysql.Driver</value> </parameter> <!-- The JDBC connection url for connecting to your MySQL dB. The autoReconnect=true argument to the url makes sure that the mm.mysql JDBC Driver will automatically reconnect if mysqld closed the connection. mysqld by default closes idle connections after 8 hours.--> <parameter> <name>url</name> <value>jdbc:mysql://localhost:3306/DATABASE_NAME?autoReconnect=true</value> </parameter> <!-- MySQL dB username and password for dB connections --> <parameter> <name>username</name> <value>DB_USERNAME</value> </parameter> <parameter> <name>password</name> <value>DB_PASSWORD</value> </parameter> <!-- Maximum number of dB connections in pool. Make sure you configure your mysqld max_connections large enough to handle all of your db connections. Set to 0 for no limit.--> <parameter> <name>maxActive</name> <value>100</value> </parameter> <!-- Maximum number of idle dB connections to retain in pool. Set to 0 for no limit. --> <parameter> <name>maxIdle</name> <value>30</value> </parameter> <!-- Maximum time to wait for a dB connection to become available in ms, in this example 10 seconds. An Exception is thrown if this timeout is exceeded. Set to -1 to wait indefinitely.--> <parameter> <name>maxWait</name> <value>10000</value> </parameter> </ResourceParams></Context>这样就算连接完了
3)测试:
DATABASE_NAME:testdb
APPLICATION_NAME:mysqlTest
在testdb数据库里新建表userinfo
id | username1 aaa2 bbb
4)web.xml
<web-app><resource-ref> <description>MySQL Datasource example</description> <res-ref-name>jdbc/testdb</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref></web-app>
5)index.jsp
<%@ page contentType="text/html;charset=gb2312" language="java" import="java.sql.*,javax.naming.*"%>
<% Context initCtx = new InitialContext(); Context ctx = (Context) initCtx.lookup("java:comp/env"); Object obj = (Object) ctx.lookup("jdbc/testdb"); javax.sql.DataSource ds = (javax.sql.DataSource)obj; Connection conn = ds.getConnection(); Statement stmt = conn.createStatement(); String strSql = "select * from userinfo"; ResultSet rs = stmt.executeQuery(strSql);%>
<body> <%while(rs.next()){%> <p> <%=rs.getString("username")%> </p> <%}%><body>
可以看到输出结果为:
aaabbb