mybatis配置JDBCPool连接池,废话不说,直接上文。
1.创建一个自己的数据源工厂类实现 org.apache.ibatis.datasource.DataSourceFactory
添加属性
注意属性要用连接池提供的数据源对象:
org.apache.tomcat.jdbc.pool.DataSource dataSource;
/**
* JDBCPOOL的实现类
*
* @author Frank
* @date 2013-1-5 JDBCPoolDataSourceFactory.java
*/
public class JDBCPoolDataSourceFactory implements DataSourceFactory {
private static final String DRIVER_PROPERTY_PREFIX = "driver.";
private static final int DRIVER_PROPERTY_PREFIX_LENGTH = DRIVER_PROPERTY_PREFIX.length();
// 定义数据源
private DataSource dataSource;
/**
* 构造器
*/
public JDBCPoolDataSourceFactory() {
dataSource = new DataSource();
}
/**
* 获取JDBCPOOL数据源
*/
@Override
public DataSource getDataSource() {
return dataSource;
}
/**
* 对JDBCPOOL属性值进行设置
*/
@Override
public void setProperties(Properties properties) {
// 设置数据库驱动类名称
Properties driverProperties = new Properties();
MetaObject metaDataSource = MetaObject.forObject(dataSource);
for (Object key : properties.keySet()) {
String propertyName = ( String ) key;
if (propertyName.startsWith(DRIVER_PROPERTY_PREFIX)) {
String value = properties.getProperty(propertyName);
driverProperties.setProperty(propertyName.substring(DRIVER_PROPERTY_PREFIX_LENGTH), value);
} else if (metaDataSource.hasSetter(propertyName)) {
String value = ( String ) properties.get(propertyName);
Object convertedValue = convertValue(metaDataSource, propertyName, value);
metaDataSource.setValue(propertyName, convertedValue);
} else {
throw new DataSourceException("Unknown DataSource property: " + propertyName);
}
}
if (driverProperties.size() > 0) {
metaDataSource.setValue("driverProperties", driverProperties);
}
}
private Object convertValue(MetaObject metaDataSource, String propertyName, String value) {
Object convertedValue = value;
Class< ? > targetType = metaDataSource.getSetterType(propertyName);
if (targetType == Integer.class || targetType == int.class) {
convertedValue = Integer.valueOf(value);
} else if (targetType == Long.class || targetType == long.class) {
convertedValue = Long.valueOf(value);
} else if (targetType == Boolean.class || targetType == boolean.class) {
convertedValue = Boolean.valueOf(value);
}
return convertedValue;
}
2.完成mybatis数据源配置文件mybatis-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="com.shdy.db.JDBCPoolDataSourceFactory">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@10.21.17.11:1521:XX"/>
<property name="username" value="XXXX"/>
<property name="password" value="XXXX"/>
<property name="testWhileIdle" value="true" />
<property name="testOnBorrow" value="true" />
<property name="testOnReturn" value="false" />
<property name="validationQuery" value="SELECT 1 FROM SYSIBM.SYSDUMMY1" />
<property name="validationInterval" value="30000" />
<property name="timeBetweenEvictionRunsMillis" value="30000" />
<property name="maxActive" value="50" />
<property name="maxIdle" value="30" />
<property name="minIdle" value="10" />
<property name="maxWait" value="5000" />
<property name="initialSize" value="5" />
<property name="removeAbandonedTimeout" value="36000" />
<property name="removeAbandoned" value="true" />
<property name="logAbandoned" value="true" />
<property name="minEvictableIdleTimeMillis" value="30000" />
<property name="jmxEnabled" value="true" />
<property name="jdbcInterceptors"
value="org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/shdy/db/sql/User.xml"/>
</mappers>
</configuration>
注意: <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
分享到:
相关推荐
本教程将详细介绍如何在MyBatis中利用第三方库Druid来创建数据连接池,并以SQL Server为例进行配置和使用。 首先,我们需要理解MyBatis和Druid的基本概念。MyBatis是一个轻量级的ORM(对象关系映射)框架,它可以将...
本例子旨在展示如何在MyBatis中配置并使用DBPC作为数据连接池来连接SQL Server数据库。首先,我们需要在项目中引入相关的依赖库。对于MyBatis,我们需要添加MyBatis的核心库和SqlSessionFactoryBuilder,而对于DBPC...
3. **分页查询**:MyBatis可以通过自定义插件或者PageHelper等第三方库实现分页,避免一次性加载大量数据。 4. **错误处理**:捕获并处理MyBatis抛出的异常,确保程序的健壮性。 总结,MyBatis3的环境搭建优化涉及...
它集成了大量常用的第三方库配置(如JPA、RabbitMQ、Quartz等),开发者只需通过少量配置甚至无需配置即可启动项目。此外,Spring Boot提供了内嵌的Tomcat或Jetty服务器,使得开发和部署更便捷。 **MyBatis3** ...
MyBatis是一个流行的Java持久层框架,它支持定制化SQL、存储过程以及...开发者也可以集成第三方缓存框架,如Ehcache,来提供分布式缓存支持。缓存机制可以显著提高应用的性能,特别是在数据库访问非常频繁的情况下。
它集成了大量常用的第三方库配置,如JPA、RabbitMQ、MongoDB、WebSocket等,开发者只需通过添加starter依赖就可以实现“开箱即用”。 二、MyBatis介绍 MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程...
示例中使用的是Spring Boot 2.3.5.RELEASE版本,以及一些常用的依赖,如MyBatis Plus、Druid连接池等。 ```xml <groupId>org.springframework.boot <artifactId>spring-boot-starter-web <groupId>...
在实际项目中,通常会使用第三方的数据库连接池如 Druid 或 C3P0 来管理数据库连接,提高资源利用率。在 MyBatis 中,可以通过配置文件设置数据源类型为 POOLED,从而集成这些连接池。 #### 2. 分页插件 对于大型...
- plugins:允许第三方插件扩展MyBatis。 - environments:配置MyBatis使用一个或多个数据源和事务管理器。 - transactionManager:管理所有事务的规则。 - dataSource:定义数据库连接池。 - mappers:指定映射器...
* org.springframework.orm-3.0.6.RELEASE:提供了对第三方的 ORM 框架的整合 * org.springframework.oxm-3.0.6.RELEASE:提供了对 Object/XML 的映射支持 * org.springframework.test-3.0.6.RELEASE:提供了对 ...
- **Atomikos、Bitronix等JTA实现**:这些第三方库实现了JTA规范,可以用来管理分布式事务。 6. **配置Spring JTA事务**:在Spring的配置文件中,你需要配置 `UserTransaction` 和 `TransactionManager`,并启用...
除此之外,可能还会包含一些第三方库的jar包,如: 1. log4j或logback:日志记录框架,用于调试和问题追踪。 2. slf4j:简单日志门面,提供统一的日志API。 3. mysql-connector-java:MySQL数据库的JDBC驱动,用于...
它集成了大量常用的第三方库配置,如JPA、RabbitMQ、MongoDB等,让开发者可以“开箱即用”。在本项目中,SpringBoot作为基础框架,提供自动配置、内嵌Tomcat服务器等功能,使得项目部署变得简单。 MyBatis是一个...
它集成了大量常用的第三方库配置,如JPA、Maven、Thymeleaf等,使得开发者能够快速地“上手并运行”一个独立的、生产级别的基于Spring的应用。SpringBoot通过“约定优于配置”的方式,大大减少了项目的初始化配置...
它集成了大量常用的第三方库配置,如JPA、Thymeleaf、WebSocket等,使得开发者能够快速创建独立的、生产级别的基于Spring的应用程序。在本DEMO中,SpringBoot作为核心框架,负责应用的启动、依赖管理和组件扫描。 2...
4. 其他可能的依赖库,如 guava、slf4j-api 等,它们是 Mybatis 运行时所需的第三方库。 其次,"Config" 文件夹可能包含以下关键配置文件: 1. mybatis-config.xml:这是 Mybatis 的全局配置文件,定义了数据源、...
在JSP中,通常使用SQL的LIMIT和OFFSET或者ROWNUM来实现分页,也可以借助第三方库如MyBatis的PageHelper进行更便捷的分页操作。 过滤器(Filter)是Servlet规范的一部分,它允许开发者在请求到达目标Servlet或JSP...