Spring - 06配置数据源
(1)数据源(连接池)的作用
数据源(连接池)是为了提高程序性能出现的。
事先实例化数据源,初始化部分连接资源;
使用连接资源时从数据源中获取;
使用完毕后,将连接资源归还给数据源;
常见的数据源(连接池): DBCP、C3P0、BoneCP、Druid等
(2)数据源配置使用
(2.1)pom文件添加GAV坐标,引入jar包
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.0.10.RELEASE</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.43</version> </dependency> <dependency> <groupId>c3p0</groupId> <artifactId>c3p0</artifactId> <version>0.9.1.1</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.10</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency>
(2.2)测试一: 手动创建 c3p0 数据源
@Test public void test1() throws Exception{ ComboPooledDataSource dataSource = new ComboPooledDataSource(); dataSource.setDriverClass("com.mysql.jdbc.Driver"); dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/dev"); dataSource.setUser("root"); dataSource.setPassword("Mysql2020"); Connection connection = dataSource.getConnection(); System.out.println(connection); connection.close(); }
(2.3)测试二:手动创建 Druid数据源
@Test public void test2() throws Exception{ DruidDataSource dataSource = new DruidDataSource(); dataSource.setDriverClassName("com.mysql.jdbc.Driver"); dataSource.setUrl("jdbc:mysql://localhost:3306/dev"); dataSource.setUsername("root"); dataSource.setPassword("Mysql2020"); Connection connection = dataSource.getConnection(); System.out.println(connection); connection.close(); }
(2.4)测试三:手动创建c3p0数据源(加载properties配置文件)
@Test public void test3() throws Exception{ // 测试手动创建 c3p0 数据源(加载properties配置文件) ResourceBundle rb = ResourceBundle.getBundle("jdbc"); String driver = rb.getString("jdbc.driver"); String url = rb.getString("jdbc.url"); String username = rb.getString("jdbc.username"); String password = rb.getString("jdbc.password"); ComboPooledDataSource dataSource = new ComboPooledDataSource(); dataSource.setDriverClass(driver); dataSource.setJdbcUrl(url); dataSource.setUser(username); dataSource.setPassword(password); Connection connection = dataSource.getConnection(); System.out.println(connection); connection.close(); }
(2.5)测试四:Spring容器产生数据源对象(DataSource的创建交由Spring容器去完成)
@Test public void test4() throws Exception { ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml"); DataSource dataSource = app.getBean(DataSource.class); Connection connection = dataSource.getConnection(); System.out.println(connection); }
<context:property-placeholder location="classpath:jdbc.properties"/>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<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>
com.mchange.v2.c3p0.impl.NewProxyConnection@1460a8c0
引入context的命名空间和约束路径
命令空间: xmlns:context="http://www.springframework.org/schema/context"
约束路径: http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd