程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 達夢數據庫的連接配置

達夢數據庫的連接配置

編輯:關於JAVA

數據庫訪問是數據庫應用系統中非常重要的組成部分。達夢數據庫作為一個通用數據庫管理系統,提供了多種數據庫訪問接口,包括ODBC、JDBC、API、OLEDB以及嵌入方式等。本文主要列出了在Java中常見的連接達夢數據庫的方法……

1.建立基本的JDBC連接

JDBC(Java Database Connectivity)是Java應用程序與數據庫的接口規范,旨在讓各數據庫開發商為Java程序員提供標准的數據庫應用程序編程接口(API)。JDBC定義了一個跨數據庫、跨平台的通用SQL數據庫API。DM JDBC 3.0驅動程序符合SUN JDBC3.0標准,兼容DM JDBC 2.0。

DM JDBC驅動程序是DM數據庫的JDBC驅動程序,它是一個能夠支持基本SQL功能的通用低層應用程序編程接口,支持一般的SQL數據庫訪問。

要建立JDBC連接,首先要注冊數據庫驅動程序。可以通過調用java.sql.DriverManager類的registerDriver方法顯式注冊驅動程序,也可以通過加載數據庫驅動程序類隱式注冊驅動程序。

//顯示注冊
DriverManager.registerDriver(newdm.jdbc.driver.dmDriver());
//隱式注冊
Class.forName(“dm.jdbc.driver.DmDriver”);

隱式注冊過程中加載實現了 java.sql.Driver的類,該類中有一靜態執行的代碼段,在類加載的過程中向驅動管理器DriverManager注冊該類。而這段靜態執行的代碼段其實就是上述顯式注冊的代碼。

注冊驅動程序之後,就可以調用驅動管理器的 getConnection方法來建立連接。建立數據庫連接需要指定標示不同數據庫的url、登錄數據庫所用的用戶名user和密碼password。

通過DriverManager建立連接的具體過程,如以下示例:

String driver= "dm.jdbc.driver.DmDriver";
   String url= "jdbc:dm://localhost:12345/dbname";
   String username="username";
   String password="password";
   Connection con = null;
   try {
     // 加載JDBC驅動程序
     Class.forName(driver);
   } catch (java.lang.ClassNotFoundException e) {
     e.printStackTrace();
   }
   try {
     // 數據庫連接
     con = DriverManager.getConnection(url, username, password);
   } catch (SQLException ex) {
     ex.printStackTrace();
}

2.iBatis的連接設置

持久層中間件iBatis連接數據庫的方式有3種,連接數據庫的方式是JDBC,可以通過在XML文件中配置數據庫連接,也可以在properties文件中配置。下面列出transactionManager的type為JDBC的3種連接配置。

dataSource的type為SIMPLE的連接配置

以下是配置數據庫連接參數的properties文件sql-map-config.properties的內容:

## SimpleDataSource properties
   ## Use only if useSimpleConfiguration=true
   # DMDBMS
   SimpleDriver=dm.jdbc.driver.DmDriver
   SimpleUrl=jdbc:dm://localhost:12345/SYSTEM
   SimpleUsername=SYSDBA
SimplePassword=SYSDBA

以下是配置文件sql-map-config.xml的內容:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE sqlMapConfig
   PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
   "http://www.ibatis.com/dtd/sql-map-config-2.dtd">
   <sqlMapConfig>
   <properties resource="res/config/sql-map-config.properties" />
   <settings cacheModelsEnabled="true" enhancementEnabled="true"
     maxSessions="64" maxTransactions="20" maxRequests="128"
     useStatementNamespaces="true" />
   <transactionManager type="JDBC">
     <dataSource type="SIMPLE">
       <property value="${SimpleDriver}" name="JDBC.Driver" />
       <property value="${SimpleUrl}" name="JDBC.ConnectionURL" />
       <property value="${SimpleUsername}" name="JDBC.Username" />
       <property value="${SimplePassword}" name="JDBC.Password" />
       <property value="15" name="Pool.MaximumActiveConnections" />
       <property value="15" name="Pool.MaximumIdleConnections" />
       <property value="1000" name="Pool.MaximumWait" />
     </dataSource>
   </transactionManager>
   <sqlMap resource="res/sqlmap/User.xml" />
   <sqlMap resource="res/sqlmap/Role.xml" />
   <sqlMap resource="res/sqlmap/Permit.xml" />
