NutzCN Logo
问答 执行SQL 报错 该sql再数据库中可以正确执行
发布于 1641天前 作者 qq_25ac22fc 1252 次浏览 复制 上一个帖子 下一个帖子
标签:

public static void main(String[] args) {
final List list = new ArrayList<>();
Sql sql = Sqls.create("select getChildMember(900439) child");
sql.setCallback(new SqlCallback() {
public Object invoke(Connection conn, ResultSet rs, Sql sql) throws SQLException {
System.out.println("child:"+rs.getString("child"));
while(rs.next()){
list.add(rs.getString("child"));
}
return list;
}
});
DaoFactory.getDao().execute(sql);
System.out.println(sql.getString());
}
}

Exception in thread "main" org.nutz.dao.DaoException: !Nutz SQL Error: 'select getChildMember(900439) child'
PreparedStatement:
'select getChildMember(900439) child'
CaseMessage=Before start of result set
at org.nutz.dao.impl.sql.run.NutDaoExecutor.exec(NutDaoExecutor.java:104)
at org.nutz.dao.DaoInterceptorChain.doChain(DaoInterceptorChain.java:66)
at org.nutz.dao.impl.interceptor.DaoLogInterceptor.filter(DaoLogInterceptor.java:22)
at org.nutz.dao.DaoInterceptorChain.doChain(DaoInterceptorChain.java:64)
at org.nutz.dao.DaoInterceptorChain.invoke(DaoInterceptorChain.java:139)
at org.nutz.dao.impl.sql.run.NutDaoRunner.runCallback(NutDaoRunner.java:158)
at org.nutz.dao.impl.sql.run.NutDaoRunner._runWithoutTransaction(NutDaoRunner.java:125)
at org.nutz.dao.impl.sql.run.NutDaoRunner._run(NutDaoRunner.java:92)
at org.nutz.dao.impl.sql.run.NutDaoRunner.run(NutDaoRunner.java:81)
at org.nutz.dao.impl.DaoSupport.run(DaoSupport.java:240)
at org.nutz.dao.impl.DaoSupport._exec(DaoSupport.java:252)
at org.nutz.dao.impl.DaoSupport.execute(DaoSupport.java:236)
at org.nutz.dao.impl.NutDao.execute(NutDao.java:1008)
at com.th.service.report.impl.pc.PoolTicketReportServiceImpl.main(PoolTicketReportServiceImpl.java:482)
Caused by: java.sql.SQLException: Before start of result set
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:957)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:896)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:885)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:860)
at com.mysql.jdbc.ResultSetImpl.checkRowPos(ResultSetImpl.java:790)
at com.mysql.jdbc.ResultSetImpl.getStringInternal(ResultSetImpl.java:5244)
at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5167)
at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5206)
at com.th.service.report.impl.pc.PoolTicketReportServiceImpl$1.invoke(PoolTicketReportServiceImpl.java:475)
at org.nutz.dao.impl.sql.NutSql.onAfter(NutSql.java:136)
at org.nutz.dao.impl.sql.run.NutDaoExecutor._runSelect(NutDaoExecutor.java:277)
at org.nutz.dao.impl.sql.run.NutDaoExecutor.exec(NutDaoExecutor.java:53)
... 13 more

1 回复
System.out.println("child:"+rs.getString("child"));

调用rs.next之前可不能这样调用

添加回复
请先登陆
回到顶部