SAK 図書館
JAVA Servlet、JSP + Oracle9i 編4 - JDBC、ストアド呼び出し、prepareCall
■ストアド呼び出し(JSP)
・CallableStatement で、Oracle のストアドを呼び出すことができる。
手法的には ADO や oo4o と大差ないと思う。
・registerOutParameter の java.sql.Types.???? は、次のとおり。
VARCHAR String
SMALLINT short
BIGINT long
REAL float
DOUBLE double
NUMRIC jaja.sql.Numeric
BIT Boolean
TINYINT byte
VARBINARY byte[]
DATE java.sql.Date
TIME java.sql.Time
TIMESTAMP java.sql.Timestamp
<%@ page import="java.util.*,java.sql.*;" contentType="text/html; charset=Shift_JIS"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<TITLE>JAVA Server Page(JSP) - Oracle9i JDBC Test</TITLE>
</HEAD>
<BODY>
<P>JAVA Server Page(JSP) - Oracle9i JDBC Test</P>
<%
String drv = "oracle.jdbc.OracleDriver";
String dsn = "jdbc:oracle:thin:@localhost:1521:sak";
String sql = "{? = call data2notnull(?, ?)}";
Connection cn = null;
CallableStatement st = null;
// Oracle9i JDBC ドライバロード
try {
Class.forName(drv);
} catch (Exception e) {
out.println("<P>JDBC ドライバロードエラー<BR>" + e.toString() + "</P>");
}
// Oracle9i JDBC 接続
try {
cn = DriverManager.getConnection(dsn, "sak", "sak");
} catch (Exception e) {
out.println("<P>JDBC 接続エラー<BR>" + e.toString() + "</P>");
}
// Oracle9i ストアド呼び出し SQL 作成
try {
st = cn.prepareCall(sql);
st.registerOutParameter(1, java.sql.Types.BIGINT);
} catch (Exception e) {
out.println("<P>JDBC ストアド呼び出し SQL 作成エラー<BR>" + e.toString() + "</P>");
}
// Oracle9i JDBC PL/SQL ストアド呼び出し
try {
st.setLong(2, 123);
st.setLong(3, 456);
st.execute();
out.println("<P>ストアド戻り値 = " + st.getString(1) + "</P>");
} catch (Exception e) {
out.println("<P>JDBC PL/SQL ストアド呼び出しエラー<BR>" + e.toString() + "</P>");
}
// Oracle9i JDBC ステートメントクローズ
try {
st.close();
} catch (Exception e) {}
// Oracle9i JDBC 接続クローズ
try {
cn.close();
} catch (Exception e) {}
%>
</BODY>
</HTML>
■JAVA Servlet、JSP + Oracle9i 編資料
■JAVA Servlet、JSP + PostgreSQL 編資料
■JAVA Servlet、JSP 基礎編資料
■PostgreSQL 編、JAVA Servlet、JSP 編資料
■MySQL 編資料
■SQL 基礎編資料
■SQL 基礎実地編資料
■SQL チューニング編資料
■Oracle PL/SQL 編資料