Java JDBC结果集没有结果?

Java JDBC结果集没有结果?,java,servlets,jdbc,Java,Servlets,Jdbc,为什么这个查询没有任何结果?只有电影!在我运行这个servlet时打印 import java.io.*; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.sql.*; publi

为什么这个查询没有任何结果?只有电影!在我运行这个servlet时打印

import java.io.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.*;

public class Service extends HttpServlet {
 private static final long serialVersionUID = 1L;

 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  response.setContentType("text/html");
  PrintWriter out = response.getWriter();
  out.println("Movies!");

  Connection connection = null;
  Statement statement = null;
  try {
   connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test");   
   statement = connection.createStatement();
   String query = "SELECT * FROM movies";
   ResultSet rs = statement.executeQuery(query);
   while(rs.next()) {
    out.println("result set");
    out.print(rs.getInt(1));
    out.print(rs.getString(2));
    out.print(rs.getInt(3));
    out.print(rs.getInt(4));
   }
  } catch(SQLException e) {
   e.printStackTrace();
  }
 }
}

最佳猜测:表中没有行。手动执行查询的结果是什么

mysql测试连接到mysql

从电影中选择*


您正在通过e.printStackTrace将异常写入服务器日志文件,而不是抛出它,这样它就会在webbrowser中出现一个很好的错误页面

按如下方式进行修复:

throw new ServletException("Querying from DB failed!", e);
否则,您必须在服务器日志中查找问题的确切原因

与实际问题无关,请记住在finally块中正确关闭资源。你在泄露它们。另见

更新:最后,您找到了问题的原因:

您需要安装JDBC驱动程序,将JAR文件放在/WEB-INF/lib文件夹中,并按如下方式将其加载到代码中,然后才能获得任何连接:

Class.forName("com.mysql.jdbc.Driver");
另见:
从下载MySQL JDBC驱动程序

将jar复制到WEB-INF/lib文件夹中 在编译之前,必须将clsses12.jar或其他Ojdc14 jar文件放入类路径中,然后进行编译。 这里有一些示例代码 ResultSet res=statement.executeQuerySELECT FIRST-NAME FROM FOO; StringBuffer sb=新的StringBuffer; 惠勒,下一个 { sb.append\n+rs.getString1;
}

您好,请从下载MYSQL JDBC驱动程序http://www.mysql.com/products/connector/ 在类似MYSQL的JDBC驱动程序下。将JDBCJAR文件放在应用程序中的位置-/WEB-INF/lib-

在代码中缺少以下语句

Class.forNamecom.mysql.jdbc.Driver

将它放在下面的代码行之前

connection=DriverManager.getConnectionjdbc:mysql://localhost:3306/test;

然后重新启动服务器。确保数据库服务正在运行

并检查

我希望你不会再犯错误了


~Priyanjan

与您的问题无关,但始终最终关闭连接、语句、结果集或使用DbUtils.+10作为Thilo的注释。我已使用手动查询对其进行了测试,结果应该是一行。java.sql.SQLException:未找到适合jdbc的驱动程序:mysql://localhost:3306/test Hmm1。在编译期间,您提到的jar文件不需要位于类路径上,而只需要在执行代码时。2.您提到的jar文件是Oracle驱动程序jar,而问题似乎是使用MySQL数据库。
Class.forName("com.mysql.jdbc.Driver");