PDBPreStatement类

当前版本:v3.0, 更新时间:2020-09-16

表示预编译的 SQL 语句的对象。

SQL 语句被预编译并存储在 PreparedStatement 对象中。然后可以使用此对象多次高效地执行该语句。

实现的方法

addBatch 将一组参数添加到此 PreparedStatement 对象的批处理命令中。

clearParameters 清除当前参数值。

execute 在此 PreparedStatement 对象中执行 SQL 语句,该语句可以是任何种类的 SQL 语句。

executeQuery 在此 PreparedStatement 对象中执行 SQL 查询,并返回该查询生成的 ResultSet 对象。

executeUpdate 在此 PreparedStatement 对象中执行 SQL 语句。

executeBatch 执行批量插入

setBoolean 将指定参数设置为 boolean 值

setBytes 将指定参数设置为 blob 值

setDouble 将指定参数设置为 double 值。

setFloat 将指定参数设置为 float 值。

setLong 将指定参数设置为long 值。

setObject 使用给定对象设置指定参数的值。

setString 将指定参数设置为 String 值。

setTimestamp 将指定参数设置为 datetime 值。

方法详细信息

addBatch

  1. void addBatch() throws SQLException

将一组参数添加到此 PreparedStatement 对象的批处理命令中。

注意:本方法仅支持批量执行插入,并且每个值都必须使用参数,并使用setXXX方法指定参数值。

例如:以下SQL支持批量执行:

  1. insert into tab01(devid,tstamp,val01,val02) values(?,?,?,?)

以下SQL不支持批量执行:

  1. insert into tab01(devid,tstamp,val01,val02) values(10,?,?,?)
  2. insert into tab01(devid,tstamp,val01,val02) values(?,?,?,?),(?,?,?,?)

抛出:

SQLException - 如果发生数据库访问错误,或者在关闭的 PreparedStatement 上调用此方法

clearParameters

  1. void clearParameters() throws SQLException

清除当前参数值。

通常参数值对语句的重复使用仍然有效。设置一个参数值会自动清除其以前的值。不过,在某些情况下,直接释放当前参数值使用的资源也是很有用的;这可以通过调用 clearParameters 方法实现。

抛出:

SQLException - 如果发生数据库访问错误,或者在关闭的 PreparedStatement 上调用此方法

execute

  1. boolean execute() throws SQLException

在此 PreparedStatement 对象中执行 SQL 语句,该语句可以是任何种

类的 SQL 语句。但不支持返回多个结果集的语句。execute 方法返回一个 boolean 值,指示结果集的形式。必须调用 getResultSet 或 getUpdateCount 方法获取该结果。

建议执行查询时选择 executeQuery 方法。

执行批量插入时选择 executeBatch 方法。

执行其他语句时选择 executeUpdate 方法。

返回:

如果第一个结果是 ResultSet 对象,则返回 true;如果第一个结果是更新计数或者没有结果,则返回 false

抛出:

SQLException - 如果发生数据库访问错误;在关闭的 PreparedStatement 上调用此方法,或者为此方法提供了参数

executeQuery

  1. ResultSet executeQuery() throws SQLException

在此 PreparedStatement 对象中执行 SQL 查询,并返回该查询生成的 ResultSet 对象。

返回:

包含该查询生成的数据的 ResultSet 对象;

抛出:

SQLException - 如果发生数据库访问错误,在关闭的 PreparedStatement 上调用此方法

executeUpdate

  1. int executeUpdate() throws SQLException

在此 PreparedStatement 对象中执行 SQL 语句,该语句必须是一个 SQL 数据操作语言(Data Manipulation Language,DML)语句,比如 INSERT语句;或者是无返回内容的 SQL 语句,比如 DDL 语句。

返回:

(1) SQL 数据操作语言 (DML) 语句的行数

(2) 对于无返回内容的 SQL 语句,返回 0

抛出:

QLException - 如果发生数据库访问错误,在关闭的 PreparedStatement 上调用此方法,或者 SQL 语句返回一个 ResultSet 对象

executeBatch

  1. int[] executeBatch() throws SQLException

在此PreparedStatement 对象上执行批量插入语句。

返回:

每条语句执行的结果。 可调用getUpdateCount 方法获取成功插入的条数。

抛出:

SQLException - 如果发生数据库访问错误,在关闭的 PreparedStatement 上调用此方法,或者 不是插入语句。

setBoolean

  1. void setBoolean(int parameterIndex,boolean x)
  2. throws SQLException

将指定参数设置为 boolean 值。

参数:

parameterIndex - 第一个参数是 1,第二个参数是 2,……

x - 参数值

抛出:

SQLException - 如果 parameterIndex 不对应于 SQL 语句中的参数标记;

setBytes

  1. void setBytes(int parameterIndex, byte[] x)
  2. throws SQLException

将指定参数设置为 blob 值。

参数:

parameterIndex - 第一个参数是 1,第二个参数是 2,……

x - 参数值

抛出:

SQLException - 如果 parameterIndex 不对应于 SQL 语句中的参数标记;

setDouble

  1. void setDouble(int parameterIndex, double x)
  2. throws SQLException

将指定参数设置为 double 值

参数:

parameterIndex - 第一个参数是 1,第二个参数是 2,……

x - 参数值

抛出:

SQLException - 如果 parameterIndex 不对应于 SQL 语句中的参数标记;

setFloat

  1. void setFloat(int parameterIndex, float x)
  2. throws SQLException

将指定参数设置为 Float值。

参数:

parameterIndex - 第一个参数是 1,第二个参数是 2,……

x - 参数值

抛出:

SQLException - 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误,或者在关闭的 PreparedStatement 上调用此方法。

setLong

  1. void setLong(int parameterIndex, long x)
  2. throws SQLException

将指定参数设置为 long 值。

参数:

parameterIndex - 第一个参数是 1,第二个参数是 2,……

x - 参数值

抛出:

SQLException - 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误,或者在关闭的 PreparedStatement 上调用此方法。

setObject

  1. void setObject(int parameterIndex, Object x)
  2. throws SQLException

使用给定对象设置指定参数的值。第二个参数必须是 Object 类型;所以,应该对内置类型使用 java.lang 的等效对象。

参数:

parameterIndex - 第一个参数是 1,第二个参数是 2,……

x - 包含输入参数值的对象 仅支持 boolean, long, Timestamp, float, double, String, byte[] 类型值

抛出:

SQLException - 如果 parameterIndex 不对应于 SQL 语句中的参数标记;或者给定对象的类型不支持。

setString

  1. void setString(int parameterIndex, String x)
  2. throws SQLException

将指定参数设置为 String 值。

PinusDB只支持UTF8编码,驱动中已实现参数转UTF8。

参数:

parameterIndex - 第一个参数是 1,第二个参数是 2,……

x - 参数值

抛出:

SQLException - 如果 parameterIndex 不对应于 SQL 语句中的参数标记;

setTimestamp

  1. void setTimestamp(int parameterIndex, Timestamp x)
  2. throws SQLException

将指定参数设置为 datetime 值。

参数:

parameterIndex - 第一个参数是 1,第二个参数是 2,……

x - 参数值

抛出:

SQLException - 如果 parameterIndex 不对应于 SQL 语句中的参数标记;