2019-11-10-spring xml使用bean加载数据库连接池

spring xml使用bean管理数据库连接池

ioc2.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"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="datasource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="user" value="root"></property>
        <property name="password" value="***"></property>
        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/mqtt"></property>
        <property name="driverClass" value="com.mysql.jdbc.Driver"></property>
    </bean>

</beans>

Test.java

public static void main(String[] args) throws BeansException, SQLException {
    String fileName = "ioc2.xml";
    ApplicationContext context = new ClassPathXmlApplicationContext(fileName);
    DataSource datasource =  (DataSource) context.getBean("datasource");
//        System.out.println(datasource.getConnection());
    Connection connection = datasource.getConnection();
    Statement statement = connection.createStatement();
    ResultSet resultSet = statement.executeQuery("select *  from user");
    while (resultSet.next()) {
        int userid = resultSet.getInt("userid");
        System.out.println(userid);
    }
}

使用加载配置文件方式管理数据库连接池

ioc2.xml

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

jdbc.properties

user=root
passwd=***
#jdbcUrl=jdbc:mysql:localhost:3306/mqtt
jdbcUrl=mysql://localhost:3306/mqtt
driverClass=com.mysql.jdbc.Driver

总结

spring通过ioc容器创建并管理数据库连接池,并且使用单例模式,保证了数据库的长时间连接