# 数据源 **Repository Path**: sflowers/data_source ## Basic Information - **Project Name**: 数据源 - **Description**: 四种数据库连接池 dbcp c3d0 jndi druid - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-06-04 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 数据源 #### 项目介绍 四种数据库连接池 dbcp c3d0 jndi druid #### 使用说明 数据源 数据连接池 dbcp 第一步 pom.xml org.apache.commons commons-dbcp2 2.3.0 commons-logging commons-logging 1.2 org.apache.commons commons-pool2 2.5.0 第二步 package com.db; import org.apache.commons.dbcp2.BasicDataSource; import org.apache.ibatis.datasource.DataSourceFactory; import javax.sql.DataSource; import java.util.Properties; public class DbcpDataFactory implements DataSourceFactory { private BasicDataSource datasource = null; public DbcpDataFactory(){ this.datasource = new BasicDataSource(); } public void setProperties(Properties ps) { datasource.setDriverClassName( ps.getProperty("driverclassname")); datasource.setUsername( ps.getProperty("username")); datasource.setUrl( ps.getProperty("url")); datasource.setPassword( ps.getProperty("password")); datasource.setDefaultAutoCommit( ps.getProperty("defaultautocommit","0").equals("1") ); datasource.setInitialSize( Integer.parseInt(ps.getProperty("initialsize","2")) ); datasource.setMaxIdle( Integer.parseInt(ps.getProperty("maxidle","0"))); } public DataSource getDataSource() { return datasource; } } db.properties db.driver=com.mysql.cj.jdbc.Driver db.url=jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=utf8&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=PRC db.username=root db.password= 第三步 src/main/resources/conf.xml 核心配置文件 @Test public void query() { BookMapper bm = session.getMapper(BookMapper.class); System.out.println(bm.query()); System.out.println(session.getConfiguration().getEnvironment().getDataSource()); } c3p0 pom.xml 第一步 com.mchange c3p0 0.9.5.2 第二步 package com.db; import com.mchange.v2.c3p0.ComboPooledDataSource; import org.apache.ibatis.datasource.unpooled.UnpooledDataSourceFactory; /** * Created by webrx on 2018-06-04. */ public class C3p0DataFactory extends UnpooledDataSourceFactory { public C3p0DataFactory() { this.dataSource = new ComboPooledDataSource(); } } 第三步 修改: 为: 测试: @Test public void sss(){ System.out.println(session.getConfiguration().getEnvironment().getDataSource()); } JNDI是 Java 命名与文件夹接口(Java Naming and Directory Interface), javaee 规范 servlet 窗口提供 1)建立maven web项目 main /java java类 /resources 资源配置文件 /webapp /META-INF/context.xml /WEB-INF/web.xml index.jsp test/java 测试类 pom.xml 4.0.0 com.fz mybatis24 1.0 war mybatis24 UTF-8 1.7 1.7 junit junit 4.12 test javax.servlet javax.servlet-api 3.1.0 provided javax.servlet.jsp jsp-api 2.2 provided javax.servlet jstl 1.2 mysql mysql-connector-java 8.0.11 org.projectlombok lombok 1.16.22 provided org.mybatis mybatis 3.4.6 ${project.artifactId} src/main/java src/test/java src/main/java **/*.xml **/*.properties src/main/resources **/*.xml **/*.properties maven-clean-plugin 3.0.0 maven-resources-plugin 3.0.2 maven-compiler-plugin 3.7.0 maven-surefire-plugin 2.20.1 maven-war-plugin 3.2.0 maven-install-plugin 2.5.2 maven-deploy-plugin 2.8.2 src/main/webapp/META-INF/context.xml src/main/webapp/WEB-INF/web.xml mybatis24 index.html index.jsp src/main/resources/conf.xml mybatis配置文件 druid 第一步 pom.xml com.alibaba druid 1.1.10 第二步编写类 package com.db; import com.alibaba.druid.pool.DruidDataSource; import org.apache.ibatis.datasource.unpooled.UnpooledDataSourceFactory; /** * Created by webrx on 2018-06-04. */ public class DruidDataSourceFactory extends UnpooledDataSourceFactory { public DruidDataSourceFactory() { this.dataSource = new DruidDataSource(); } } 第三步配置 conf.xml src/main/resources/conf.xml 测试代码 package com; import com.fz.mapper.BookMapper; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.After; import org.junit.Before; import org.junit.Test; import java.io.IOException; import java.io.InputStream; public class Demo { protected SqlSession session = null; @Before public void init() { InputStream is = null; try { is = Resources.getResourceAsStream("conf.xml"); } catch (IOException e) { e.printStackTrace(); } SqlSessionFactory sf = new SqlSessionFactoryBuilder().build(is); this.session = sf.openSession(); } @After public void close() { session.commit(); session.close(); } @Test public void query() { BookMapper bm = session.getMapper(BookMapper.class); System.out.println(bm.query()); System.out.println(session.getConfiguration().getEnvironment().getDataSource()); } }