XPagesからOracleに接続する

<?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>

以上

 

 

 

 


XPages
YoshinobuFujihara
October 16, 2018 at 11:02 AM
Rating
0





No comments yetLogin first to comment...