</sqlMapConfig>

說明:如果要優化數據庫連接池,可以在sql-map-config.xml修改相關參數:

Pool.MaximumActiveConnections 最大連接數

Pool.MaximumIdleConnections 允許的掛起(idle)連接數

Pool.MaximumWait 最長等待的時間

dataSource的type為DHCP的連接配置

<transactionManager type="JDBC">
<dataSource type="DBCP">
  <property name="JDBC.Driver" value="${driver}"/>
  <property name="JDBC.ConnectionURL" value="${url}"/>
  <property name="JDBC.Username" value="${username}"/>
  <property name="JDBC.Password" value="${password}"/>
  <!-- Optional properties below -->
  <property name="Pool.MaximumIdleConnections" value="5"/>
  <property name="Pool.MaximumWait" value="60000"/>
  <!-- Use of the validation query can be problematic.
  If you have difficulty, try without it. -->
  <property name="Pool.ValidationQuery" value="select now"/>
  <property name="Pool.LogAbandoned" value="false"/>
  <property name="Pool.RemoveAbandoned" value="false"/>
  <property name="Pool.RemoveAbandonedTimeout" value="50000"/>
</datasource>
</transactionManager>

說明:上面的${driver}等連接信息定義在另外一個properties文件或XML文件中,同dataSource的type為SIMPLE的連接配置。

dataSource的type為JNDI的連接配置

<transactionManager type="JDBC" >
<dataSource type="JNDI">
  <property name="DataSource" value="java:comp/env/jdbc/jpetstore"/>
</dataSource>
</transactionManager>

說明:前提是在應用服務器中配置了JNDI為jdbc/jpetstore的配置。

3.Hibernate的連接設置

持久層中間件Hibernate,連接數據庫的方式是JDBC,通過配置文件hibernate.cfg.xml配置數據庫連接設置。文件hibernate.cfg.xml的配置示例如下:

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
   "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
   "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
   <hibernate-configuration>
   <session-factory>
     <property name="connection.driver_class">dm.jdbc.driver.DmDriver</property>
     <property name="connection.url">jdbc:dm://localhost:12345/SYSTEM</property>
     <property name="connection.username">SYSDBA</property>
     <property name="connection.password">SYSDBA</property>
     <property name="jdbc.fetch_size">50</property>
     <property name="jdbc.batch_size">100</property>
     <property name="c3p0.min_size">5</property>
     <property name="c3p0.max_size">100</property>
     <property name="c3p0.timeout">600</property>
     <property name="c3p0.max_statements">50</property>
     <property name="hibernate.show_sql">true</property>
     <!-- 注意: DmDialect文件需要達夢另外提供,如有需要可以致電達夢客服 -->
     <property ="dialect">org.hibernate.dialect.DmDialect</property>
     <mapping resource="com/dm/vo/User.hbm.xml" />
  </session-factory>
</hibernate-configuration>

4.Tomcat下配置數據連接池

Tomcat支持通過配置文件%TOMCAT_HOME%confserver.xml來配置數據庫連接,在Tomcat中配置DM的連接,首先需要將DM的JDBC驅動程序DmJdbcDriver.jar復制到%TOMCAT_HOME%commonlib目錄下面;然後修改配置文件server.xml,在元素的最後一個子元素後添加以下子元素內容:

