如何配置Tomcat以连接MySQL

时间:2010-08-14 21:24:27

标签: java mysql tomcat servlets jdbc

有人可以提供一些有关如何配置Tomcat以访问MySQL的详细信息吗?

  1. 我在Tomcat的哪个目录中放置mysql-connector-java-5.1.13-bin?我应该将它放在Tomcat 6.0\webapps\myapp\WEB-INF\lib下吗?

  2. 我是否需要将配置添加到context.xmlserver.xml

  3. 我应该创建一个web.xml文件并将其放在Tomcat 6.0\webapps\myapp\WEB-INF下吗?如果是这样,那么该文件的内容应该是什么样的?

2 个答案:

答案 0 :(得分:30)

  

1:将mysql-connector-java-5.1.13-bin放在Tomcat目录中的哪个位置?我应该将它放在Tomcat 6.0\webapps\myapp\WEB-INF\lib下吗?

这取决于连接的管理位置。通常,您希望创建一个连接池化JNDI数据源以提高连接性能。在这种情况下,Tomcat正在管理连接并需要访问JDBC驱动程序。然后,您应该将JAR文件放在Tomcat/lib中。

但如果您使用DriverManager#getConnection()进行基本操作,那么实际上如果将其放在Tomcat/libYourApp/WEB-INF/lib中则无关紧要。但是,您需要意识到Tomcat/lib中的那个将申请所有部署的网络应用,并且YourApp/WEB-INF/lib中的那个将覆盖Tomcat/lib中的那个仅适用于特别是webapp。


  

2:我是否需要确认context.xmlserver.xml个文件?

这取决于连接的管理位置。使用JNDI数据源时,只需使用YourApp/META-INF/context.xml进行配置即可(如果不存在则只创建文件):

<?xml version="1.0" encoding="UTF-8"?>
<Context>
    <Resource
        name="jdbc/yourdb" type="javax.sql.DataSource"
        maxActive="100" maxIdle="30" maxWait="10000" 
        url="jdbc:mysql://localhost:3306/yourdb"
        driverClassName="com.mysql.jdbc.Driver"
        username="yourname" password="yourpass"
    />
</Context>

YourApp/WEB-INF/web.xml如下:

<resource-env-ref>
    <resource-env-ref-name>jdbc/yourdb</resource-env-ref-name>
    <resource-env-ref-type>javax.sql.DataSource</resource-env-ref-type>
</resource-env-ref>

如果您使用基本的DriverManager方式,那么一切都取决于您。硬编码,属性文件,XML文件等。你应该自己管理它。 Tomcat不会(也不能)为你做任何有用的事情。

注意到YourApp/META-INF/context.xml特定于Tomcat和克隆。每个servletcontainer / appserver都有自己的定义JNDI资源的方法。例如,在Glassfish中,您希望通过基于Web的管理界面来实现这一点。


  

3:我应该写web.xml个文件并需要放在Tomcat 6.0\webapps\myapp\WEB-INF下吗?如果是,那么文件的内容应该是什么?

你应该总是提供一个。它不仅要配置资源,还要定义servlet,过滤器,监听器以及运行webapp的强制性内容。该文件是标准Servlet API的一部分。

另见:

答案 1 :(得分:-1)

你的问题的答案:

  1. 您提到的一个选项是:将驱动程序放在WAR文件中的WEB-INF/lib目录下。另一个将在$TOMCAT_HOME/lib目录中。后者的优点是您不需要将连接器jar复制到您在该应用程序服务器上部署的每个项目中。缺点是,在将应用程序部署到其他应用程序服务器之前,您需要记住将jar文件放在适当的位置。
  2. 如果您需要更改默认配置中的内容,请执行。否则,有 context.xml server.xml 文件,其中包含tomcat安装附带的默认选项。
  3. 您的应用程序(WAR) web.xml 应位于部署文件的WEB-INF目录下。您可以在Java EE的servlet容器规范中查看该文件的已接受内容​​。通常,将servlet,过滤器及其对应的映射放在该文件中。