数据库查询出错!java.sql.SQLException: 当前游标位置处的操作无效。 30
将代码放在DBUtil.java中时publicstaticvoidmain(String[]args){Messageme=null;try{Stringtitle="...
将代码放在DBUtil.java中时
public static void main(String[] args) {
Message me = null;
try {
String title="hello1";
String sql = "select uname,title from messages where title=?";
PreparedStatement state = DBUtil.createStatement(sql,title);
ResultSet rs = state.executeQuery();
rs.next();
me = new Message();
me.setUname(rs.getString("uname"));
me.setTitle(rs.getString("title"));
System.out.println(rs.getString("uname")
+ "===========================");
} catch (SQLException e) { e.printStackTrace();
}
}
能查询出来,放在MessageDAOImp.java 的findByName(String title){}方法中时<title传参hello1>,就报以上错误,查不出来了!求大神指点!+分!
这句报的错:me.setUname(rs.getString("uname"));
放在DBUtil.java中测试就没有错误!
public class DBUtil {
public static PreparedStatement createStatement(String sql, Object... param)
throws SQLException {
Connection conn = getConenction();
PreparedStatement stmt = conn.prepareStatement(sql);
for (int i = 0; i < param.length; i++) {
stmt.setObject(i + 1, param[i]);
}
return stmt;
}
}
只贴出DBUtil.java中的这一个方法,其他没必要,也帖不下,太多了 展开
public static void main(String[] args) {
Message me = null;
try {
String title="hello1";
String sql = "select uname,title from messages where title=?";
PreparedStatement state = DBUtil.createStatement(sql,title);
ResultSet rs = state.executeQuery();
rs.next();
me = new Message();
me.setUname(rs.getString("uname"));
me.setTitle(rs.getString("title"));
System.out.println(rs.getString("uname")
+ "===========================");
} catch (SQLException e) { e.printStackTrace();
}
}
能查询出来,放在MessageDAOImp.java 的findByName(String title){}方法中时<title传参hello1>,就报以上错误,查不出来了!求大神指点!+分!
这句报的错:me.setUname(rs.getString("uname"));
放在DBUtil.java中测试就没有错误!
public class DBUtil {
public static PreparedStatement createStatement(String sql, Object... param)
throws SQLException {
Connection conn = getConenction();
PreparedStatement stmt = conn.prepareStatement(sql);
for (int i = 0; i < param.length; i++) {
stmt.setObject(i + 1, param[i]);
}
return stmt;
}
}
只贴出DBUtil.java中的这一个方法,其他没必要,也帖不下,太多了 展开
展开全部
能确定是那一句报出来的吗?
rs.next(); ?
rs.next(); ?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
查询结果为空吧 一调用rs.next()就会报错 先数据库里直接查查看是啥结果
追问
数据库当中是有的,用list()可以直接列出来。在DBUtil.java中添加main方法测试也可以查出来
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你数据库里只有一条记录吧!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询