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%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应用服务器和数据库中间件的文档。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
OpenWorld18大会:Ellison宣布数据库的搜寻和破坏任务
在旧金山举行的甲骨文OpenWorld 2018大会中,甲骨文首席技术官(CTO)兼创始人Larry Elli […]
-
ObjectRocket着力发展Azure MongoDB服务
MongoDB吸引了微软公司的注意力,微软公司计划针对运行于该公司2017年发布的Azure Cosmos D […]
-
Azure数据湖分析从U-SQL中获得提升
大数据的发展已经让许多精通SQL的数据专业人员不知所措。微软的U-SQL编程语言试图让这些人回归数据查询游戏。
-
数据库和数据仓库的区别在哪儿?
目前,大部分数据仓库还是用数据库进行管理。数据库是整个数据仓库环境的核心,是数据存放的地方和提供对数据检索的支持。