JDBCチュートリアルが薦めるように、JDBCを使用する最も簡単な方法はjava.sql.DriverManagerを使用することです。MySQL[65]データベースにメールと名前を保存する例が以下になります。
<window title="JDBC demo" border="normal">
<zscript><![CDATA[
import java.sql.*;
void submit() {
//load driver and get a database connetion
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost/test?user=root&password=my-password");
PreparedStatement stmt = null;
try {
stmt = conn.prepareStatement("INSERT INTO user values(?, ?)");
//insert what end user entered into database table
stmt.set(1, name.value);
stmt.set(2, email.value);
//execute the statement
stmt.executeUpdate();
} finally { //cleanup
if (stmt != null) {
try {
stmt.close();
} catch (SQLException ex) {
log.error(ex); //log and ignore
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException ex) {
log.error(ex); //log and ignore
}
}
}
}
]]>
</zscript>
<vbox>
<hbox>Name : <textbox id="name"/></hbox>
<hbox>Email: <textbox id="email"/></hbox>
<button label="submit" onClick="submit()"/>
</vbox>
</window>
この方法は簡単ですが、お勧めしません。なぜならZKアプリケーションはウェブをベースにしているアプリケーションであるからです。読み込みはいつ起こるか予想できません。データベースとの接続は効率的に行わなければなりません。
幸い、J2EEフレームワークとウェブサーバーはコネクションプーリングと呼ばれる機能を提供しています。この機能は簡単に使用できるし、データベースとの接続を管理することもできます。次のセクションで詳しく話します。
【ヒント】:ほかのウェブアプリケーションとは違って、ZKにてDriverManagerを 使用することは可能です。(ただし、推奨はしません)。はじめに、デスクトップの中でコネクションをキャッシュし、イベントに使用します(何度も使用する ことができます)。デスクトップが無効になったら閉じます。伝統的なクライアント/サーバーアプリケーションのように動きます。この方法は、クライアント /サーバーアプリケーションのように、同時に使用しているユーザー数が制限されています。(超えると、効率が低下します)。デスクトップが無効になったこ とを知るために、org.zkoss.zk.ui.utilDesktopCleanupの使用でリスナを実装しなければなりません。