java从MySQL表中取出数据时报错:java.sql.SQLException: Before start of result set
2017-03-26 11:36
489 查看
环境:
java 1.8, MySQL 5.7问题:
for(String each:book.getLabel()){ ps = cn.prepareStatement("SELECT labelid FROM booklabel WHERE label=?"); ps.setString(1, each); rs = ps.executeQuery(); if(rs.next()){ // if label has been in booklabel DB, get its labelid labelIDSet.add(rs.getString(1)); }else{ // if not,store it into booklabel DB and then get its labelid //store ps = cn.prepareStatement("INSERT INTO booklabel(label) " + "VALUES(?)"); ps.setString(1, each); ps.executeUpdate(); //get labelid ps = cn.prepareStatement("SELECT labelid FROM booklabel WHERE label=?"); ps.setString(1, each); rs = ps.executeQuery(); // create labelIDSet String result = rs.getString(1); labelIDSet.add(result); } }
在
String result = rs.getString(1);这里报了个错:
java.sql.SQLException: Before start of result set
原因:
因为在取出ResultSet对象,对其进行操作时,没有采用.next()方法将ResultSet对象的光标移至指定行,不管Statement对象执行SQL语句是否十分确定能搜出记录解决:
for(String each:book.getLabel()){ ps = cn.prepareStatement("SELECT labelid FROM booklabel WHERE label=?"); ps.setString(1, each); rs = ps.executeQuery(); if(rs.next()){ // if label has been in booklabel DB, get its labelid labelIDSet.add(rs.getString(1)); }else{ // if not,store it into booklabel DB and then get its labelid //store ps = cn.prepareStatement("INSERT INTO booklabel(label) " + "VALUES(?)"); ps.setString(1, each); ps.executeUpdate(); //get labelid ps = cn.prepareStatement("SELECT labelid FROM booklabel WHERE label=?"); ps.setString(1, each); rs = ps.executeQuery(); // create labelIDSet if(rs.next()){ String result = rs.getString(1); labelIDSet.add(result); } } }
相关文章推荐
- Java与mysql数据库编程中遇见“Before start of result set at com.mysql.jdbc.SQLError.createSQLException” 的解决办法
- Java与mysql数据库编程中遇见“Before start of result set at com.mysql.jdbc.SQLError.createSQLException” 的解决办法
- Java与mysql数据库编程中遇见“Before start of result set at com.mysql.jdbc.SQLError.createSQLException” 的解决办法
- java.sql.SQLException: Before start of result set
- java.sql.SQLException: Before start of result set解决方法
- java.sql.SQLException: Before start of result set(转)
- java.sql.SQLException: Before start of result set
- java.sql.SQLException: Before start of result set
- java.sql.SQLException: Before start of result set解决方法
- java.sql.SQLException: Before start of result set
- java.sql.SQLException: Before start of result set
- java.sql.SQLException: Before start of result set
- java.sql.SQLException: Before start of result set异常及处理办法
- java.sql.SQLException: Before start of result set异常
- java.sql.SQLException: Before start of result set
- java.sql.SQLException: Before start of result set错误
- java.sql.SQLException: Before start of result set
- java.sql.SQLException: Before start of result set解决方法
- java.sql.SQLException: Before start of result set
- java.sql.SQLException: Before start of result set解决方法