Tomcat数据源的配置是件很有意义的事情,因为它可给我程序提供更好的性能,所以决定写这篇随笔给java初学者一个参考。磨刀不误砍柴工,我们先来看一个档。
启动Tomcat6.x ——在IE中输入http://localhost:8080——点左边的Tomcat Documentation超链接——再点击JNDI Resources 和JDBC DataSources两个链接到此Tomcat数据源的配置答案应该以经找到了,文档中写的很清楚!下面我给出一个MySQL数据源配置的示例:
1、将MySQL的jdbc驱动包考贝到%CATALINA_HOME%/lib目录下;
2、打开%CATALINA_HOME%/conf/context.xml文件,并在context元素之间添加以下代码:
<
Resource
name
="jdbc/MySQL"
auth
="Container"
type
="javax.sql.DataSource"
maxActive ="100" maxIdle ="30" maxWait ="10000"
username ="root" password ="mysql" driverClassName ="com.mysql.jdbc.Driver"
url ="jdbc:mysql://localhost:3306/test?autoReconnect=true" />
maxActive ="100" maxIdle ="30" maxWait ="10000"
username ="root" password ="mysql" driverClassName ="com.mysql.jdbc.Driver"
url ="jdbc:mysql://localhost:3306/test?autoReconnect=true" />
3、打开MyEclipse新建一些个WEB工程,修改index.jsp页面如下:
1
<%
@ page language
=
"
java
"
import
=
"
java.util.*
"
pageEncoding
=
"
UTF-8
"
%>
2 <% @ page import = " java.sql.*,javax.sql.*,javax.naming.* " %>
3
4 <! DOCTYPE HTML PUBLIC " -//W3C//DTD HTML 4.01 Transitional//EN " >
5 < html >
6 < head >
7 < title > My JSP ' index.jsp ' starting page </ title >
8 </ head >
9
10 < body >
11 <%
12 Context initCtx = null ;
13 final String JNDINAME = " java:comp/env/jdbc/MySQL " ; // java:comp/env/是固定的,jdbc/MySQL则是我们配置的JNDI名称
14 Connection conn = null ;
15 try {
16 initCtx = new InitialContext();
17 DataSource ds = (DataSource) initCtx.lookup(JNDINAME);
18 conn = ds.getConnection();
19 out.println("数据连接为:" + conn);
20 } catch (NamingException e) {
21 e.printStackTrace();
22 } catch (SQLException e) {
23 e.printStackTrace();
24 } finally {
25 if (conn != null) {
26 try {
27 conn.close();
28 } catch (SQLException e) {
29 e.printStackTrace();
30 }
31 }
32 }
33 %>
34 < br >
35 </ body >
36 </ html >
37
4、访问
http://localhost:8080/
工程名/index.jsp页面,输出如下:
2 <% @ page import = " java.sql.*,javax.sql.*,javax.naming.* " %>
3
4 <! DOCTYPE HTML PUBLIC " -//W3C//DTD HTML 4.01 Transitional//EN " >
5 < html >
6 < head >
7 < title > My JSP ' index.jsp ' starting page </ title >
8 </ head >
9
10 < body >
11 <%
12 Context initCtx = null ;
13 final String JNDINAME = " java:comp/env/jdbc/MySQL " ; // java:comp/env/是固定的,jdbc/MySQL则是我们配置的JNDI名称
14 Connection conn = null ;
15 try {
16 initCtx = new InitialContext();
17 DataSource ds = (DataSource) initCtx.lookup(JNDINAME);
18 conn = ds.getConnection();
19 out.println("数据连接为:" + conn);
20 } catch (NamingException e) {
21 e.printStackTrace();
22 } catch (SQLException e) {
23 e.printStackTrace();
24 } finally {
25 if (conn != null) {
26 try {
27 conn.close();
28 } catch (SQLException e) {
29 e.printStackTrace();
30 }
31 }
32 }
33 %>
34 < br >
35 </ body >
36 </ html >
37
1
数据连接为:jdbc:mysql:
//
localhost:3306/test?autoReconnect=true, UserName=root@localhost, MySQL-AB JDBC Driver