以下操作均在已安装达梦数据库的前提下进行。
1、准备:Dm7JdbcDriver18.jar (..\安装目录\drivers\jdbc)、DmDialect-for-hibernate4.0.jar (..\安装目录\drivers\jdbc\dialect)
2、将准备好的jar放到项目lib文件夹下,并rebuild项目
3、在spring-mvc-druid.xml配置连接达梦数据库的数据源,选用druid数据源:
<!-- 多数据源配置 -->
<bean id="dataSource" class="com.upenv.sys.core.datasource.DynamicDataSource">
<property name="targetDataSources">
<map key-type="java.lang.String">
<entry value-ref="sysDataSource" key="sysDataSource"></entry>
<!-- 达梦数据源 -->
<entry value-ref="dmDataSource" key="dmDataSource"></entry>
</map>
</property>
<!-- 默认使用的数据源 -->
<property name="defaultTargetDataSource" ref="sysDataSource"></property>
</bean>
<bean name="dmDataSource" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
<property name="driverClassName" value="dm.jdbc.driver.DmDriver" />
<property name="url" value="jdbc:dm://127.0.0.1:5236/dm_dbo" />
<property name="username" value="xxxxxx" />
<property name="password" value="xxxxxx" />
<!-- 初始化连接大小 -->
<property name="initialSize" value="5" />
<!-- 连接池最大使用连接数量 -->
<property name="maxActive" value="10" />
<!-- 连接池最大空闲 -->
<property name="maxIdle" value="10" />
<!-- 连接池最小空闲 -->
<property name="minIdle" value="5" />
<!-- 获取连接最大等待时间 -->
<property name="maxWait" value="60000" />
<property name="validationQuery" value="SELECT 1 FROM DUAL" />
<property name="testOnBorrow" value="false" />
<property name="testOnReturn" value="false" />
<property name="testWhileIdle" value="true" />
<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis" value="10000" />
<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
<property name="minEvictableIdleTimeMillis" value="25200000" />
<!-- 打开removeAbandoned功能 -->
<property name="removeAbandoned" value="true" />
<!-- 1800秒,也就是30分钟 -->
<property name="removeAbandonedTimeout" value="1800" />
<!-- 关闭abanded连接时输出错误日志 -->
<property name="logAbandoned" value="true" />
<!-- 开启Druid的监控统计功能 -->
<property name="filters" value="stat" />
<!--<property name="filters" value="mergeStat" /> -->
<!-- Oracle连接是获取字段注释 -->
<property name="connectProperties">
<props>
<prop key="remarksReporting">true</prop>
</props>
</property>
</bean>
4、编写DaMengTest.java进行测试:
@Controller
@RequestMapping("dmController")
public class DaMengTest {
@Autowired
BaseServiceI baseService;
@RequestMapping(params="test")
public void viewInfoList(String mlid,String showButton) {
try {
DataSourceContextHolder.setDbType("dmDataSource");
String sql = " select * from table_name where rownum < 11 ";
List<Map<String, Object>> queryForList = this.baseService.getJdbcTemplate().queryForList(sql);
if(queryForList != null && queryForList.size() > 0) {
for(Map<String,Object> map : queryForList) {
System.out.println(map.get("ID"));
System.out.println(map.get("RYXM"));
}
}else {
System.out.println("没有查到数据");
}
DataSourceContextHolder.clearDbType();
} catch (Exception e) {
e.printStackTrace();
}
}
}