<?xml version="1.0" encoding="UTF-8"?> <xp:view xmlns:xp="http://www.ibm.com/xsp/core"> <xp:button value="query" id="button1"> <xp:eventHandler event="onclick" submit="true" refreshMode="partial" refreshId="dataTable1"> <xp:this.action><![CDATA[#{javascript:try{ var connection:java.sql.Connection; var statement:java.sql.Statement; var resultSet:java.sql.ResultSet; var sql = "SELECT ID, FIRST_NAME, LAST_NAME FROM EMP"; connection = @JdbcGetConnection("oracle"); //WebContent - WEB-INF - jdbc - 接続名.jdbc statement = connection.createStatement(); resultSet = statement.executeQuery(sql); viewScope.result =[]; while (resultSet.next()){ var item = {}; item.ID = resultSet.getString(1).trim(); item.FIRSTNAME = resultSet.getString(2).trim(); item.LASTNAME = resultSet.getString(3).trim(); viewScope.result.push(item); } }catch(e){ print("error:"+e); }finally{ if(resultSet != null){resultSet.close()} if(statement != null){statement.close()} if(connection != null){connection.close()} } }]]></xp:this.action> </xp:eventHandler></xp:button> <xp:dataTable id="dataTable1" rows="30" value="#{viewScope.result}" var="items" indexVar="itemIndex"> <xp:column id="column1"> <xp:this.facets> <xp:label value="ID" xp:key="header" id="label1"></xp:label> </xp:this.facets> <xp:inputText id="ID" value="#{items.ID}" readonly="true"></xp:inputText> </xp:column> <xp:column id="column2"> <xp:this.facets> <xp:label value="FirstName" id="label2" xp:key="header"></xp:label> </xp:this.facets> <xp:inputText id="inputText1" value="#{items.FIRSTNAME}" readonly="true"></xp:inputText> </xp:column> <xp:column id="column3"> <xp:this.facets> <xp:label value="LastName" id="label3" xp:key="header"></xp:label> </xp:this.facets> <xp:inputText id="inputText2" value="#{items.LASTNAME}" readonly="true"></xp:inputText> </xp:column> </xp:dataTable> </xp:view>
サンプルコードを実行するためには、事前にJDBCDriverの準備が必要です。
動作環境
DominoServer 9.0.1FP9
Oracle 11g(11.2.0.4.0 )
JDBCドライバー
https://www.oracle.com/technetwork/jp/database/features/jdbc/index-099275-ja.html 今回はojdbc6.jarを使用します。
JDBC Driver Pluginの作成
UpdateSite.nsfにインポートするためのJDBC Driver Pluginを作成します。
Domino Designerの、「Tools」-「JDBC Driver Plug-in Wizard」を選択します。
Class:は、デフォルト「oracle.jdbc.OracleDriver」になっていますが、「oracle.jdbc.driver.OracleDriver」に変更します。
コネクションプールの設定(xxxx.jdbc)の<driver>と同じ名前にします。
Import用ファイルが生成されます。
UpdateSite.nsfへのインポート
Import Local Update Site…を選択し、JDBC Driver Pluginのsite.xmlを指定します。
Importが終わったら、Domino HTTPサーバーを再起動します。
JDBC DriverがImportされているか確認します。 > tell http osgi ss oracle 2018/10/16 09:57:39 Framework is launched. 2018/10/16 09:57:39 id State Bundle 2018/10/16 09:57:39 11 RESOLVED com.oracle.jdbc.driver_1.0.0.20181015-1645
コネクションプールの設定
901FP8から利用できる@JdbcGetConnection()を使う場合、コネクションプール設定文書を作成します。 Domino Designerで、「ウィンドウ」-「Eclipseビューの表示」から、パッケージエクスプローラーを開きます。 WEB-INFの配下に、jdbcフォルダを作成し、「接続名.jdbc」ファイルを作成します。 ここでは、oracle.jdbcとしています。
「接続名.jdbc」に接続情報を記述します。
<jdbc type="simple"> <driver>oracle.jdbc.driver.OracleDriver</driver> <url>jdbc:oracle:thin:@ホスト名:ポート:データベース名</url> <user>ユーザー名</user> <password>パスワード</password> <simple> <maxPoolSize>10</maxPoolSize> <maxConnectionSize>5</maxConnectionSize> </simple> </jdbc>
以上