第一步:导入依赖
pom.xml
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
第二步:数据库配置
dbconfig.properties
jdbc.username=root
jdbc.password=123456
jdbc.jdbcUrl=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8
jdbc.driverClass=com.mysql.jdbc.Driver
第三步:配置文件
application.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.2.xsd">
<!-- 数据库连接池作为单实例是最好的,一个项目就一个连接池
连接池里面管理很多连接——可以让Spring帮我们创建连接池对象-->
<!-- <bean class="com.mchange.v2.c3p0.ComboPooledDataSource">-->
<!-- <property name="user" value="root"/>-->
<!-- <property name="password" value="123456"/>-->
<!-- <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test"/>-->
<!-- <property name="driverClass" value="com.mysql.jdbc.Driver"/>-->
<!-- </bean>-->
<!-- 引用外部属性文件★依赖context名称空间-->
<!-- 加载外部配置文件——固定写法classpath:表示引用类路径下的一个资源
-->
<context:property-placeholder location="classpath:application/dbconfig.properties"/>
<!-- 建立数据源-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<!-- ${key}动态去除配置文件的key-->
<!-- username是Spring的key中的一个关键字
为防止与配置文件中的key关键字冲突
配置文件的取名加前缀-->
<!-- 数据库用户-->
<property name="user" value="${jdbc.username}"/>
<!-- 数据库密码-->
<property name="password" value="${jdbc.password}"/>
<!-- 数据库地址,注意编码乱码-->
<property name="jdbcUrl" value="${jdbc.jdbcUrl}"/>
<!-- 数据库驱动-->
<property name="driverClass" value="${jdbc.driverClass}"/>
</bean>
</beans>
第四步:启动测试
IOCTest.java
package com.sggu.spring.ioc02;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import javax.sql.DataSource;
import java.sql.SQLException;
public class IOCTest {
ApplicationContext ioc = new ClassPathXmlApplicationContext("application/application.xml");
@Test
public void test01() throws SQLException {
//1.从容器中拿到连接池
//DataSource bean = (DataSource) ioc.getBean("dataSource");
//2.按照类型获取组件,可以获取到这个类型下的所有实现类子类等等……
// DataSource bean = ioc.getBean(DataSource.class);
// System.out.println(bean.getConnection());
DataSource bean = (DataSource) ioc.getBean("dataSource");
System.out.println(bean.getConnection());
}
}
数据库连接成功!