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の使用でリスナを実装しなければなりません。