« tomcat的admin页面 用户名 密码忘记了怎么办« »把.class用jar工具打包成可执行程序 »
如何配置tomcat的MYSQL数据库连接池

我刚用JAVA不久,昨天花了一天时间来配置tomcat与mysql数据库连接,到网上找了很多资料,看似有用,结果发现,我和tomcat上就是和网上说的有差别,怎么弄都弄不好.后来乱搞乱搞,竟然搞出来了.爽就一个字啊.转载请注明(巴士飞扬技术博客www.busfly.cn)

如何配置tomcat的MYSQL连接
   1)启动Tomcat服务器,打开浏览器,输入http://localhost:8080/admin/(其中localhost是名称服务器或称为主机),
   进入管理界面的登陆页面,这时候请输入原来安装时要求输入的用户名和密码,登陆到管理界面。(密码和用户名在你安装的时候设定的,如果忘记(或没有)的话,去改tomcat\conf\tomcat-users.xml,添加admin和 manager两个role,一个用户,该用户的role为admin和manager就可以了,按原有的xml复制修改就可以。)
   
   2)选择Resources-Data sources进入配置数据源界面,选择
    Data Source Actions ->选择Create New Data Source,进入配置详细信息界面
   主要内容例如下:
   JNDI Name:   ->jdbc/mysql
   Data Source URL  ->jdbc:mysql://localhost:3306/db
   JDBC Driver Class-> com.mysql.jdbc.Driver  (com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource )
   
   3)修改\conf\context.xml,全部内容如下:
   <Context>
   <Resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource"
    driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://172.16.0.25/db"
    username="root" password="root"
    maxActive="100" maxIdle="30"
    maxWait="10000" />   
   </Context>
   4)修改web.xml
   
   打开%TOMCAT_HOME%\conf\web.xml(我修改的是项目的\WEB-INF\web.xml,结果成功),在的前面添加以下内容:
       <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>
       注意res-ref-name填写的内容要与在上文提到的JNDI Name名称一致。

    到这里,配置工作就基本完成了!
   
   5)引用JNDI时用"java:comp/env/jdbc/mysql";
   有的时候直接应用JNDI名就可以,比如WEBLOGIC8。而TOMCAT就是这么做。
   
   6)JDBC驱动程序mysql-connector-java-5.0.0-beta-bin.jar(或者其它版本)
   一定要放置到%TOMCAT_HOME%\common\lib下。
   重启你的Tomcat服务。
   ((看到网上有人还要求这样:
     从http://dev.mysql.com/downloads/下载mysql-connector-java-3.0.15-ga.zip,将其中的mysql-connector-java-3.0.15-ga-bin.jar放到jre/lib/ext和Tomcat 5.5/common/lib里面。
     从http://jakarta.apache.org/commons/dbcp/下载commons-dbcp-1.2.1.zip,将其中的commons-dbcp-1.2.1.jar放到jre/lib/ext和Tomcat 5.5/common/lib里面。))

   7)测试代码:
     InitialContext ctx = new InitialContext();
     javax.sql.DataSource connectionPool = (javax.sql.DataSource) ctx.lookup("java:comp/env/jdbc/mysql");
     Connection conn = connectionPool.getConnection();
     out.print("DB connection pool run OK!");
     conn.close();
     
  
  另一种没试过的方法:(除了server.xml,其它都是项目里的)
     用了最新的几个咚咚,搞了整整一天终于搞清楚了Tomcat 5.5 配置 MySQL 数据库连接池,网上的经验并不能完全用到新环境里面,我写出整个过程以方便大家配置。
     1 环境描述
       JDK 1.5
       Tomcat 5.5.4
       MySQL 4.0.20
       MySQL JDBC 3.0.15
       Commons dbcp 1.2.1
     
     2 准备工作
       JDK, Tomcat, MySQL安装过程并非我的重点,略过。
       从http://dev.mysql.com/downloads/下载mysql-connector-java-3.0.15-ga.zip,将其中的mysql-connector-java-3.0.15-ga-bin.jar放到jre/lib/ext和Tomcat 5.5/common/lib里面。
       从http://jakarta.apache.org/commons/dbcp/下载commons-dbcp-1.2.1.zip,将其中的commons-dbcp-1.2.1.jar放到jre/lib/ext和Tomcat 5.5/common/lib里面。
     
     3 配置Tomcat
       在Tomcat 5.5/conf/server.xml的<GlobalNamingResources>中添加:
     <Resource name="JDBC for MySQL" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" password="" maxIdle="2" maxWait="5000" username="root" url="jdbc:mysql://localhost/test" maxActive="4"/>。
       
       在Tomcat 5.5/webapps/test/WEB-INF/web.xml的<web-app>中添加:
     <resource-ref>
     <description>MySQL Connection Pool</description>
     <res-ref-name>JDBC for MySQL</res-ref-name>
     <res-type>javax.sql.DataSource</res-type>
     <res-auth>Container</res-auth>
     </resource-ref>
       
       在Tomcat 5.5/webapps/test/META-INF/context.xml的<Context>中添加:
     <ResourceLink name="JDBC for MySQL" global="JDBC for MySQL" type="javax.sql.DataSourcer"/>
     
     4 测试
       重启Tomcat服务器,写一个test.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>Test of MySQL connection pool</title>
     </head>
     <body>
     <%
     out.print("Start<br/>");
     try{
     Context initCtx = new InitialContext();
     Context ctx = (Context) initCtx.lookup("java:comp/env");
     Object obj = (Object) ctx.lookup("JDBC for MySQL");
     javax.sql.DataSource ds = (javax.sql.DataSource)obj;
     Connection conn = ds.getConnection();
     out.print("MySQL connection pool runs perfectly!");
     conn.close();
     }
     catch(Exception ex){
     out.print(ex.getMessage());
     ex.printStackTrace();
     }
     %>
     </body>
     </html>
       在浏览器中浏览该jsp文件,成功了哦。记得千万要用完close哦,不然一会就耗尽了。这一点可以通过以root身份登录MySQL,运行show processlist;命令来查看当前所有连接。
  

 


Tags: tomcat服务器   |

原创文章如转载,请注明:转载自:巴士飞扬-技术BLOG : http://www.busfly.net/

本文链接地址:http://www.busfly.net/post/39.html

如果你喜欢本文,请顶一下,支持我,你的支持是我继续发好文章的最大动力。谢谢。
好东西需要分享,快把本文发给你的朋友吧~!~

     
相关文章:
  • 引用此留言  1.wjpiao  
  • 很好的文章,对我的帮助很大,设置的东西有些时候很麻烦,,像我还不懂其中的原理:(。。就更难了,,,谢谢
  • [删除]2009-11-22 23:35:39 回复该留言




◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
网站分类
分类最近文章
最近发表
最新评论及回复
最近留言
热文排行
随机推荐文章
Powered By Z-Blog   STYLE by busfly . FatMouse
Copyright © 2007 巴士飞扬技术博客. . 沪ICP备07027972号. 会员群1(J2EE为主):3769186.