首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PreparedStatement批处理与语句批处理的区别

PreparedStatement批处理与语句批处理的区别
EN

Stack Overflow用户
提问于 2017-02-22 16:48:59
回答 2查看 2.5K关注 0票数 3

我现在正在学习JDBC,我已经知道了PreparedStatement和语句之间的区别。PreparedStatement是预编译的,允许您设置参数,但是我在一次面试中被问到关于PreparedStatement批处理和语句批处理之间的区别的问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-22 21:56:15

StatementPreparedStatement的批处理执行之间的区别在于,Statement批处理可以包含不同的语句(只要它们是不产生结果集的语句),例如,单个批处理可以包含到各种表中的各种插入、删除、更新,而且--不是在所有Statement驱动程序实现中--甚至是DDL语句。

另一方面,PreparedStatement批处理执行涉及单个语句,批处理包含要为该语句执行的多组参数值。也就是说,每个批处理条目定义要用于准备语句的参数的值。

简言之:

  • Statement:批处理可以包含许多不同的语句
  • PreparedStatement:单语句,多组参数值
票数 10
EN

Stack Overflow用户

发布于 2017-02-22 17:02:01

语句用于执行静态SQL语句并返回其生成的结果。

在PreparedStatement中,SQL语句被预编译并存储在PreparedStatement对象中。然后,可以使用该对象多次有效地执行该语句。由于sql语句已经编译,您将节省一些时间。

PreparedStatement接口扩展了语句接口。

代码语言:javascript
复制
public interface PreparedStatement extends Statement

批处理:

批次处理意味着批次将在“一次性”中完成。在批处理中,您可以在单个事务中执行多个语句,而不是一个一个地执行它们。它还将提高性能,因为您正在对数据库服务器进行一次往返,以插入多个记录,而不是多次访问。

executeBatch() API是Statement接口的一部分,它向数据库提交一批命令以供执行,如果所有命令都成功执行,则返回一个更新计数数组。

创建多个语句/预付状态,并将其添加到批处理中。来执行它而不是

代码语言:javascript
复制
statement.execute();  //executes single statement/preparedstatement

你打电话来

代码语言:javascript
复制
 statement.addBatch();  //to add statement to batch
 statement.executeBatch(); //executes batch of statement/preparedstatement

由于SQL是预编译的,不能在预置语句中更改,批处理将多次相同SQL,而在语句情况下,可以向批处理中添加不同的SQL。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42397522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档