这两种对数据库的操作的区别是什么?请高手指点

xiaoshuidi123 2012-07-16 01:18:27
我看到有的人用这种方法st = conn.createStatement();
temp = st.executeUpdate(sql);
而有的人呢,用这种ps = connection
.prepareStatement("Insert into user(uid,password,realName,gender,email,tel,question,answer,validateCode) values(?,?,?,?,?,?,?,?,?)");
这两种方法有什么优缺点呢,哪位高手给解释下 谢谢
...全文
99 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
s478853630 2012-07-17
  • 打赏
  • 举报
回复
不会吧,1-7楼回答的都没错呀,就1楼得分了,你这家伙太不地道了
whereusejava 2012-07-16
  • 打赏
  • 举报
回复
PrepareStatement 高效、安全
cxw3152 2012-07-16
  • 打赏
  • 举报
回复
PrepareStatement 比 Statement 这个效率高。。而且前者可以调用存储过程后者不行。。如果没有别的特殊需求 就直接使用前者就行了。
VanBaston 2012-07-16
  • 打赏
  • 举报
回复
一个只能放一个完整的sql语句,不能带参数
一个是可放一个带参数的sql语句,需要设置参数后,才能执行,(不会出现注入式的bug)
gcaling2006 2012-07-16
  • 打赏
  • 举报
回复
同意楼上,推荐用prepareStatement
flowerjack 2012-07-16
  • 打赏
  • 举报
回复
prepareStatement("Insert into user(uid,password,realName,gender,email,tel,question,answer,validateCode) values(?,?,?,?,?,?,?,?,?)");
================================================================================
比较高效,也比较安全,可以防止SQL注入病毒攻击
s478853630 2012-07-16
  • 打赏
  • 举报
回复
PrepareStatement比Statement的效率高,因为它是预先编译好的,
前者在数据库运行是只需要编译一次,因为它始终都是这一条sql语句,
后者每次都需要编译,因为它每次都会产生不同的sql语句。
Yorky Q 2012-07-16
  • 打赏
  • 举报
回复
1,对于prepareStatement来说,其执行返回的是一个prepareStatement对象,而这个方法的描述是这样的,prepareStatement(String sql)创建一个 PreparedStatement 对象来将参数化的 SQL 语句发送到数据库。它需要一个参数,这个参数就是需要执行的sql语句。而createStatement,它不需要参数,Statement createStatement()创建一个 Statement 对象来将 SQL 语句发送到数据库,但在此处并没有执行sql语句。
2,PreparedStatement执行时用到的方法,setString(int i,value),其中set后面跟的是相应的属性数据类型,所以,要求相应的sql语句的写法与常规的写法不同,意思可以理解为第i个问号的值为value,这样设置之后,就可以对其进行执行了,执行的方法是executeQuery()和executeUpdate(),区别在之前讨论jdbc中有讲过,而PreparedStatement的这两个方法是不需要参数的,这点跟Statement不同,它需要一个sql语句的参数,当然,也是这两种方法! 3,PreparedStatement对象一旦绑定了sql,就不能执行其他sql了,即只能执行一条sql,而Statement对象可以执行多条

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