1、在ioc容器中配置连接池
我这里用的是阿里的druid连接池,顺便附上依赖
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.9-rc</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.9</version>
</dependency>
bean配置
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="url" value="jdbc:mysql://localhost:3306/springleaning"/>
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</bean>
测试类
@Test
public void test02() throws SQLException {
DataSource bean = ioc.getBean(DataSource.class);
Connection conn=bean.getConnection();
System.out.println(conn);
}
结果
com.mysql.cj.jdbc.ConnectionImpl@2a1edad4
证明拿到连接了,把连接池交由ioc容器管理,方便的很,连接池的bean要是单例哦,不然容易出错的。
如果把连接数据库的信息全部写在bean里面的话,往后bean一多,可能造成管理困难,所以一般都会把连接数据库的配置信息抽取到一个.properties配置文件里,然后这时候就轮到spel表达式上场了。如下
jdbc.properties
jurl=jdbc:mysql://localhost:3306/springleaning
jdriver=com.mysql.cj.jdbc.Driver
jusername=root
jpassword=123456
applicationContext.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">
<context:property-placeholder location="classpath:jdbc.properties" ignore-unresolvable="true"/>
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="clone">
<property name="driverClassName" value="${jdriver}"/>
<property name="url" value="${jurl}"/>
<property name="username" value="${jusername}"/>
<property name="password" value="${jpassword}"/>
</bean>
</beans>
测试连接
@Test
public void test02() throws SQLException {
DataSource bean = ioc.getBean(DataSource.class);
Connection conn=bean.getConnection();
System.out.println(conn);
}
结果
com.mysql.cj.jdbc.ConnectionImpl@2cc44ad
ok没问题,这个最重要的就是context命名空间,使用 <context:property-placeholder location=“classpath:jdbc.properties” ignore-unresolvable=“true”/>可以引入外部配置文件。
如果${这里的变量报红的话},就要检查下头部文件
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"