<Context path="/yourApp" reloadable="true" docBase="D:yourApp"
   workDir=" D:yourApp work">
   <Logger className="org.apache.catalina.logger.FileLogger"
   prefix="yourApp_log." suffix=".txt" timestamp="true"/>
   <Resource name="jdbc/DMDB" auth="Container" type="javax.sql.DataSource"/>
   <ResourceParams name="jdbc/DMDB">
   <parameter>
   <name>factory</name>
   <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
   </parameter>
   <parameter>
   <name>maxActive</name>
   <value>50</value>
   </parameter>
   <parameter>
   <name>maxIdle</name>
   <value>20</value>
   </parameter>
   <parameter>
   <name>maxWait</name>
   <value>500</value>
   </parameter>
   <parameter>
   <name>username</name>
   <value>SYSDBA</value>
   </parameter>
   <parameter>
   <name>password</name>
   <value>SYSDBA</value>
   </parameter>
   <parameter>
   <name>driverClassName</name>
   <value>dm.jdbc.driver.DmDriver</value>
   </parameter>
   <parameter>
   <name>url</name>
   <value>jdbc:dm://localhost:12345/SYSTEM</value>
   </parameter>
   </ResourceParams>
   </Context>

在Web應用中可以通過下面的代碼來獲取數據源和數據庫連接

javax.naming.InitialContext context = new javax.naming.InitialContext();
   DataSource ds = (DataSource) context.lookup( "java:/comp/env/jdbc/DMDB" );
   connection = (Connection)ds.getConnection();

在使用Spring、Hibernate等技術的web應用中,可能只需要將java:/comp/env/jdbc/DMDB配置在配置文件中即可。

5.JBoss下JNDI連接

JBoss下配置JNDI需要修改幾個配置文件,需要修改的配置文件如下:

%JBOSS_HOME%serverdefaultconfstandardjaws.xml
   %JBOSS_HOME%serverdefaultconfstandardjbosscmp-jdbc.xml
   %JBOSS_HOME%serverdefaultdeployejb-deployer.xml

另外還要增加一個文件:%JBOSS_HOME %serverdefaultdeployDM-ds.xml

首先需要將DM的JDBC驅動程序DmJdbcDriver.jar復制到 %JBOSS_HOME% serverdefaultlib目錄下面。

修改%JBOSS_HOME% serverdefaultconfstandardjaws.xml,將"java:/DefaultDS"改成"java:/ DMDS "。如下:<datasource>java:/DMDS</datasource>

修改%JBOSS_HOME%serverdefaultconfstandardjbosscmp-jdbc.xml,將"java:/DefaultDS"改成"java:/DM"。如下:<datasource>java:/DMDS</datasource>

修改%JBOSS_HOME%serverdefaultdeployejb-deployer.xml,將DefaultDS修改為DMDS。如下:

<depends optional-attribute-name="DataSource">
   jboss.jca:service=DataSourceBinding,name= DMDS
</depends>

增加文件%JBOSS_HOME% serverdefaultdeployDM-ds.xml,內容如下:

<?xml version="1.0" encoding="UTF-8"?>
<datasources>
  <local-tx-datasource>
   <jndi-name>DMDS</jndi-name>
   <connection-url>jdbc:dm://localhost:12345/SYSTEM</connection-url>
   <driver-class>dm.jdbc.driver.DmDriver</driver-class>
   <user-name>SYSDBA</user-name>
   <password>SYSDBA</password>
   <exception-sorter-class-name>
     org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter
   </exception-sorter-class-name>
   <metadata>
    <type-mapping>DM</type-mapping>
   </metadata>
  </local-tx-datasource>
</datasources>

6.Apusic下數據源的配置

首先需要將DM的JDBC驅動程序DmJdbcDriver.jar復制到% APUSIC_HOME % lib目錄下面。

修改% APUSIC _HOME%configdatasources.xml,將內容修改為:

<datasources>
  <datasource name="DMDS"
   jndi-name="jdbc/DMDS"
   driver-class="dm.jdbc.driver.DmDriver"
   url="jdbc:dm://localhost:12345/SYSTEM" >
   <property name="user" value="SYSDBA"/>
   <property name="password" value="SYSDBA"/>
   <property name="test-before-reused" value="true"/>
   <property name="test-command" value="select now"/>
  </datasource>
</datasources>

總結

以上列出了在常見的web應用服務器和數據庫中間件中,通過JDBC連接達夢數據庫的例子。更詳細的連接方式見web應用服務器和數據庫中間件的文檔。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved