Spring02第二 spring数据源配置

1.Spring配置数据源

1.1 数据源(连接池)的作用

•数据源(连接池)是提高程序性能如出现的

•事先实例化数据源,初始化部分连接资源

•使用连接资源时从数据源中获取

•使用完毕后将连接资源归还给数据源

常见的数据源(连接池):DBCP、C3P0、BoneCP、Druid等

 

1.2数据源的开发步骤

①导入数据源的坐标和数据库驱动坐标

②创建数据源对象

③设置数据源的基本连接数据

④使用数据源获取连接资源和归还连接资源

 

(第一步)在applicationContext.xml配置c3p0或者druid的坐标

<!--C3P0连接池-->

<dependency>

<groupId>c3p0</groupId>

<artifactId>c3p0</artifactId>

<version>0.9.1.2</version>

</dependency>

<!--Druid连接池-->

<dependency>

<groupId>com.alibaba</groupId>

 

(第二部)在applicationContext.xml 导入mysql数据库驱动坐标

<!--mysql驱动-->

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>5.1.39</version>

</dependency>

<artifactId>druid</artifactId>

<version>1.1.10</version>

</dependency>

1.2.1 最基础的获取数据连接的方法

 

(一)、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("root");

//获得连接对象

Connection connection = dataSource.getConnection();

System.out.println(connection);}

 

(二)、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("root");

//获得连接对象

Connection connection = dataSource.getConnection();

System.out.println(connection);}

1.2.2 jdbc.properties配置数据库信息

jdbc.driver=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/test

jdbc.username=root

jdbc.password=root

(一)jdbc.properties配置数据信息,C3p0测试代码

@Test

public void testC3P0ByProperties() throws Exception {

//加载类路径下的jdbc.properties

ResourceBundle rb = ResourceBundle.getBundle("jdbc");

ComboPooledDataSource dataSource = new ComboPooledDataSource();

dataSource.setDriverClass(rb.getString("jdbc.driver"));

dataSource.setJdbcUrl(rb.getString("jdbc.url"));

dataSource.setUser(rb.getString("jdbc.username"));

dataSource.setPassword(rb.getString("jdbc.password"));

Connection connection = dataSource.getConnection();System.out.println(connection);}

 

1.2.3  Spring容器管理数据库信息

Spring配置数据源可以将DataSource的创建权交由Spring容器去完成

DataSource有无参构造方法,而Spring默认就是通过无参构造方法实例化对象的

DataSource要想使用需要通过set方法设置数据库连接信息,而Spring可以通过set方法进行字符串注入

 

(一)在applicationContext.xml配置dataSource(xml直接配置数据库信息)

下面配置的是C3p0的连接池,也可以配置Druid连接池

<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/test"/>

<property name="user" value="root"/><property name="password" value="root"/></bean>

(二)applicationContext.xml加载jdbc.properties配置文件获得连接信息

(1)首先,需要引入context命名空间和约束路径:

命名空间:xmlns:context="http://www.springframework.org/schema/context"

约束路径:http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context.xsd

(2)xml中配置jdbc.properties

<context:property-placeholder location="classpath:jdbc.properties"/>

(3)配置dataSource

<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>

 

 

(三)测试从Spring容器中获取数据源

//加载Spring配置文件,创建spring容器

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");

DataSource dataSource = (DataSource) applicationContext.getBean("dataSource");

Connection connection = dataSource.getConnection();System.out.println(connection);

 

1.2.4 Spring容器加载properties文件

<context:property-placeholder location="xx.properties"/><property name="" value="${key}"/>

 

posted @ 2021-12-27 16:01  烁妈妈  阅读(98)  评论(0)    收藏  举报