Xiプログラミング (3)

今度はXi-SQLを使って、MySQLデータベースを検索し、 その検索結果をHTMLのテーブル形式で表示する、というサンプルです。 このような処理はXiのサンプルアプリケーションとしても収録されているので、 それを真似てみただけです。

データベースとの接続方法は「JDBC」と「JNDI」の2種類があります。 「JDBC」はxi.propertiesの中に接続のための設定を書く方法で、 「JNDI」はサーブレットコンテナのJNDIリソースを使う方法です。 JDBCの場合、xi.propertiesには次のように記述を追加します。

resource.mudb.type=JDBC
resource.mudb.driver=org.gjt.mm.mysql.Driver
resource.mudb.url=jdbc:mysql://localhost:3306/udb?useUnicode=true&characterEncoding=SJIS
resource.mudb.user=user99
resource.mudb.password=pass99

Xiのスクリプトは次のようになります。 ここではまず、テーブルSHITENの全件を表示するだけの簡単な例を載せました。

<?xml version="1.0" encoding="Shift_JIS" ?>
<xi:program xmlns:xi="http://www.baykit.org/Xi/1.1"
            xmlns:pi="http://www.baykit.org/Xi/processor"
            xmlns:sql="http://www.baykit.org/Xi/sql">
<pi:output method="html" encoding="Shift_JIS" />

<sql:connect data-source="mudb">
  <xi:variable name="shiten_resultset">
  <sql:execute>
    SELECT * FROM SHITEN
     ORDER BY SHITEN_CODE
  </sql:execute>
  </xi:variable>

  <table border="1">
    <tr>
      <xi:for-each select="$shiten_resultset/rowset/row[1]/*" item="col">
        <th><xi:value-of select="name($col/self::*)"/></th>
      </xi:for-each>
    </tr>
    <xi:for-each select="$shiten_resultset/rowset/row" item="row">
      <tr>
        <xi:for-each select="$row/*" item="col">
           <td><xi:value-of select="$col"/></td>
        </xi:for-each>
      </tr>
    </xi:for-each>
  </table>
</sql:connect>

</xi:program>

Baykit and Cocoon Top

(first uploaded 2002/12/15 last updated 2002/12/22, URANO398)

テレワークならECナビ Yahoo 楽天 LINEがデータ消費ゼロで月額500円〜!
無料ホームページ 無料のクレジットカード 海外格安航空券 海外旅行保険が無料! 海外ホテル