java - 如何配置Tomcat连接MySQL

标签 java mysql tomcat servlets jdbc

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

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

  2. 我需要向 context.xmlserver.xml 添加配置吗?

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

最佳答案

1: Where to place mysql-connector-java-5.1.13-bin in Tomcat directory? Should I place it under Tomcat 6.0\webapps\myapp\WEB-INF\lib?

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

但是如果您使用 DriverManager#getConnection() 进行基本操作,那么实际上将其放在 Tomcat/libYourApp/WEB-INF/lib 中并不重要。不过,您需要意识到,Tomcat/lib 中的内容将适用于所有已部署的 Web 应用程序,而 YourApp/WEB-INF/lib 中的内容则适用于所有已部署的 Web 应用程序> 将仅针对特定的 Web 应用程序覆盖 Tomcat/lib 中的内容。

<小时/>

2: Do I need to confirgure context.xml or server.xml files?

这取决于管理连接的位置。使用 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 中,您希望通过基于网络的管理界面来执行此操作。

<小时/>

3: Should I write web.xml file and need to place under Tomcat 6.0\webapps\myapp\WEB-INF? If Yes, then what should be the contents of file?

您应该始终提供一个。它不仅要配置资源,还要定义 servlet、过滤器、监听器以及运行 Web 应用程序所需的此类内容。该文件是标准 Servlet API 的一部分。

另请参阅:

关于java - 如何配置Tomcat连接MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44277460/

相关文章:

java - 如何通过条件检查 SQLite 表中是否存在行

mysql - MySQL 中的事务

mysql - 选择最新的行以及恰好 2 行具有一个条件的行和 2 行具有不同条件的行

Php计算每一天的花费

eclipse - Apache Tomcat 问题

apache - 如何删除 Tomcat 中的特定 cookie?

java - java中的mouseevent没有被触发

java - 尝试将自定义对象转换为 json 时出现 Jersey 异常

java - Spring MVC 无法转换类型为 'java.lang.Integer' 的属性值

eclipse - 在 Tomcat 上使用 Eclipse 使用 Rabbit MQ 消息