JDBCCallableStatementWriterPattern
此模式用于使用存储过程实现将数据输出到 Java™ 数据库连接 (JDBC) 连接的业务逻辑。打开和关闭连接的管理任务由批处理框架执行。
支持类
- JDBCCallableStatementWriter
当 JDBC 输入流的使用模式从查询检索单个结果时引用此类。在步骤的每个迭代后废弃查询和结果。此类与 JBDCWriter 的不同之处在于它使用了可调用的语句,而不是编译的语句。
- LocalJDBCCallableStatementWriter
从本地数据库读取数据时引用此类。
必需属性
以下属性对于该模式是必需的。
属性 | 值 | JDBCCallableStatementWriter | LocalJDBCCallableStatementWriter |
---|---|---|---|
PATTERN_IMPL_CLASS | 实现 JDBCCallableStatementReaderPattern 接口的类 | 适用 | 适用 |
ds_jndi_name | 数据源 JNDI 名称。 | 适用 | 适用 |
jdbc_url | JDBC URL。例如,jdbc:derby:C:\\mysample\\CREDITREPORT。 | 不适用 | 适用 |
jdbc_driver | JDBC 驱动程序。例如,org.apache.derby.jdbc.EmbeddedDriver | 不适用 | 适用 |
userid | 数据库的用户标识。 | 不适用 | 适用 |
pswd | 用户密码。 | 不适用 | 适用 |
可选属性
以下属性对于该模式是可选的。
属性名称 | 值 | 描述 | JDBCCallableStatementWriter | LocalJDBCCallableStatementWriter |
---|---|---|---|---|
debug | true 或 false。缺省值为 false。 | 在此批处理数据流上启用详细跟踪。 | 适用 | 适用 |
batch_interval | 缺省值是 20。 使此值小于基于记录的检查点操作的检查点时间间隔。 | 表示落实之前要进行批处理的 SQL 更新数。 | 适用 | 适用 |
EnablePerformanceMeasurement | true 或 false。缺省值为 false。 | 如果正使用 GenericXDBatchStep,那么计算批处理数据流和 processRecord 方法中所花的总时间。 | 适用 | 适用 |
EnableDetailedPerformanceMeasurement | true 或 false。缺省值为 false。 | 提供在批处理数据流的每个方法中花费的更为详细的时间细目。 | 适用 | 适用 |
接口定义
public interface JDBCCallableStatementWriterPattern {
/**
* This method is invoked during the job setup phase.
*
* @param props properties provided in the xJCL
*/
public void initialize(Properties props);
/**
* This is typically an Update query used to write data into the database
* @return
*/
public String getCallableStatementSQL();
/**
* The parent class BDSCallableStatementJDBCWriter creates a new CallableStatement and
* passes it to this method. This method populates the CallableStatement
* with appropriate values and returns it to the parent class for execution
* @param pstmt
* @param record
* @return
*/
public CallableStatement writeRecord(CallableStatement pstmt, Object record);
}
JDBCCallableStatementWriter xJCL 示例
<batch-data-streams>
<bds>
<logical-name>outputStream</logical-name>
<props>
<prop name="IMPLCLASS" value="com.ibm.websphere.batch.samples.tests.bds.EchoWriter"/>
<prop name="ds_jndi_name" value="jdbc/IVTdbxa"/>
<prop name="batch_interval" value="2"/>
<prop name="EnablePerformanceMeasurement" value="true"/>
<prop name="debug" value="false"/>
</props>
<impl-class>com.ibm.websphere.batch.devframework.datastreams.patterns.JDBCCallableStatementWriter</impl-class>
</bds>
</batch-data-streams>