亲爱的 stackoverflow 社区
我正在尝试将用 JAVA 开发的系统从使用 oracle DB 升级到 mysql DB。
我已经到了使用 java 代码使用特定 oracle 结构的存储过程的地步 - OracleTypes.CURSOR
. 请看下面的代码。
private int getUserID(String username) {
int UserID = -1;
CallableStatement cs = null;
ResultSet rs = null;
try {
con = this.getConnection();
cs = con.prepareCall("{call getUserID(?,?)}");
cs.setString(1, username);
cs.registerOutParameter(2, OracleTypes.CURSOR);
cs.execute();
rs = (ResultSet) cs.getObject(2);
if (rs.next()) {
UserID = rs.getInt(1);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
cs.close();
rs.close();
} catch (SQLException ex) {
Logger.getLogger(DBConnector.class.getName()).log(Level.SEVERE, null, ex);
}
closeConnection();
return UserID;
}
}
我想做的是将使用转换为OracleTypes.CURSOR
对mysql友好的东西。我确实读到过在新版本的 mysql 中可以做到这一点,所以我什至尝试替换OracleTypes.CURSOR
为java.sql.Types.INTEGER
没有任何结果。
你能帮助我吗?
注意:我在这里有以下关于堆栈溢出的信息以及其他地方,如: http ://bugs.mysql.com/bug.php?id=17898