知识大全 tomcat连接池的配置与使用数据库mysql

Posted 数据库

篇首语:缺乏知识就无法思考,缺乏思考也就得不到知识。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 tomcat连接池的配置与使用数据库mysql相关的知识,希望对你有一定的参考价值。

 

    关于tomcat连接池的配置 我在自己开始的时候碰到过许多的问题 至少失败过六次 今天终于成功了 对于这个问题的产生与由来我也给大伙说说

    在《程序员csdn开发高手》这本杂志的 年第 期 一位名叫宋廷宇的老师写了一篇文章 名赤《tomcat连接池的图形化配置与使用》 我看到了这篇文章 该作者所使用的数据库是sql server 而我所使用的数据库是mysql tomcat版本为   文中有这么一段话 在tomcat 及后续版本中提供了图形界面的web应用发布工具 但是使用这个工具发布采用数据库连接池的web应用时 自动生成的配置不能找到数据源 这是一个bug 相信在后续的版本中所有关于数据库连接池的配置和发布都不需要在手工修改配置文件 而使用简单方便的全图形化工具 当时我个人认为 我所使用的tomcat 版的 bug应该修正了吧 况且数据库配置嘛 换汤不换药 原理应该是一样的 但是我严格按照这篇文章上来配置 结果事与愿为 配置成功运行后出错了 附错误如下

    apache mons dbcp SQLNestedException: Cannot create JDBC driver of class for connect URL null cause: No suitable driver

    相信学过jsp连接数据库的人都有常识 那就是将驱动加入CLASSPATH 排除错误 驱动没问题 迷惑中于是乎 检查 重来再检查 再重来 错误不变

    既然图形下配置错误 那么我手动配置 上网搜索 最权威的当然就是tomcat的doc 刚好文档中有一篇讲如何配置mysql数据库连接池的(全英文的 幸好我英语过得去) 一步一步严格按照它的格式来配置 当我看到同样的错误时 犹如晴天劈雳 一个字 晕!!!差点放弃 (如果放弃了 就不会有我今天这篇文章了 好险呀!!!)

    因此我认为tomcat有问题 这个错误很多人都见过 在csdn及本论坛上 有许多人问到这样的问题 为这问题 我还在国外的论坛上搜索了 也有人问到这样的问题 他们说这是tomcat的一个bug 于是我就默认了 后来想想不对 如果是bug的话 jarkata项目组织肯定会贴出来并且修正这个bug的

    我就下载了最新版本的tomcat( )再次试验 首先是按照书上的文章进行图形化配置 结果依然 心里想 bug肯定修正 且我与作者的步骤一样 问题休在???沉着冷静下来 再次看看tomcat的文档 又回想起宋廷宇老师的文章中那段话 莫非真的是图形配置中的bug

    //jakarta apache /tomcat/tomcat doc/jndi datasource examples howto

    好 就来手工配置吧 于是又打开tomcat的doc开始了手工配置 配置之前建议大家对server xml文件做一个备份 原因就不讲了

    打开server xml文件 在哪??晕!!打开tomcat$\\conf文件夹(tomcat$指的是tomcat的安装目录 下皆同) 至于数据库的建立我就不说了 自己按照文章去做吧 说明一下 尽管我不说 我还是按照文章上来做的 你们照葫芦画瓢即可

