用户操作
[即时聊天] [发私信] [加为好友]
杨丽莉ID:yanglilibaobao
16358次访问,排名7237好友3人,关注者39
yanglilibaobao的文章
原创 17 篇
翻译 3 篇
转载 0 篇
评论 1 篇
最近评论
lifaming15:是DBCP不是DHCP,he~
文章分类
    收藏
      相册
      存档
      软件项目交易
      订阅我的博客
      XML聚合  FeedSky
      订阅到鲜果
      订阅到Google
      订阅到抓虾
      订阅到BlogLines
      订阅到Yahoo
      订阅到GouGou
      订阅到飞鸽
      订阅到Rojo
      订阅到newsgator
      订阅到netvibes

      原创 达梦数据库的连接配置收藏

       | 旧一篇: 达梦 Hibernate Spring集成开发示例

      数据库访问是数据库应用系统中非常重要的组成部分。达梦数据库作为一个通用数据库管理系统,提供了多种数据库访问接口,包括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(new dm.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%\conf\server.xml来配置数据库连接,在Tomcat中配置DM的连接,首先需要将DM的JDBC驱动程序DmJdbcDriver.jar复制到%TOMCAT_HOME%\common\lib目录下面;然后修改配置文件server.xml,在<Host>元素的最后一个子元素后添加以下子元素内容:
      <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% \server\default\conf\standardjaws.xml
      %JBOSS_HOME %\server\default\conf\standardjbosscmp-jdbc.xml
      %JBOSS_HOME %\server\default\deploy\ejb-deployer.xml
      另外还要增加一个文件:%JBOSS_HOME %\server\default\deploy\DM-ds.xml
      首先需要将DM的JDBC驱动程序DmJdbcDriver.jar复制到 %JBOSS_HOME%  \server\default\lib目录下面。
      修改%JBOSS_HOME% \server\default\conf\standardjaws.xml,将"java:/DefaultDS"改成"java:/ DMDS "。如下:<datasource>java:/DMDS</datasource>
      修改%JBOSS_HOME%\server\default\conf\standardjbosscmp-jdbc.xml,将"java:/DefaultDS"改成"java:/DM"。如下:<datasource>java:/DMDS</datasource>
      修改%JBOSS_HOME%\server\default\deploy\ejb-deployer.xml,将DefaultDS修改为DMDS。如下:
      <depends optional-attribute-name="DataSource">
          jboss.jca:service=DataSourceBinding,name= DMDS
      </depends>
      增加文件%JBOSS_HOME% \server\default\deploy\DM-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%\config\datasources.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应用服务器和数据库中间件的文档。 

      来源:达梦数据库       作者:黄洪冰

      发表于 @ 2007年08月08日 11:09:00|评论(loading...)|编辑

       | 旧一篇: 达梦 Hibernate Spring集成开发示例

      评论

      #lifaming15 发表于2007-08-18 09:30:23  IP: 218.88.91.*
      是DBCP不是DHCP,he~
      发表评论  


      当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
      Csdn Blog version 3.1a
      Copyright © yanglilibaobao