PreparedStatement接口继承了Statement接口,所以它能够实现Statement的所有功能,但是其比Statement更加灵活。PreparedStatement中的SQL语句可以接收一个或多个参数,这些参数值都可以使用“?”来代替。在执行SQL语句前,必须通过PreparedStatement对象的set***()方法为参数赋值。即包含于 PreparedStatement 对象中的 SQL 语句可具有一个或多个 IN 参数。IN 参数的值在 SQL 语句创建时未被指定。相反的,该语句为个 IN 参数保留一个问号(“?”)作为占位符。每个问号的值必须在该语句执行之前,通过适当的 setXXX 方法来提供。
SQL 语句被预编译并存储在 PreparedStatement
对象中。然后可以使用此对象多次高效地执行该语句。
注:用于设置 IN 参数值的设置方法(setShort
、setString
等等)必须指定与输入参数的已定义 SQL 类型兼容的类型。例如,如果 IN 参数具有 SQL 类型 INTEGER
,那么应该使用 setInt
方法。
setXXX 方法的第一个参数是要设置的参数的序数位置,第二个参数是设置给该参数的值。