首先将那段<Context path= /DBTest docBase= DBTest        debug= reloadable= true crossContext= true ><!—注意到这里的DBTest了吧 这就是要求大家建立DBTest目录的原因 >

 <Logger className= apache catalina logger FileLogger             prefix= localhost_DBTest_log suffix= txt             timestamp= true />

 <Resource name= jdbc/TestDB               auth= Container               type= javax sql DataSource /> <ResourceParams name= jdbc/TestDB >   <parameter>     <name>factory</name>     <value> apache mons dbcp BasicDataSourceFactory</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 for no limit         >   <parameter>     <name>maxActive</name>     <value> </value>   </parameter>

   <! Maximum number of idle dB connections to retain in pool         Set to for no limit         >   <parameter>     <name>maxIdle</name>     <value> </value>   </parameter>

   <! Maximum time to wait for a dB connection to bee available        in ms in this example seconds An Exception is thrown if        this timeout is exceeded   Set to to wait indefinitely         >   <parameter>     <name>maxWait</name>     <value> </value>   </parameter>

   <! MySQL dB username and password for dB connections  >   <parameter>    <name>username</name>    <value>javauser</value><!—数据库用户名 >

   </parameter>   <parameter>    <name>password</name>    <value>javadude</value><!—数据库密码 >   </parameter>   <! Class name for the old mm mysql JDBC driver unment this entry and ment next        if you want to use this driver we remend using Connector/J though   <parameter>      <name>driverClassName</name>      <value> gjt mm mysql Driver</value></parameter>这里面是被注释的 因为以前连接mysql是这样连接的 现在建议用下面的方法 自己可以看到     >      <! Class name for the official MySQL Connector/J driver >   <parameter>      <name>driverClassName</name>      <value> mysql jdbc 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 hours         >   <parameter>     <name>url</name>     <value>jdbc:mysql://localhost: /javatest?autoReconnect=true</value><! 这是数据库的地址 也可以不要这么繁琐 改为jdbc:mysql://localhost/javatest即可 javatest为数据库名 >   </parameter> </ResourceParams></Context>

    贴在这了 别嫌长啊 我加了注释 至于我们贴到什么位置 在</Host>前面 找到相对应的位置 由于我的server xml文件未备份 所以我无法再次将所贴位置告诉大家了 不好意思 有事给我发过来 我一定还记得的 到时再手把手教你们

    在tomcat$\\webapps文件夹下建立一个名为DBTest的文件夹 注意大小写 在此文件夹下建立WEB INF文件夹 及一个文件:test jsp 再在WEB INF文件夹下建立两个文件夹 lib及classes 将数据库驱动文件拷贝到lib文件夹下 同样还在WEB INF文件夹下建一个文件web xml 看到doc上有现成的 要不要拷贝呀 这就有个问题 doc有个问题 有空给它们写封信吧 这也是我经过实现才发现的

<?xml version= encoding= ISO ?><web app xmlns= //java sun /xml/ns/j ee    xmlns:xsi= // w / /XMLSchema instance    xsi:schemaLocation= //java sun /xml/ns/j ee//java sun /xml/ns/j ee/web app_ _ xsd   version= > <description>MySQL Test App</description> <resource ref>     <description>DB Connection</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>

    用我的 没错的

Test jsp<%@ page contentType= text/; charset=GBK %><%@ page import= java sql * javax sql DataSource javax naming * %><><head><title>test jsp</title></head><body bgcolor= #ffffff ><h >test Tomcat</h ><% tryContext initCtx=new InitialContext();DataSource ds = (DataSource)initCtx lookup( java:p/env/jdbc/TestDB );Connection conn=ds getConnection();out println( data from database:<br> );Statement stmt=conn createStatement();ResultSet rs =stmt executeQuery( select id foo bar from testdata );while(rs next())out println(rs getInt( id ));out println(rs getString( foo ));out println(rs getString( bar ));rs close();stmt close();catch(Exception e)e printStackTrace();%></body></>

    doc上的test jsp是使用了tag 我认为没必要 大家反而看不懂 并且它没有关闭connection及statement 个人认为存在不安全因素 因此我自己也改过来了

    接下来的事情嘛 自己测试 测试前要将mysql打开 常识性的错误别犯了

    启动tomcat至//localhost: /DBTest/test jsp 在我的界面上是

test Tomcatdata from database: hello

cha138/Article/program/MySQL/201311/29662

相关参考

知识大全 tomcat下连接池的配置

  一  把数据库JDBC驱动拷贝到  %TOMCAT_HOME%/mon/lib  或  %TOMCAT_HOME%/webapps/yourweb/WEBINF/lib下;  修改tomcat安装

知识大全 Tomcat5配置Mysql JDBC数据库连接池

Tomcat5配置MysqlJDBC数据库连接池  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 浅析Tomcat5配置Mysql JDBC数据库连接池

浅析Tomcat5配置MysqlJDBC数据库连接池  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 Java jsp tomcat6 mysql连接池配置

Javajsptomcat6mysql连接池配置  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 Tomcat5.5数据库连接池配置

Tomcat5.5数据库连接池配置  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!猫咪正不断把自己B

知识大全 在 tomcat 5 中配置数据库连接池(DBCP)

在tomcat5中配置数据库连接池(DBCP)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  首

知识大全 怎样做Tomcat4.1.31的数据库连接池配置

怎样做Tomcat4.1.31的数据库连接池配置  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 jboss配置 mysql数据库连接池

jboss配置 mysql数据库连接池实例 :配置:   JDK    JBoss  &n

知识大全 详细介绍在tomcat中配置数据源原理

  转摘请注明出处  作者:baggio  来源:  本文地址;  关键词DataSource(数据源)Tomcat连接池  前言  本文根据实例详细介绍了如何在tomcat中配置数据源网上此类文章很

知识大全 解决mysql5数据库连接超时问题

  最近碰到一个mysql数据库的问题就是一个标准的servlet/tomcat网络应用后台使用mysql数据库问题是待机一晚上后第二天早上第一次登录总是失败察看日志发现如下错误  mysqljdbc