异常:java.sql.SQLException: Before start of result set
原因:在ResultSet中,rs.next()是指游标移向下一行,如果使用像rs.getInt() rs.getString()等方法前没有加上rs.next()就会出现异常,获取不到结果集的值。
解决办法:在使用rs获取值前,要加rs.next()
if(rs.next()){
number= rs.getInt(1);
或者这样~
while(rs.next()){
int id =rs.getInt("id");
String name=rs.getString("name");
String price=rs.getString("price");
String image=rs.getString("image");
java.sql.SQLException: Before start of result set解决方案dao实现类测试方法得到的结果添加resultSet.next()
今天在写老师布置的利用servlet+JDBC+JSP做一个登录平台的时候遇到一个问题,就是按用户名查询数据库中的用户信息时一直包java.sql.SQLException: Before start of result set错,下面是的的部分代码
dao实现类
public class Userdao_Impl implements
解决问题的方法:对结果集ResultSet进行操作之前,一定要先用ResultSet.next()将指针移动至结果集的第一行
ResultSet.next()是指在游标每次向下移动一行,在关闭ResultSet之前都是继续有效的。当第一次遍历ResultSet.next()的时候,游标位置在表的最上方,即处于一个空的位置。但是如果没有ResultSet.next(),游标的位置则为空,所以ResultSet.getString("..
@org.junit.Test
public void findAll() throws SQLException {
Connection connection = Utils.getConnection();
String sql = "select * from student where student_id = ?";
PreparedStatement preparedStatement = connection.prepareState.
今天调试一段代码,里面有个逻辑,要批量取数据;当运行取到第二批数据的时候,程序报了如下错误:
org.springframework.jdbc.UncategorizedSQLException: StatementCallback; uncategorized SQLException for SQL [select * from (select t.*,rownum rnm
java的数据库编程中,查询操作所的回来的ResultSet结果集,必须要调用next()方法,否则会报空指针错误。
原因在于:ResultSet对象代表SQL语句执行的结果集,维护一个指向当前数据行的光标,没调用一次next()方法,光标就指向下一行。而刚开始光标处于第一行之前,而新手在练习数据库编程时,往往忽略掉这个问题,在数据库中只有一行数据时就简单的对ResultSet对象进行数据调用,
java.sql.SQLException: Before start of result set
对接结果集set,操作错误,加上代码:
while(rs.next()){
......
java.sql.SQLException: Before start of result set
具体的报错信息和使用的数据库驱动有关系,当我把数据库驱动更换为mysql-connector-java-5.1.6-bin.jar后(原先使用的驱动为mysql-connector-java-5.1.10.jar)