Day04-IOC和DI注解开发
1.Spring配置数据源
1.1 数据源(也叫连接池)的作用
1.2 数据源的开发步骤
- 导入数据源的坐标和数据库驱动坐标
- 创建数据源对象
- 设置数据源的基本连接数据
- 使用数据源获取连接资源和归还连接资源
1.3 数据源的手动创建
1.导入c3p0和druid的坐标
<!--c3p0连接池 -->
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
<!--druid连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.20</version>
</dependency>
2.创建c3p0连接池
@Test
public void testC3P0() throws Exception{
ComboPooledDataSource dataSource = new ComboPooledDataSource();
dataSource.setDriverClass("com.mysql.jdbc.Driver");
dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/test");
dataSource.setUser("root");
dataSource.setPassWord("admin");
Connection connection = dataSource.getConnection();
System.out.println(connection);
}
创建Druid连接池
@Test
public void testDruid() throws Exception{
DruidDataSource dataSource = new DruidDataSource;
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/test");
dataSource.setUsername("root");
dataSource.setPassword("admin");
Connection connection = dataSource.getConnection();
System.out.println(connection);
}
3.提取jdbc.properties配置文件
jdbc.driver=com.mysql.jdbc.Driver
jdbc,url=jdbc:mysql://localhost:3306/test
jdbc.username=root
jdbc.password=admin
4.读取jdbc.properties配置文件创建连接池
@Test
public void testC3P0ByProperties() throws Exception{
ResourceBundle rb = ResourceBundle.getBundle("jdbc");
ComboPooledDataSource dataSource = new ComboPoolDataSource();
dataSource.setDriverClass("com.mysql.jdbc.Driver");
dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/test");
dataSource.setUser("root");
dataSource.setPassWord("admin");
Connection connection = dataSource.getConnection();
System.out.println(connection);
}
1.4 Spring配置数据源
可以将DataSource的创建权交有Spring容器去完成
- DataSource有无参构造方法,而Spring默认就是通过无参构造方法实例化方法
- DataSource要想使用需要通过set方法设置数据库连接信息,而Spring可以通过set方法进行字符串注入
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="com.mysql.jdbc.Driver"/>
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/jdbctemplate"/>
<property name="user" value="root"/>
<property name="password" value="admin"/>
</bean>
测试从容器中获取数据源
ApplicationContext applicationContext = new ClassPathXMLApplicationContext("applicationContext.xml");
DataSource dataSource = (DataSource)applicationContext.getBean("dataSource");
Connection connection = dataSource.getConnection();
System.out.println(connection);
1.5抽取jdbc配置文件
applicationContext.xml加载jdbc.properties配置文件获取连接信息
首先,需要引入context命名空间和约束路径:
- 命名空间:xmlns:context=“http://www.springframework.org/schema/context”
- 约束路径:http://www.springframework.org/schema/context
? http://www.springframework.org/schema/context/spring-context.xsd
<context:property-placeholder location="classpath:jdbc.properties"/>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPoolDataSource">
<property name="driverClass" value="${jdbc.driver}"/>
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="user" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
1.6知识要点
Spring容器加载properties文件
<context:property-placeholder location="xx.properties"/>
<property name="" value="${key}"
|