`

Spring框架DateSource注入

阅读更多
定义个测试类用来获取链接
import javax.sql.DataSource; 
import java.sql.Connection; 
                                                                                
public class DataBean { 
    private DataSource dataSource; 
                                                                                
    public void setDataSource(DataSource dataSource) { 
        this.dataSource = dataSource; 
    } 
                                                                                
    public void testDataSource() { 
        try { 
            Connection connection = dataSource.getConnection(); 
            if(connection != null) 
                System.out.println("test ok!"); 
        } 
        catch (Exception e) { 
            e.printStackTrace(); 
        } 
    } 
}
Spring提供了org.springframework.jdbc.datasource.DriverManagerDataSource來取得DataSource。该类是在Spring-dao.jar中.如果只有Spring-core,需要导入,如果有Spring.jar无需导入。而且还有有MYsql数据库的驱动jar
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans.dtd"> 
<beans> 
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
        <property name="driverClassName"> 
            <value>com.mysql.jdbc.Driver</value> 
        </property> 
        <property name="url"> 
            <value>jdbc:mysql://localhost:3306/TestDB</value> 
        </property> 
        <property name="username"> 
            <value>caterpillar</value> 
        </property> 
        <property name="password"> 
            <value>123456</value> 
        </property> 
    </bean> 
                                                                                
    <bean id="dataBean" class="com.baidu.DataBean"> 
        <property name="dataSource"> 
            <ref bean="dataSource"/> 
        </property> 
    </bean> 
</beans>
测试是否连接到数据库
BeanDefinitionRegistry reg = new DefaultListableBeanFactory(); 
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(reg); 
                                                                                
reader.loadBeanDefinitions(new ClassPathResource("bean.xml"));; 
                                                                                
BeanFactory bf = (BeanFactory) reg; 
DataBean dataBean = (DataBean) bf.getBean("dataBean"); 
dataBean.testDataSource();
测试成功!
关于org.springframework.jdbc.datasource.DriverManagerDataSource并没有提供连接池功能,只能做个连接的测试。应该换上org.apache.commons.dbcp.BasicDataSource,提供了数据库连接池功能。
导入commons-dbcp.jar,commons-pool.jar,commons-collections.jar
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans.dtd"> 
<beans> 
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> 
        <property name="driverClassName"> 
            <value>com.mysql.jdbc.Driver</value> 
        </property> 
        <property name="url"> 
            <value>jdbc:mysql://localhost:3306/TestDB</value> 
        </property> 
        <property name="username"> 
            <value>caterpillar</value> 
        </property> 
        <property name="password"> 
            <value>123456</value> 
        </property> 
    </bean> 
    <bean id="dataBean" class="com.baidu.DataBean"> 
        <property name="dataSource"> 
            <ref bean="dataSource"/> 
        </property> 
    </bean> 
</beans>
如果想使用JDBC进行数据库操作可以用:
org.springframework.jdbc.datasource.DataSourceUtils
Connection conn = DataSourceUtils.getConnection(dataSource);
這樣作的好處是,所有的SQLException都被Spring的DataAccessException子類CannotGetJdbcConnectionException包裝起來。您可以獲得更多的資訊,並保證存儲層的可移值性。
关闭连接方式DataSourceUtils.closeConnectionIfNecessry(connection, dataSource);

 

分享到:
评论

相关推荐

    简单spring增删改查

    简单spring增删改查 #db connection parameters driver=oracle.jdbc.driver.OracleDriver url=jdbc:oracle:thin:@localhost:1521:xe user=system pwd=cs2513179 # datesource parameters initsize=1 maxsize=3

    DBCP-DataSource

    DBCP-DataSource是Java应用中常用的数据库连接池组件,通过与Spring框架的集成,可以方便地管理数据库连接,提升应用性能。了解其配置和使用方法,对于优化数据库操作和提升系统效率至关重要。同时,根据具体需求,...

    mysql和Oracle的多数据源配置demo

    SpringBoot是由Spring Framework衍生出的轻量级开发框架,它简化了Spring的初始设置和配置,使开发过程更为便捷。在SpringBoot中配置多数据源,可以方便地管理和切换不同的数据库,提高系统的灵活性和可扩展性。 要...

    springmvc+mybatis实现动态切换数据库

    完整的Demo结合了springmvc——mybatis,实现了工具类文件上传下载,结合了Redis的初步使用,并且能使用threadlocal实现数据库动态切换,很适合初建项目做参考,适合初学者使用。

    SQL标签大库

    ”sqlQuery” var=”name” [scope=”page|request|session|application”] [dataSource=”dateSource”] [maxRow=”maxRow”] [startRow=”starRow”]/&gt; 标签 标签用于更新数据,语法如下: ”sqlQuery” ...

    C#编程实现连接ACCESS数据库实例详解

    在C#编程中,连接和操作ACCESS数据库是常见的任务,特别是在开发桌面应用时。本教程将详细介绍如何使用C#连接并操作ACCESS数据库,包括显示数据和读取数据的基本步骤。 首先,我们需要导入必要的命名空间`System....

    三层架构的学院网站

    网站采用三层架构层次分明,易于维护,另有多次运用用户控件,DataList的分页功能,select,UPdata ,delete等的实现,只需更改datalist的datesource即可使用,另有通过保存图片的路径来管理图片。

Global site tag (gtag.js) - Google Analytics