如何配置Tomcat以连接MySQL

2022-09-02 12:50:21

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

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

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

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


答案 1

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

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

但是,如果您使用DriverManager#getConnection()以基本方式执行此操作,那么实际上,如果您将其放入或.但是,您需要意识到 in 中的一个将适用于所有已部署的 Web 应用,并且 in 中的一个将仅覆盖特定 web 应用的 in。Tomcat/libYourApp/WEB-INF/libTomcat/libYourApp/WEB-INF/libTomcat/lib


2: 我是否需要确认上下文.xml服务器.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>

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

应该注意的是,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 的一部分。

另请参阅:


答案 2

您的问题的答案:

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

推荐