我的代码如下
public ArrayList process(ResultSet rs) throws SQLException {
ArrayList rdlist=new ArrayList();
RoleData rd=null;
while (rs.next()){
rd= new RoleData();
rd.RoleID =rs.getLong("RoleID");
rd.RoleName =rs.getString("RoleName").trim() ;
rd.RoleDes = rs.getString("RoleDes");
rd.UpRole = rs.getLong("UpRole");
rd.worklistServerID = rs.getLong("WorkListServerID");
rdlist.add(rd);
}
return rdlist; }它的错误提示如下:
java.sql.SQLException: Column 'RoleID' not found.
at com.mysql.jdbc.ResultSet.findColumn(ResultSet.java:2368)
at com.mysql.jdbc.ResultSet.getLong(ResultSet.java:1436)
at cn.ac.ios.tcse.isflow.ProcessServer.UserManager.RoleResultProcessor.process(RoleResultProcessor.java:26)
at cn.ac.ios.tcse.isflow.ConnectionSQLManager.SQLProcessor.handleQuery(SQLProcessor.java:35)
at cn.ac.ios.tcse.isflow.ConnectionSQLManager.SQLProcessor.executeQuery(SQLProcessor.java:23)
at cn.ac.ios.tcse.isflow.ProcessServer.UserManager.RoleResultProcessor.main(RoleResultProcessor.java:45)
Column 'RoleID' not found.
getRoleData() failed! Database Error:Could not perform the query for:SELECT * from Role where RoleID=?
我的数据库用的是mysql,表Role里面确实是有RoleID这个Column,而且我跟踪了发现rs里面其实已经把数据取出来了,但是用rd.RoleID =rs.getLong("RoleID");会出错,更奇怪的是同样的代码在别人机器上运行是正确的,我如果改成rd.RoleID =(long)rs.getDouble(1);好像可以,而且同样的问题也出现在rd.RoleName =rs.getString("RoleName").trim() ;用这条语句取出来的是乱码,改成
rd.RoleName = (new String(rs.getBytes(2))).trim();就可以,不知道这是为什么?,我想是不是与我用的mysql或者是mysqljdbc connector有关啊,请哪位高手指点一下,感激不尽!
public ArrayList process(ResultSet rs) throws SQLException {
ArrayList rdlist=new ArrayList();
RoleData rd=null;
while (rs.next()){
rd= new RoleData();
rd.RoleID =rs.getLong("RoleID");
rd.RoleName =rs.getString("RoleName").trim() ;
rd.RoleDes = rs.getString("RoleDes");
rd.UpRole = rs.getLong("UpRole");
rd.worklistServerID = rs.getLong("WorkListServerID");
rdlist.add(rd);
}
return rdlist; }它的错误提示如下:
java.sql.SQLException: Column 'RoleID' not found.
at com.mysql.jdbc.ResultSet.findColumn(ResultSet.java:2368)
at com.mysql.jdbc.ResultSet.getLong(ResultSet.java:1436)
at cn.ac.ios.tcse.isflow.ProcessServer.UserManager.RoleResultProcessor.process(RoleResultProcessor.java:26)
at cn.ac.ios.tcse.isflow.ConnectionSQLManager.SQLProcessor.handleQuery(SQLProcessor.java:35)
at cn.ac.ios.tcse.isflow.ConnectionSQLManager.SQLProcessor.executeQuery(SQLProcessor.java:23)
at cn.ac.ios.tcse.isflow.ProcessServer.UserManager.RoleResultProcessor.main(RoleResultProcessor.java:45)
Column 'RoleID' not found.
getRoleData() failed! Database Error:Could not perform the query for:SELECT * from Role where RoleID=?
我的数据库用的是mysql,表Role里面确实是有RoleID这个Column,而且我跟踪了发现rs里面其实已经把数据取出来了,但是用rd.RoleID =rs.getLong("RoleID");会出错,更奇怪的是同样的代码在别人机器上运行是正确的,我如果改成rd.RoleID =(long)rs.getDouble(1);好像可以,而且同样的问题也出现在rd.RoleName =rs.getString("RoleName").trim() ;用这条语句取出来的是乱码,改成
rd.RoleName = (new String(rs.getBytes(2))).trim();就可以,不知道这是为什么?,我想是不是与我用的mysql或者是mysqljdbc connector有关啊,请哪位高手指点一下,感激不尽!
====================================================
看看你机子上和别人机子上mysql的jdbc驱动是否是一样的