我现在正在学习JDBC,我已经知道了PreparedStatement和语句之间的区别。PreparedStatement是预编译的,允许您设置参数,但是我在一次面试中被问到关于PreparedStatement批处理和语句批处理之间的区别的问题。
发布于 2017-02-22 21:56:15
Statement和PreparedStatement的批处理执行之间的区别在于,Statement批处理可以包含不同的语句(只要它们是不产生结果集的语句),例如,单个批处理可以包含到各种表中的各种插入、删除、更新,而且--不是在所有Statement驱动程序实现中--甚至是DDL语句。
另一方面,PreparedStatement批处理执行涉及单个语句,批处理包含要为该语句执行的多组参数值。也就是说,每个批处理条目定义要用于准备语句的参数的值。
简言之:
Statement:批处理可以包含许多不同的语句PreparedStatement:单语句,多组参数值发布于 2017-02-22 17:02:01
语句用于执行静态SQL语句并返回其生成的结果。
在PreparedStatement中,SQL语句被预编译并存储在PreparedStatement对象中。然后,可以使用该对象多次有效地执行该语句。由于sql语句已经编译,您将节省一些时间。
PreparedStatement接口扩展了语句接口。
public interface PreparedStatement extends Statement批处理:
批次处理意味着批次将在“一次性”中完成。在批处理中,您可以在单个事务中执行多个语句,而不是一个一个地执行它们。它还将提高性能,因为您正在对数据库服务器进行一次往返,以插入多个记录,而不是多次访问。
executeBatch() API是Statement接口的一部分,它向数据库提交一批命令以供执行,如果所有命令都成功执行,则返回一个更新计数数组。
创建多个语句/预付状态,并将其添加到批处理中。来执行它而不是
statement.execute(); //executes single statement/preparedstatement你打电话来
statement.addBatch(); //to add statement to batch
statement.executeBatch(); //executes batch of statement/preparedstatement由于SQL是预编译的,不能在预置语句中更改,批处理将多次相同SQL,而在语句情况下,可以向批处理中添加不同的SQL。
https://stackoverflow.com/questions/42397522
复制相似问题