【问题标题】:Connecting to database in JSP webapp with Apache Tomcat [duplicate]使用 Apache Tomcat 连接到 JSP webapp 中的数据库 [重复]
【发布时间】:2019-08-11 00:23:03
【问题描述】:

我正在开发一个使用 JavaServer Pages 和 MySQL 数据库的 webapp。

我将我的 webapp 移动到 Apache Tomcat 的 .../webapps/ROOT 文件夹中,以便在本地主机上运行该应用程序。但是,我不再需要使用在mysql-connector-java-8.0.17 中找到的数据库驱动程序 jar 文件的绝对路径来编译和运行终端。我找到了一个帖子说将mysql-connector-java-8.0.17.jar 文件放入WEB-INF/lib,但这并没有解决我的问题。

如何为我的 JSP 文件提供一个指向 MySQL 数据库驱动程序的类路径,以便我可以连接到它?如果有其他更好的方法,请告诉我!

我的连接代码是这样的:

String url = "jdbc:mysql://localhost:3306/***";
        ResultSet rs = null;
        try {
          Connection conn = DriverManager.getConnection(url, "***", "***");
...

我遇到了这个异常:

java.sql.SQLException: 找不到适合 jdbc:mysql://localhost:3306/*** 的驱动程序。

如果有更多信息要包含,请告诉我!

【问题讨论】:

  • 我已经回滚了你上次的编辑。请不要在标题中添加“SOLVED”之类的内容。正确的方法是接受答案。你不应该做除此之外的任何事情。如果您设法解决了自己的问题,请发布答案并在超时后接受。
  • 在 Web 应用程序中,您不应使用 DriverManager 进行连接。效率低下,而是使用提供连接池的javax.sql.DataSource

标签: java jsp tomcat jdbc


【解决方案1】:

由于WEB-INF/lib自动包含在classpath中,问题可能是你在连接之前忘记指定JDBC驱动的包路径:

Class.forName("com.mysql.jdbc.Driver");  

【讨论】:

  • 好的,我试过了,它似乎做了一些事情,但也产生了一个不同的异常:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
  • 我还发现:当您执行Class.forName("com.mysql.jdbc.Driver") 加载和注册此驱动程序类时,JVM 中的类加载器会在 CLASSPATH 中所有可用的 JAR 文件中搜索该类。如果包含此类的mysql-connector-java-5.1.25-bin.jar 在CLASSPATH 中不可用,则JVM 将抛出java.lang.ClassNotFoundException: com.mysql.jdbc.Driver at run-time.
  • 这一定意味着我的程序在类路径中找不到.jar
  • 我不得不重新启动 Apache Tomcat,它工作正常。谢谢!
猜你喜欢
  • 1970-01-01
  • 2017-12-04
  • 2011-03-30
  • 1970-01-01
  • 2014-07-11
  • 2014-07-20
  • 1970-01-01
  • 2017-02-24
  • 1970-01-01
相关资源
最近更新 更多