我的动态网络项目出了问题。这是我的第一个项目,我想做一些相当简单的事情。我想从我的数据库中打印出数据。我使用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)完成了这项工作。这没用!我已将 mysql-connector-java-5.1.37 添加到类路径中。我也尝试将它直接添加到WEB-INF / lib文件夹,唉没有成功。我尝试的最后一件事,也是失败的,是将它添加到tomcat7库。
上述所有内容似乎都无效。我究竟做错了什么?我在其他帖子中找不到工作建议。
答案 0 :(得分:0)
您应该使用适当的库。请参阅说明how to install Connector-J。
您可以使用二进制文件或者安装Connector / J软件包 来源分配。二进制分发提供了最简单的方法 安装方法;源代码分发允许您自定义 你的安装进一步。使用任一解决方案,您手动添加 连接器/ J位置到您的Java
CLASSPATH
。如果您正在开发servlet或JSP,那么您的应用程序服务器就是 符合J2EE,你可以把驱动程序
mysql-connector-java-version-bin.jar
中的WEB-INF/lib
个文件 您的webapp的子目录,因为这是第三个的标准位置 J2EE Web应用程序中的派对类库。
答案 1 :(得分:0)
正如之前的答案中所述: - 考虑将驱动程序JAR添加到WEB-INF / lib文件夹中 - 或者,如果您计划在多个应用程序中使用它,请将其部署在tomcat的lib文件夹下 - 使用父加载程序将其提供给您的应用程序的类加载器 - 如果使用JDBC 3或更早版本,您可以在servlet的init()方法中调用loadClass(&#34; com.mysql.jdbc.Driver&#34;),例如
也许更好的方法是注入绑定到MySql数据库的DataSource对象。检查@Resource注释,例如
答案 2 :(得分:0)
感谢所有精彩的提示和帮助!我在这里找到的大多数选项,我都试过了。所以对我来说,特别是我的设置似乎有些不对劲。这不是一般性问题。
我已经通过简单的重新开始解决了这个问题。删除eclipse,tomcat服务器,一切......然后再安装所有必要的东西。这次它首先尝试了!我将连接器(仅)添加到tomcat服务器的/ lib中。
我想问题可能是我在项目的某个地方有多个连接器?无论如何,重新开始解决我的问题。我知道这不是一个很好的干净修复,但它确实有效。
再次感谢您的努力和时间!
答案 3 :(得分:0)