我的动态 Web 项目遇到问题。这是我的第一个项目,我想做一些相当简单的事情。我想打印出数据库中的数据。我用的是MYSQL,并且已经建立了数据库。我想使用以下代码进行连接:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
// Set the MIME type for the response message
response.setContentType("text/html");
// Get a output writer to write the response message into the network socket
PrintWriter out = response.getWriter();
Connection conn = null;
Statement stmt = null;
try {
// Step 1: Create a database "Connection" object
// For MySQL
conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/webshop", "root", "admin"); // <<== Check
} catch (SQLException ex) {
ex.printStackTrace();
}
}
我得到了与其他帖子已经提到的相同的消息:
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/webshop
我从其他帖子中了解到,必须将连接器添加到类路径中。我通过使用 Eclipse(我正在使用的 IDE)的 properties 向导来完成此操作。这不起作用!我已将 mysql-connector-java-5.1.37 添加到类路径中。我也尝试将其直接添加到 WEB-INF/lib 文件夹中,可惜没有成功。我尝试的最后一件事是将其添加到 tomcat7 库,但也没有成功。
以上似乎都不起作用。我做错了什么?我在其他帖子中找不到工作建议。
感谢所有精彩的提示和帮助!我在这里找到的大多数选项我都已经尝试过。所以对我来说,我的设置似乎出了问题。这不是一个普遍问题。
我通过简单的重新开始就解决了这个问题。删除 eclipse、tomcat 服务器、一切...然后再次安装所有必要的东西。这次第一次尝试就成功了!我将连接器(仅)添加到 tomcat 服务器的 /lib 中。
我想问题可能是我在项目中的某个地方有多个连接器?不管怎样,重新开始解决了我的问题。我知道这不是一个很好的干净修复,但它有效。
再次感谢您的努力和时间!
您应该使用适当的库。请参阅说明如何安装 Connector-J。
您可以使用二进制文件或 源分布。二进制发行版提供了最简单的 安装方法;源代码分发允许您自定义 您的安装进一步。无论使用哪种解决方案,您都可以手动添加 连接器/J 位置到您的 Java
。CLASSPATH
如果您正在开发 servlet 或 JSP,并且您的应用程序服务器是 符合J2EE,可以把驱动程序的
文件位于mysql-connector-java-version-bin.jar
您的 web 应用程序的子目录,因为这是第三方的标准位置 J2EE Web 应用程序中的派对类库。WEB-INF/lib
正如之前的答案中已经建议的: - 考虑将驱动程序 JAR 添加到 WEB-INF/lib 文件夹 - 或者,如果您计划在多个应用程序中使用它,请将其部署在 tomcat 的 lib 文件夹下 - 您的应用程序的类加载器将可以使用父加载器使用它 - 如果使用 JDBC 3 或更早版本,您可以在 servlet 的 init() 方法中调用 loadClass("com.mysql.jdbc.Driver"),例如
也许更好的方法是注入绑定到 MySql 数据库的 DataSource 对象。例如检查@Resource注释