PreparedStatement和批处理
1、概述 PreparedStatement 接口继承了 Statement ,并与之在两方面有所不同,它表示预编译的 SQL 语句对象。 首先,数据库会对预编译语句提供性能优化。因为预编译语句有可能被重复调用,所以语句被数据库编译后的执行代码被缓存下来,那么下次调用时只要是相同的预编译语句就不需要编译,只要将参数直接传入编译过的语句执行代码中就会得到执行。这并不是说只有一个 Connection 中多次执行的预编译语句被缓存,而是对于整个数据库,只要预编译的语句语法和缓存中匹配,在任何时候都可以不需要再次编译而直接执行。而 statement 的语句即使是相同一操作,而由于每次操作的数据不同所以使整个语句相匹配的机会极小,几乎不太可能匹配。 其次, PreparedStatement 对象中的 SQL 语句可具有一个或多个 IN 参数 。 IN 参数 的值在 PreparedStatement 创建时未被指定,而是为每个 IN参数 保留一个问号(“?”)作为占位符。设置 IN参数 值的设置方法(setInt、setString等等)必须指定与输入参数的已定义 SQL 类型兼容的类型。如果IN参数具有 SQL 类型 INTEGER ,那么应该使用 setInt 方法。 如果需要任意参数类型转换,使用 setObject 方法时应该将目标 SQL 类型作为其参数。 设置参数: 1