今度は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>
|
(first uploaded 2002/12/15 last updated 2002/12/22, URANO398)
|