最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring配置數(shù)據(jù)源流程與作用詳解

 更新時間:2022年08月23日 11:19:14   作者:Spring是Java的春天  
這篇文章主要介紹了使用SpringBoot配置多數(shù)據(jù)源的經(jīng)驗(yàn)分享,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

一、數(shù)據(jù)源的作用

  • 數(shù)據(jù)源(連接池)是提高程序性能出現(xiàn)的
  • 事先實(shí)例化數(shù)據(jù)源,初始化部分連接資源
  • 使用連接資源時從數(shù)據(jù)源中獲取
  • 使用完畢后將連接資源歸還給數(shù)據(jù)源

常見的數(shù)據(jù)源(連接池):DBCP、C3P0、BoneCP、Druid等

在JavaSE中的JDBC就是通過數(shù)據(jù)源獲取數(shù)據(jù)庫中的數(shù)據(jù)

二、數(shù)據(jù)源手動創(chuàng)建

1、數(shù)據(jù)源的開發(fā)步驟

導(dǎo)入數(shù)據(jù)源的坐標(biāo)和數(shù)據(jù)庫的坐標(biāo)

    <dependency>
      <groupId>c3p0</groupId>
      <artifactId>c3p0</artifactId>
      <version>0.9.1.2</version>
    </dependency>
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.1.10</version>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.39</version>
    </dependency>

創(chuàng)建數(shù)據(jù)源對象

設(shè)計數(shù)據(jù)源的基本連接數(shù)據(jù)

使用數(shù)據(jù)源獲取連接資源和歸還連接資源

2、手動創(chuàng)建c3p0數(shù)據(jù)源

@Test
    public void test01() throws PropertyVetoException, SQLException {
        //創(chuàng)建數(shù)據(jù)源
        ComboPooledDataSource dataSource = new ComboPooledDataSource();
        //設(shè)置數(shù)據(jù)庫連接參數(shù)
        dataSource.setDriverClass("com.mysql.jdbc.Driver");
        dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/atm");
        dataSource.setUser("root");
        dataSource.setPassword("123456");
        //獲取連接對象
        Connection connection = dataSource.getConnection();
        System.out.println(connection);
        connection.close();
    }

3、手動創(chuàng)建druid數(shù)據(jù)源

    @Test
    public void test02() throws SQLException {
        //創(chuàng)建數(shù)據(jù)源
        DruidDataSource dataSource = new DruidDataSource();
        //設(shè)置數(shù)據(jù)庫連接參數(shù)
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/atm");
        dataSource.setUsername("root");
        dataSource.setPassword("123456");
        //獲取連接對象
        DruidPooledConnection connection = dataSource.getConnection();
        System.out.println(connection);
        connection.close();
    }

4、通過properties配置文件創(chuàng)建連接池

上述手動創(chuàng)建數(shù)據(jù)源的過程中顯而易見出現(xiàn)一個問題,那就是代碼的維護(hù)性較差,倘若需要修改數(shù)據(jù)庫的數(shù)據(jù),當(dāng)java程序進(jìn)行編寫就變成了字節(jié)碼文件,修改字節(jié)碼文件是比較困難的,不利于系統(tǒng)的維護(hù)

通過使用properties配置文件來創(chuàng)建連接池就可以較好地解決此類問題

在resources文件夾下創(chuàng)建相對應(yīng)的properties配置文件,在里面編寫數(shù)據(jù)庫連接參數(shù)

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/atm
jdbc.username=root
jdbc.password=123456

在java程序中獲取properties配置文件的數(shù)據(jù),并給它設(shè)置數(shù)據(jù)庫連接參數(shù)

    @Test
    public void test3() throws Exception {
        //加載類路徑下的jdbc.properties
        ResourceBundle jdbc = ResourceBundle.getBundle("jdbc");
        //創(chuàng)建數(shù)據(jù)源
        ComboPooledDataSource dataSource = new ComboPooledDataSource();
        //設(shè)置數(shù)據(jù)庫連接參數(shù)
        dataSource.setDriverClass(jdbc.getString("jdbc.driver"));
        dataSource.setJdbcUrl(jdbc.getString("jdbc.url"));
        dataSource.setUser(jdbc.getString("jdbc.username"));
        dataSource.setPassword(jdbc.getString("jdbc.password"));
        //獲取連接對象
        Connection connection = dataSource.getConnection();
        System.out.println(connection);
        connection.close();
    }

5、通過spring配置數(shù)據(jù)源

在spring框架中,spring框架的容器可以完成DataSource的創(chuàng)建

  • DataSource有無參數(shù)構(gòu)造方法,而spring默認(rèn)是通過無參構(gòu)造方法實(shí)例化對象
  • DataSource要想使用通過set方法來設(shè)置數(shù)據(jù)庫連接信息,spring是可以通過set方法進(jìn)行字符串的注入
<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="123456"/>
</bean>

配置完spring的配置文件的,就可以在java程序中獲取bean容器返回的DataSource對象

@Test
    public void test4() throws SQLException {
        ApplicationContext app = new ClassPathXmlApplicationContext("applicatonContext.xml");
        DataSource dataSource = (DataSource) app.getBean("dataSource");
        Connection connection = dataSource.getConnection();
        System.out.println(connection);
        connection.close();
    }

6、通過spring抽取jdbc配置文件

