Java参数化查询无法得到可更新的记录集


关键词

可更新的 记录集 参数化查询

摘要

本文介绍Java参数化查询,即PreparedStatement无法得到可更新的记录集,只能是不可更新的记录集。

首先,我们来看一下Statement与PreparedStatement之间的区别。


Statement是这样的:

stmt.executeUpdate("insert into tb_name (col1,col2,col2,col4) values ('"+var1+"','"+var2+"',"+var3+",'"+var4+"')");

而PreparedStatement是这样的:

pstmt = con.prepareStatement("insert into tb_name(col1,col2,col2,col4) values (?,?,?)");
pstmt.setString(1,var1);
pstmt.setString(2,var2);
pstmt.setString(3,var3);
pstmt.executeUpdate();

使用参数化查询,我们可以使得整个查询过程更加安全!不会有SQL注入的漏洞。但是参数化查询也有一个问题,那就是它有两个执行方式,一个是executeQuery(),这个方法返回的是一个ResultSet记录集,但这个记录集是不可以更新的。

另一个方法是executeUpdate(),本以为这个方法可以返回一个可供更新的记录集,但很失败,它根本就不返回记录,只返回一个整形数字。而且这个方法要求执行的语句是DML语句(比如INSERT、UPDATE或DELETE语句)或ddl语句(如Create、Alter等)


 

文章的版权

洪哥写文章很苦逼,如果本文对您略有帮助,点击感兴趣的广告支持洪哥!万分感谢!本文属于“洪哥笔记”原创文章,转载请注明来源地址:Java参数化查询无法得到可更新的记录集:http://www.splaybow.com/post/java-prepared-statement-cannot-get-updatable-rs.html

关注与收藏

如果您在服务器运维、网络管理、网站或系统开发过程中有任何疑问,洪哥以此为饭碗,请加QQ:115085382!
了解更多好文章,请关注我们的新浪微博和腾讯微博
亲,先存起来,方便以后再看啊!加入收藏夹的话,按Ctrl+D


« jsp包含文件与被包含文件的contentType必须完全一致 JSP静态包含 »

相关文章:

JSP动态包含  (2014/6/28 8:32:24)

JSP静态包含  (2014/6/27 8:24:43)

Java参数化查询无法得到可更新的记录集  (2014/6/26 9:29:00)

jsp包含文件与被包含文件的contentType必须完全一致  (2014/6/25 9:19:33)

Java可以定义元素个数为0的数组  (2014/6/23 11:24:23)

Java中XML的构造与输出  (2014/3/29 11:51:08)

Java中如何把整形int转换成字符串String类型  (2014/3/28 11:31:28)

自动添加超链接  (2014/1/17 9:43:23)

使用keytool生成私钥  (2014/1/2 20:58:48)

Java递归算法示例  (2013/12/29 19:19:50)