# 数据源
**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());
}
}