Jar程序使用MyBatis集成阿里巴巴druid连接池
Posted oneqhw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jar程序使用MyBatis集成阿里巴巴druid连接池相关的知识,希望对你有一定的参考价值。
在写jar程序,而不是web程序的时候,使用mybatis作为持久层,可以集成POOLED连接池,而阿里的druid不能用,确实很郁闷。不过有办法。
首先准备好数据库配置文件
然后对Druid进行一个简单的封装
package org.datasource; import java.sql.SQLException; import java.util.Properties; import javax.sql.DataSource; import org.apache.ibatis.datasource.DataSourceFactory; import com.alibaba.druid.pool.DruidDataSource; /** * 自定义类,用于将druid集成到配置文件中 * @author Administrator * */ public class DruidDataSourceFactory implements DataSourceFactory { private Properties props; @Override public void setProperties(Properties props) { this.props = props; } @Override public DataSource getDataSource() { DruidDataSource dds = new DruidDataSource(); dds.setDriverClassName(this.props.getProperty("driver")); dds.setUrl(this.props.getProperty("url")); dds.setUsername(this.props.getProperty("username")); dds.setPassword(this.props.getProperty("password")); // 其他配置可以根据MyBatis主配置文件进行配置 try { dds.init(); } catch (SQLException e) { e.printStackTrace(); } return dds; } }
封装好之后,可以在mybatis的配置文件中使用了
<?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> <!-- 引用db.properties配置文件 --> <properties resource="resource/db.properties" /> <typeAliases> <typeAlias type="org.datasource.DruidDataSourceFactory" alias="DRUID" /> </typeAliases> <!-- 配置分页插件 --> <plugins> <plugin interceptor="com.github.pagehelper.PageHelper"> <!-- 设置数据库类型 Oracle,mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库 --> <property name="dialect" value="mysql" /> </plugin> </plugins> <!-- development : 开发模式 work : 工作模式 --> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <!-- 配置数据库连接信息 --> <dataSource type="DRUID"> <!-- value属性值引用db.properties配置文件中配置的值 --> <property name="driver" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </dataSource> </environment> </environments> <!-- mybatis的mapper文件,每个xml配置文件对应一个接口 --> <mappers> <mapper resource="*1.xml" /> <mapper resource="*2.xml" /> </mappers> </configuration>
然后就可以使用了
package org.util; import java.io.InputStream; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class MyBatisUtil { /* * 定义配置文件的位置 */ private static final String CONFIG_PATH = "mybatis/mybatis.xml"; /* * 获取数据库访问链接 */ public static SqlSession getSqlSession() { SqlSession session = null; try { InputStream stream = Resources.getResourceAsStream(CONFIG_PATH); // 可以根据配置的相应环境读取相应的数据库环境 // SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(stream, "development"); SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(stream); session = factory.openSession(); } catch (Exception e) { e.printStackTrace(); } return session; } /* * 获取数据库访问链接 */ public static void closeSession(SqlSession session) { session.close(); } public static void main(String[] args) { SqlSession sqlSession = MyBatisUtil.getSqlSession(); Mapper test = sqlSession.getMapper(Mapper.class); System.out.println(test.countByExample(new Example())); MyBatisUtil.closeSession(sqlSession); } }
以上是关于Jar程序使用MyBatis集成阿里巴巴druid连接池的主要内容,如果未能解决你的问题,请参考以下文章
springmvc+mybatis+spring 整合源码项目
springmvc整合mybatis框架源码 bootstrap html5
SpringBoot系列七:SpringBoot 集成 MyBatis事物配置及使用druid 数据源druid 监控使用