在實(shí)際開發(fā)過程中,并不習(xí)慣在spring配置文件中把數(shù)據(jù)庫的相關(guān)參數(shù)寫死,而是將它寫在properties配置文件中,spring配置文件通過抽取properties配置文件從而獲取數(shù)據(jù)庫相關(guān)參數(shù)

要先抽取properties配置文件的相關(guān)數(shù)據(jù),首先要引入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="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>

erty name=“jdbcUrl” value=" j d b c . u r l " / > < p r o p e r t y n a m e = " u s e r " v a l u e = " {jdbc.url}"/> <property name="user" value=" jdbc.url"/><propertyname="user"value="{jdbc.username}"/>

> **相關(guān)參數(shù)就像javaweb中的EL表達(dá)是那些編寫,即可獲取相對應(yīng)的數(shù)據(jù)**

到此這篇關(guān)于Spring配置數(shù)據(jù)源流程與作用詳解的文章就介紹到這了,更多相關(guān)Spring配置數(shù)據(jù)源內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java 照片對比功能的實(shí)現(xiàn)

    Java 照片對比功能的實(shí)現(xiàn)

    這篇文章主要介紹了Java 照片比對功能實(shí)現(xiàn)類的示例代碼,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下
    2020-12-12
  • Mybatis-plus如何在xml中傳入自定義的SQL語句

    Mybatis-plus如何在xml中傳入自定義的SQL語句

    這篇文章主要介紹了Mybatis-plus如何在xml中傳入自定義的SQL語句問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • java多線程CyclicBarrier的使用案例,讓線程起步走

    java多線程CyclicBarrier的使用案例,讓線程起步走

    這篇文章主要介紹了java多線程CyclicBarrier的使用案例,讓線程起步走!具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • 詳解JAVA中implement和extends的區(qū)別

    詳解JAVA中implement和extends的區(qū)別

    這篇文章主要介紹了詳解JAVA中implement和extends的區(qū)別的相關(guān)資料,extends是繼承接口,implement是一個類實(shí)現(xiàn)一個接口的關(guān)鍵字,需要的朋友可以參考下
    2017-08-08
  • Java 實(shí)戰(zhàn)范例之進(jìn)銷存管理系統(tǒng)的實(shí)現(xiàn)

    Java 實(shí)戰(zhàn)范例之進(jìn)銷存管理系統(tǒng)的實(shí)現(xiàn)

    讀萬卷書不如行萬里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+vue+Springboot+ssm+mysql+maven+redis實(shí)現(xiàn)一個前后端分離的進(jìn)銷存管理系統(tǒng),大家可以在過程中查缺補(bǔ)漏,提升水平
    2021-11-11
  • 詳解mybatis多對一關(guān)聯(lián)查詢的方式

    詳解mybatis多對一關(guān)聯(lián)查詢的方式

    這篇文章主要給大家介紹了關(guān)于mybatis多對一關(guān)聯(lián)查詢的相關(guān)資料,文中將關(guān)聯(lián)方式以及配置方式介紹的很詳細(xì),需要的朋友可以參考下
    2021-06-06
  • Java微信公眾平臺開發(fā)(15) 微信JSSDK的使用

    Java微信公眾平臺開發(fā)(15) 微信JSSDK的使用

    這篇文章主要為大家詳細(xì)介紹了Java微信公眾平臺開發(fā)第十五步,微信JSSDK的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • RabbitMQ實(shí)現(xiàn)消息可靠性傳遞過程講解

    RabbitMQ實(shí)現(xiàn)消息可靠性傳遞過程講解

    消息的可靠性傳遞是指保證消息百分百發(fā)送到消息隊列中去,這篇文章主要介紹了RabbitMQ實(shí)現(xiàn)消息可靠性傳遞過程,感興趣想要詳細(xì)了解可以參考下文
    2023-05-05
  • Spring JdbcTemplate執(zhí)行數(shù)據(jù)庫操作詳解

    Spring JdbcTemplate執(zhí)行數(shù)據(jù)庫操作詳解

    JdbcTemplate是Spring框架自帶的對JDBC操作的封裝,目的是提供統(tǒng)一的模板方法使對數(shù)據(jù)庫的操作更加方便、友好,效率也不錯,這篇文章主要介紹了Spring JdbcTemplate執(zhí)行數(shù)據(jù)庫操作,需要的朋友可以參考下
    2022-10-10
  • Java使用同步方法解決銀行取錢的安全問題案例分析

    Java使用同步方法解決銀行取錢的安全問題案例分析

    這篇文章主要介紹了Java使用同步方法解決銀行取錢的安全問題,結(jié)合具體案例形式分析了java同步方法實(shí)現(xiàn)多線程安全操作銀行取錢問題,需要的朋友可以參考下
    2019-09-09

最新評論

岳池县| 泗水县| 中宁县| 长垣县| 大厂| 吕梁市| 民乐县| 民和| 共和县| 维西| 教育| 扶绥县| 罗源县| 通河县| 长阳| 东明县| 炎陵县| 遵化市| 贞丰县| 阜新市| 孟津县| 沈阳市| 卫辉市| 云安县| 辛集市| 邯郸县| 肇东市| 磐安县| 喜德县| 徐闻县| 石阡县| 汶川县| 汉寿县| 盐源县| 正镶白旗| 遵义市| 中卫市| 沂源县| 射洪县| 长宁县| 宜兰市|