`
HeartArea
  • 浏览: 11104 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

mybatis配置第三方连接池

阅读更多

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来创建数据连接池,并以SQL Server为例进行配置和使用。 首先,我们需要理解MyBatis和Druid的基本概念。MyBatis是一个轻量级的ORM(对象关系映射)框架,它可以将...

    MyBatis 通过第三方DBPC数据连接池连接SQL server 简单例子

    本例子旨在展示如何在MyBatis中配置并使用DBPC作为数据连接池来连接SQL Server数据库。首先,我们需要在项目中引入相关的依赖库。对于MyBatis,我们需要添加MyBatis的核心库和SqlSessionFactoryBuilder,而对于DBPC...

    对mybatis3 基本环境搭建优化(二)

    3. **分页查询**:MyBatis可以通过自定义插件或者PageHelper等第三方库实现分页,避免一次性加载大量数据。 4. **错误处理**:捕获并处理MyBatis抛出的异常,确保程序的健壮性。 总结,MyBatis3的环境搭建优化涉及...

    SpringBoot多数据源配置(方式一:配置多个mapper扫描不同的包路径实现多数据源配置).docx

    示例中使用的是Spring Boot 2.3.5.RELEASE版本,以及一些常用的依赖,如MyBatis Plus、Druid连接池等。 ```xml &lt;groupId&gt;org.springframework.boot &lt;artifactId&gt;spring-boot-starter-web &lt;groupId&gt;...

    springboot+mybatis3+druid+postgresql

    它集成了大量常用的第三方库配置(如JPA、RabbitMQ、Quartz等),开发者只需通过少量配置甚至无需配置即可启动项目。此外,Spring Boot提供了内嵌的Tomcat或Jetty服务器,使得开发和部署更便捷。 **MyBatis3** ...

    MyBatis 3 中文参考文档

    MyBatis是一个流行的Java持久层框架,它支持定制化SQL、存储过程以及...开发者也可以集成第三方缓存框架,如Ehcache,来提供分布式缓存支持。缓存机制可以显著提高应用的性能,特别是在数据库访问非常频繁的情况下。

    springboot+mybatis+druid.zip

    它集成了大量常用的第三方库配置,如JPA、RabbitMQ、MongoDB、WebSocket等,开发者只需通过添加starter依赖就可以实现“开箱即用”。 二、MyBatis介绍 MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程...

    尚硅谷 4月份MyBatis视频教程(国内首套:源码级讲授的MyBatis视频)最新更新

    在实际项目中,通常会使用第三方的数据库连接池如 Druid 或 C3P0 来管理数据库连接,提高资源利用率。在 MyBatis 中,可以通过配置文件设置数据源类型为 POOLED,从而集成这些连接池。 #### 2. 分页插件 对于大型...

    mybatis-3-user-guide

    - plugins:允许第三方插件扩展MyBatis。 - environments:配置MyBatis使用一个或多个数据源和事务管理器。 - transactionManager:管理所有事务的规则。 - dataSource:定义数据库连接池。 - mappers:指定映射器...

    Spring+mybatis环境搭建

    * org.springframework.orm-3.0.6.RELEASE:提供了对第三方的 ORM 框架的整合 * org.springframework.oxm-3.0.6.RELEASE:提供了对 Object/XML 的映射支持 * org.springframework.test-3.0.6.RELEASE:提供了对 ...

    分布式事务操作之Spring+JTA+mybatis源码

    - **Atomikos、Bitronix等JTA实现**:这些第三方库实现了JTA规范,可以用来管理分布式事务。 6. **配置Spring JTA事务**:在Spring的配置文件中,你需要配置 `UserTransaction` 和 `TransactionManager`,并启用...

    spring、mybatis开发jar包

    除此之外,可能还会包含一些第三方库的jar包,如: 1. log4j或logback:日志记录框架,用于调试和问题追踪。 2. slf4j:简单日志门面,提供统一的日志API。 3. mysql-connector-java:MySQL数据库的JDBC驱动,用于...

    springboot + mybatis(通用mapper) + druid多数据源

    它集成了大量常用的第三方库配置,如JPA、RabbitMQ、MongoDB等,让开发者可以“开箱即用”。在本项目中,SpringBoot作为基础框架,提供自动配置、内嵌Tomcat服务器等功能,使得项目部署变得简单。 MyBatis是一个...

    springboot-mybatis-分页

    它集成了大量常用的第三方库配置,如JPA、Maven、Thymeleaf等,使得开发者能够快速地“上手并运行”一个独立的、生产级别的基于Spring的应用。SpringBoot通过“约定优于配置”的方式,大大减少了项目的初始化配置...

    springboot+mybatis+druid+mysql DEMO

    它集成了大量常用的第三方库配置,如JPA、Thymeleaf、WebSocket等,使得开发者能够快速创建独立的、生产级别的基于Spring的应用程序。在本DEMO中,SpringBoot作为核心框架,负责应用的启动、依赖管理和组件扫描。 2...

    Mybatis Jars And Config.rar

    4. 其他可能的依赖库,如 guava、slf4j-api 等,它们是 Mybatis 运行时所需的第三方库。 其次,"Config" 文件夹可能包含以下关键配置文件: 1. mybatis-config.xml:这是 Mybatis 的全局配置文件,定义了数据源、...

    包括连接池,分页,过滤器,监听器等,实现了登陆,查询,分页等

    在JSP中,通常使用SQL的LIMIT和OFFSET或者ROWNUM来实现分页,也可以借助第三方库如MyBatis的PageHelper进行更便捷的分页操作。 过滤器(Filter)是Servlet规范的一部分,它允许开发者在请求到达目标Servlet或JSP...

Global site tag (gtag.js) - Google Analytics