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

从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条回答 默认 最新

相关推荐