Java JDBC结果集没有结果?
为什么这个查询没有任何结果?只有电影!在我运行这个servlet时打印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
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");