SAK 図書館

SAK Streets メインストリート 図書館・カフェ 一覧 SAK Streets 検索
| VB | SQL | Perl | PHP | ASP | JSP | C | PC | HP | FAQ | フリーソフト |

JAVA Servlet、JSP + PostgreSQL 編5 - JDBC、ストアド呼び出し、prepareCall

■ストアド呼び出し(JSP)

  ・CallableStatement で、Oracle のストアドは呼び出せるのだが、
    PostgreSQL で PL/pgSQL のストアドを呼び出そうとすると
    「Callable Statements are not supported at this time.」
    とサポートされていないとエラーになる。
    Oracle だと問題ないんだけどな〜。

  ・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) - PostgreSQL JDBC Test</TITLE>
</HEAD>
<BODY>
<P>JAVA Server Page(JSP) - PostgreSQL JDBC Test</P>
<%
  String drv = "org.postgresql.Driver";
  String dsn = "jdbc:postgresql://localhost:5432/sak?user=sak&password=sak";
  String sql = "{? = call gettest1(?)}";
  Connection cn = null;
  CallableStatement st = null;

  // PostgreSQL JDBC ドライバロード
  try {
    Class.forName(drv);
  } catch (Exception e) {
    out.println("<P>JDBC ドライバロードエラー<BR>" + e.toString() + "</P>");
  }

  // PostgreSQL JDBC 接続
  try {
    cn = DriverManager.getConnection(dsn);
  } catch (Exception e) {
    out.println("<P>JDBC 接続エラー<BR>" + e.toString() + "</P>");
  }

  // PostgreSQL JDBC 問い合わせ 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>");
  }

  // PostgreSQL JDBC PL/pgSQL ストアド呼び出し
  try {
    st.setString(2, "a001");
    st.execute();
    out.println("<P>ストアド戻り値 = " + st.getString(1) + "</P>");
  } catch (Exception e) {
    out.println("<P>JDBC PL/pgSQL ストアド呼び出しエラー<BR>" + e.toString() + "</P>");
  }

  // PostgreSQL JDBC ステートメントクローズ
  try {
    st.close();
  } catch (Exception e) {}

  // PostgreSQL JDBC 接続クローズ
  try {
    cn.close();
  } catch (Exception e) {}
%>
</BODY>
</HTML>

■JAVA Servlet、JSP + PostgreSQL 編資料
■JAVA Servlet、JSP + Oracle9i 編資料
■JAVA Servlet、JSP 基礎編資料
■PostgreSQL 編、JAVA Servlet、JSP 編資料
■MySQL 編資料
■SQL 基礎編資料
■SQL 基礎実地編資料
■SQL チューニング編資料
■Oracle PL/SQL 編資料
| VB | SQL | Perl | PHP | ASP | JSP | C | PC | HP | FAQ | フリーソフト |

SAK Streets メインストリート 図書館・カフェ 一覧 SAK Streets 検索



Copyright (C) 1999-2017 Y.SAK