<?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("mssql"); //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 (NonProduction / Linux)
SQLServer2017 (Docker Image / Linux) (参考)クイック スタート: Docker を使用して SQL Server 2017 コンテナー イメージを実行する https://docs.microsoft.com/ja-jp/sql/linux/quickstart-install-connect-docker?view=sql-server-linux-2017
Microsoft JDBC Driver 6.4 for SQL Server https://www.microsoft.com/ja-JP/download/details.aspx?id=56615
JDBCドライバー
sqljdbc_6.4.0.0_jpn.tar.gzをダウンロードして展開します。 この検証環境では、mssql-jdbc-6.4.0.jre8.jarを使用します。
JDBC Driver Pluginの作成
UpdateSite.nsfにインポートするためのJDBC Driver Pluginを作成します。
ファイルが生成されます。
UpdateSite.nsfへのインポート
Import Local Update Site…を選択し、JDBC Driver Pluginのsite.xmlを指定します。
Importが終わったら、Domino HTTPサーバーを再起動します。
JDBC DriverがImportされているか確認します。 >tell http osgi ss sql [00978:00002-00007F10DA121740] 2018/07/17 15:13:05 Framework is launched. [00978:00002-00007F10DA121740] 2018/07/17 15:13:05 id State Bundle [00978:00002-00007F10DA121740] 2018/07/17 15:13:05 15 RESOLVED com.microsoft.sqlserver.jdbc.driver_1.0.0.20180717-1034
コネクションプールの設定
901FP8から利用できる@JdbcGetConnection()を使う場合、コネクションプール設定文書を作成します。 Domino Designerで、「ウィンドウ」-「Eclipseビューの表示」から、パッケージエクスプローラーを開きます。 WEB-INFの配下に、jdbcフォルダを作成し、「接続名.jdbc」ファイルを作成します。 ここでは、mssql.jdbcとしています。
「接続名.jdbc」に接続情報を記述します。 <jdbc type="simple"> <driver>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver> <url>jdbc:sqlserver://IPアドレス:1433;databaseName=データベース名;</url> <user>ユーザー名</user> <password>パスワード</password> <simple> <maxPoolSize>10</maxPoolSize> <maxConnectionSize>5</maxConnectionSize> </simple> </jdbc>