jdbc加载配置文件xml 和 properties
hikri 和 druid
public class DButils {
//使用properti配置文件
@Test
public void test1() throws Exception{
//加载properties配置文件
Properties properties=new Properties();
properties.load(DButils.class.getClassLoader().getResourceAsStream("jdbc.properties"));
//获取配置文件中的数据
String username = properties.getProperty("mysql.username");
String password = properties.getProperty("mysql.password");
String url = properties.getProperty("mysql.url");
String drivername = properties.getProperty("mysql.drivername");
//2,3可以省略
//2.实例化Driver,可以省略,java中存在spi功能,自动扫描jar包下META-INF下的services,
// 自动加载类
Class clazz = Class.forName(drivername);
Driver driver=(Driver) clazz.newInstance();
//3.注册驱动,可以省略,sql.Driver中已经写了这句
DriverManager.registerDriver(driver);
//获取连接
Connection connection = DriverManager.getConnection(url, username, password);
System.out.println(connection);
}
//使用xml配置文件
@Test
public void test2() throws Exception{
//使用dom4j加载xml文件
//new 一个SAXReader对象,加载配置文件,生成Document对象
SAXReader saxReader=new SAXReader();
InputStream inputStream = DButils.class.getClassLoader().getResourceAsStream("jdbc.xml");
Document document = saxReader.read(inputStream);
Element root = document.getRootElement();//获取根节点
//根据根节点获取子节点
String username = root.element("username").getTextTrim();
String password = root.element("password").getTextTrim();
String url = root.element("url").getTextTrim();
String drivername = root.element("drivername").getTextTrim();
//2,3可以省略
//2.实例化Driver,可以省略,java中存在spi功能,自动扫描jar包下META-INF下的services,
// 自动加载类
Class clazz = Class.forName(drivername);
Driver driver=(Driver) clazz.newInstance();
//3.注册驱动,可以省略,sql.Driver中已经写了这句
DriverManager.registerDriver(driver);
//获取连接
Connection connection = DriverManager.getConnection(url, username, password);
System.out.println(connection);
}
//C3P0,DBCP数据库连接池已过时
//德鲁伊数据库连接池
@Test
public void Test3() throws Exception {
//初始化配置文件
Properties properties=new Properties();
properties.load(DButils.class.getClassLoader().getResourceAsStream("druidData.properties"));
//初始化德鲁伊数据库连接池
DruidDataSource druidDataSource = new DruidDataSource();
druidDataSource.configFromPropety(properties);
/*DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);
Connection connection1 = dataSource.getConnection();*/
//利用数据库连接池工厂类获取数据库连接池
DruidPooledConnection connection = druidDataSource.getConnection();
System.out.println(connection);
}
//hikari数据库连接池
@Test
public void Test4() throws Exception{
//初始化配置文件
Properties properties = new Properties();
properties.load(DButils.class.getClassLoader().getResourceAsStream("hikari.properties"));
//初始化hikari数据库连接池,1.初始化hikari配置 2.加载配置
HikariConfig hikariConfig = new HikariConfig(properties);
HikariDataSource hikariDataSource = new HikariDataSource(hikariConfig);
//获取连接
Connection connection = hikariDataSource.getConnection();
System.out.println(connection);
}
}
jdbc.properties
mysql.username=root
mysql.password=root
mysql.url=jdbc:mysql://127.0.0.1:3306/stu
mysql.drivername=com.mysql.jdbc.Driver
jdbc.xml
<?xml version="1.0" encoding="utf-8" ?>
<jdbc>
<username>root</username>
<password>root</password>
<url>jdbc:mysql://127.0.0.1:3306/stu</url>
<drivername>com.mysql.jdbc.Driver</drivername>
</jdbc>
配置mybatis框架的数据源
public class MyDruidDataSource implements DataSourceFactory {
private Properties properties;
@Override
public void setProperties(Properties properties) {
this.properties = properties;
}
@Override
public DataSource getDataSource() {
DruidDataSource druidDataSource = new DruidDataSource();
druidDataSource.configFromPropety(properties);
return druidDataSource;
}
}
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>
<properties resource="db.properties"></properties>
<settings>
<!--日志-->
<!-- <setting name="logImpl" value="LOG4J"/>-->
<!--开启二级缓存-->
<setting name="cacheEnabled" value="true"/>
</settings>
<typeAliases>
<package name="com.jsu.lzj.vo"/>
</typeAliases>
<environments default="druid">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="com.jsu.lzj.dbc.HikariDataSource">
<property name="driverClassName" value="${driver}"/>
<property name="jdbcUrl" value="${url}"/>
<property name="username" value="${user}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
<environment id="druid">
<transactionManager type="JDBC"/>
<dataSource type="com.jsu.lzj.dbc.MyDruidDataSource">
<property name="druid.driverClassName" value="${driver}"/>
<property name="druid.url" value="${url}"/>
<property name="druid.username" value="${user}"/>
<property name="druid.password" value="${password}"/>
</dataSource>
</environment>
</environments>
</configuration>