ユーザーガイド > プロシージャ > プロシージャまたはパラメーター化されたクエリーの実行 > JDBCを介したプロシージャの実行
 
JDBCを介したプロシージャの実行
サンプルストアドプロシージャの名前はSP_D1です。ユーザー名とパスワードは、guestとpasswordです。このセクションのサンプルJavaコードは、2つのカーソルを返すストアドプロシージャを実行します。
JDBCを介してストアドプロシージャを実行するには
1.ストアドプロシージャをTDVデータサービスとして次のディレクトリーに公開します。
Data Services/Databases/ds
 
2.Javaコードを記述してコンパイルし、クラスファイルをディレクトリーに保存します。
MultipleCursorsを使用したサンプルコード」を参照してください。
3.クラスファイルを保存したディレクトリーから、次のコマンドを実行します。
java -classpath <path_to_csjdbc.jar_file>/csjdbc.jar\;. <MultipleCursors>
 
MultipleCursorsはクラスファイルの名前であり、csjdbc.jarはクラスファイルを含むJARファイルの名前です。
MultipleCursorsを使用したサンプルコード
import java.sql.*;
 
public class MultipleCursors
{
private static final String COMPOSITE_URL =
"jdbc:compositesw:dbapi@localhost:9401?domain=composite&dataSource=ds";
 
private static final String COMPOSITE_DRIVER =
"cs.jdbc.driver.CompositeDriver";
 
private static final String COMPOSITE_USER = "guest";
private static final String COMPOSITE_PASSWORD = "password";
 
public static void main(String[] args) {
try {
Class.forName(COMPOSITE_DRIVER);
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
return;
}
 
try {
executeProcedure();
} catch (SQLException ex) {
ex.printStackTrace();
return;
}
}
 
private static void executeProcedure()
throws SQLException
{
Connection conn = DriverManager.getConnection(
COMPOSITE_URL, COMPOSITE_USER, COMPOSITE_PASSWORD);
 
CallableStatement stmt = conn.prepareCall("{call SP_D1(?,?)}");
stmt.registerOutParameter(1, Types.OTHER);
stmt.registerOutParameter(2, Types.OTHER);
stmt.execute();
 
printResultSet((ResultSet)stmt.getObject(1));
printResultSet((ResultSet)stmt.getObject(2));
 
stmt.close();
conn.close();
}
 
private static void printResultSet(ResultSet rs)
throws SQLException
{
ResultSetMetaData metaData = rs.getMetaData();
int rowIndex = 0;
while (rs.next()) {
System.out.println("Row " + rowIndex++);
for (int i=1; i<=metaData.getColumnCount(); i++) {
System.out.println(" Column " + i + " " + metaData.getColumnName(i) +
" " + rs.getString(i));
}
}
}
}