小T的博客(需要demo请看简介) 2017-03-10 01:01 采纳率: 0%
浏览 1544

从Oracle的结果集rs通过getInt(1)取回递增值报错无效的列类型

<%
request.setCharacterEncoding("gbk"); //解决中文乱码
String action = request.getParameter("action");//验证跳转方式是从submit按钮链接过来的,因为有name为action的值post
if(action != null && action.equals("post")) {
String title = request.getParameter("title");
String cont = request.getParameter("cont");
cont.replaceAll("\n", "
");//将文本输出的换行改为html形式,展示时才是换行的结构
Connection conn = DB.getConnection();
//设置conn来避免潜在的断电问题start
conn.setAutoCommit(false);
int rootid = 5;
//用preparedstatement语句操作数据库插入语句start
String sql = "insert into BBS values(seq_BBS.nextval,0,?,?,?,1,0,sysdate)";
PreparedStatement psmt = DB.createpsmt(conn,sql,Statement.RETURN_GENERATED_KEYS); //因为psmt的处理语句里有递增序列seq_BBS.nextval要处理
psmt.setInt(1, rootid);
psmt.setString(2, cont); //所以可以返回这个要处理的递增值
psmt.setString(3, title);
psmt.executeUpdate();
///用preparedstatement语句操作数据库插入语句end
ResultSet rsKeys = psmt.getGeneratedKeys(); //返回递增的值,因为只psmt处理了一条记录,所以返回值就是一个
rsKeys.next();
rootid = rsKeys.getInt(1); //通过取结果集的位置为1的值来拿出递增值
Statement stmt = DB.createstmt(conn);
stmt.executeUpdate("update BBS set rootid = " + rootid + "where id =" + rootid);
conn.commit();
conn.setAutoCommit(true);
//设置conn来避免潜在的断电问题send
DB.close(rsKeys);
DB.close(stmt);
DB.close(psmt);
DB.close(conn);
response.sendRedirect("Show_BBS_Tree2.jsp");
}
%>

  • 写回答

1条回答 默认 最新

  • devmiao 2017-03-10 23:13
    关注
    评论

报告相同问题?

悬赏问题

  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常