日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Spring本地?cái)?shù)據(jù)庫連接配置詳解(spring連接本地?cái)?shù)據(jù)庫配置文件)

Spring Framework是面向企業(yè)應(yīng)用開發(fā)的Java開發(fā)框架,它提供了很多功能豐富的組件和工具,使得開發(fā)人員可以快速地構(gòu)建高效穩(wěn)定的應(yīng)用程序。其中,數(shù)據(jù)庫連接配置是一個(gè)非常關(guān)鍵的部分,它直接影響著應(yīng)用程序的性能和穩(wěn)定性。本文將詳細(xì)介紹Spring本地?cái)?shù)據(jù)庫連接配置的一些重要特性和技巧,希望能對開發(fā)人員有所幫助。

創(chuàng)新互聯(lián)成都企業(yè)網(wǎng)站建設(shè)服務(wù),提供成都網(wǎng)站建設(shè)、成都網(wǎng)站制作網(wǎng)站開發(fā),網(wǎng)站定制,建網(wǎng)站,網(wǎng)站搭建,網(wǎng)站設(shè)計(jì),成都響應(yīng)式網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì)師打造企業(yè)風(fēng)格網(wǎng)站,提供周到的售前咨詢和貼心的售后服務(wù)。歡迎咨詢做網(wǎng)站需要多少錢:028-86922220

1. 數(shù)據(jù)庫驅(qū)動

在進(jìn)行數(shù)據(jù)庫連接配置之前,首先需要導(dǎo)入相應(yīng)的數(shù)據(jù)庫驅(qū)動。Spring自身并不提供數(shù)據(jù)庫連接池,而是使用第三方的實(shí)現(xiàn)。常見的數(shù)據(jù)庫連接池有:HikariCP、C0、DBCP2等。這里我們以HikariCP為例進(jìn)行講解。

在使用HikariCP時(shí),首先需要在pom.xml文件中添加如下依賴:

“`xml

com.zaxxer

HikariCP

3.4.5

“`

2. 數(shù)據(jù)源配置

在Spring中,我們使用DataSource對象來管理數(shù)據(jù)庫連接。DataSource是一個(gè)接口,它定義了一系列獲取連接、釋放連接的方法。對于使用HikariCP進(jìn)行連接池管理的情況下,我們需要配置HikariDataSource對象。

“`xml

“`

在上面的xml配置中,我們配置了一個(gè)id為dataSource的HikariDataSource對象。其中,driverClassName、jdbcUrl、username和password是連接數(shù)據(jù)庫的必要參數(shù)。maximumPoolSize表示連接池中更大的連接數(shù)。這里設(shè)置為10,可以根據(jù)實(shí)際情況進(jìn)行調(diào)整。

在配置中,我們使用了${}占位符,這是為了將配置文件中的變量值注入到配置中。需要在項(xiàng)目中定義一個(gè)properties文件,將配置參數(shù)以鍵值對的方式進(jìn)行定義,如下:

“`properties

driverClassName=com.mysql.cj.jdbc.Driver

jdbcUrl=jdbc:mysql://localhost:3306/test?useSSL=false&characterEncoding=utf8&serverTimezone=UTC

username=root

password=root

“`

在代碼中,使用該方式獲取用戶配置值:

“`java

@PropertySource(“classpath:db.properties”)

@Configuration

public class AppConfig {

@Value(“${driverClassName}”)

private String driverClassName;

@Value(“${jdbcUrl}”)

private String url;

@Value(“${username}”)

private String username;

@Value(“${password}”)

private String password;

……

}

“`

3. JdbcTemplate

JdbcTemplate是Spring提供的一個(gè)簡單易用的JDBC操作工具類。它封裝了JDBC的操作過程,提供了很多操作數(shù)據(jù)庫的方法。在使用JdbcTemplate時(shí),需要將Datasource對象傳入其中。

“`java

@Configuration

public class AppConfig {

@Autowired

private DataSource dataSource;

@Bean

public JdbcTemplate jdbcTemplate() {

return new JdbcTemplate(dataSource);

}

}

“`

通過上面的配置,我們可以在代碼中注入JdbcTemplate對象,然后使用它進(jìn)行數(shù)據(jù)庫的操作。例如:

“`java

@Autowired

private JdbcTemplate jdbcTemplate;

public void insertUser(User user) {

String sql = “INSERT INTO user(name,age,eml) VALUES(?,?,?)”;

jdbcTemplate.update(sql, user.getName(), user.getAge(), user.getEml());

System.out.println(“User added to the database, id is:”+user.getId());

}

“`

4. 事務(wù)管理

在進(jìn)行數(shù)據(jù)庫操作時(shí),往往需要考慮事務(wù)的一致性問題。Spring提供了事務(wù)管理的功能,它可以幫助我們處理事務(wù)的提交、回滾和傳播等問題,使得數(shù)據(jù)庫操作更加的可靠和安全。

在使用Spring事務(wù)管理時(shí),需要進(jìn)行如下的配置:

“`java

@Configuration

@EnableTransactionManagement

public class AppConfig {

@Autowired

private DataSource dataSource;

@Bean

public JdbcTemplate jdbcTemplate() {

return new JdbcTemplate(dataSource);

}

@Bean

public PlatformTransactionManager transactionManager() {

return new DataSourceTransactionManager(dataSource);

}

}

“`

上面的配置中,我們使用@EnableTransactionManagement注解開啟事務(wù)管理的功能。在之前的JdbcTemplate配置中,我們已經(jīng)將DataSource對象注入到容器中,這里再次使用它創(chuàng)建一個(gè)DataSourceTransactionManager對象,并將其注入到容器中。在進(jìn)行事務(wù)管理的操作時(shí),可以將它注入到需要進(jìn)行事務(wù)控制的方法中。

5.

本文簡單介紹了Spring本地?cái)?shù)據(jù)庫連接配置的一些重要特性和技巧,包括數(shù)據(jù)庫驅(qū)動的導(dǎo)入、數(shù)據(jù)源配置、JdbcTemplate的使用、事務(wù)管理等。通過本文的學(xué)習(xí),相信讀者已經(jīng)掌握了如何在Spring中進(jìn)行數(shù)據(jù)庫操作的技巧。在具體的開發(fā)過程中,讀者可以根據(jù)實(shí)際需要進(jìn)行相應(yīng)的配置和調(diào)整。祝大家愉快地開發(fā)!

相關(guān)問題拓展閱讀:

  • 如何使用c3p0+spring連接oracle數(shù)據(jù)庫
  • spring 怎么動態(tài)配置 連接不同的數(shù)據(jù)庫.oracle 或是mysql

如何使用c3p0+spring連接oracle數(shù)據(jù)庫

?

使用c3p0+spring連接oracle數(shù)據(jù)庫的方法及配置:

1、C0數(shù)據(jù)源與Hibernate一同發(fā)布,需要包c(diǎn)3p0-0.9.0.4.jar。

C0的配置,xml文件片段如下:

bean>

2、C0有以下配置屬性,通過這些屬性,可以對數(shù)據(jù)源進(jìn)行各種有效的控制:

acquireIncrement:當(dāng)連接池中的連接用完散唯跡時(shí),C0一次性創(chuàng)建新連接的數(shù)目;

acquireRetryAttempts:定義在從數(shù)據(jù)庫獲取新連接失敗后重復(fù)嘗試獲取的次數(shù),默認(rèn)為30;

acquireRetryDelay:兩次連接中間隔時(shí)間,單位毫秒,默認(rèn)為1000;

autoCommitOnClose:連接關(guān)閉時(shí)默認(rèn)將所有未提交的操作回滾。默認(rèn)為false;

automaticTestTable: C0將建一張名為Test的空表,并使用其自帶的查詢語句進(jìn)行測試。如果定義了這個(gè)參數(shù),那么屬性preferredTestQuery將被忽略。 你 不能在這張Test表上進(jìn)行任何操作,它將中為C0測試所用,默認(rèn)為null;

breakAfterAcquireFailure: 獲取連接失敗將會引起所有等待獲取連接的線程拋出異常。但是數(shù)據(jù)源仍有效保山埋留,并在下次調(diào) 用getConnection()的時(shí)候繼續(xù)嘗試獲取連 接。如果設(shè)為沖并true,那么在嘗試獲取連接失敗后該數(shù)據(jù)源將申明已斷開并永久關(guān)閉。默認(rèn)為 false;

checkoutTimeout:當(dāng)連接池用完時(shí)客戶端調(diào)用getConnection()后等待獲取新連接的時(shí)間,超時(shí)后將拋出SQLException,如設(shè)為0則無限期等待。單位毫秒,默認(rèn)為0;

connectionTesterClassName: 通過實(shí)現(xiàn)ConnectionTester或QueryConnectionTester的類來測試連接,類名需設(shè)置為全限定名。默認(rèn)為 com.mchange.v2.C0.impl.DefaultConnectionTester;

idleConnectionTestPeriod:隔多少秒檢查所有連接池中的空閑連接,默認(rèn)為0表示不檢查;

initialPoolSize:初始化時(shí)創(chuàng)建的連接數(shù),應(yīng)在minPoolSize與maxPoolSize之間取值。默認(rèn)為3;

maxIdleTime:更大空閑時(shí)間,超過空閑時(shí)間的連接將被丟棄。為0或負(fù)數(shù)則永不丟棄。默認(rèn)為0;

maxPoolSize:連接池中保留的更大連接數(shù)。默認(rèn)為15;

maxStatements: JDBC的標(biāo)準(zhǔn)參數(shù),用以控制數(shù)據(jù)源內(nèi)加載的PreparedStatement數(shù)量。但由于預(yù)緩存的Statement屬 于單個(gè)Connection 而不是整個(gè)連接池。所以設(shè)置這個(gè)參數(shù)需要考慮到多方面的因素,如果maxStatements與 maxStatementsPerConnection

均為0,則緩存被關(guān)閉。默認(rèn)為0;

maxStatementsPerConnection:連接池內(nèi)單個(gè)連接所擁有的更大緩存Statement數(shù)。默認(rèn)為0;

numHelperThreads:C0是異步操作的,緩慢的JDBC操作通過幫助進(jìn)程完成。擴(kuò)展這些操作可以有效的提升性能,通過多線程實(shí)現(xiàn)多個(gè)操作同時(shí)被執(zhí)行。默認(rèn)為3;

preferredTestQuery:定義所有連接測試都執(zhí)行的測試語句。在使用連接測試的情況下這個(gè)參數(shù)能顯著提高測試速度。測試的表必須在初始數(shù)據(jù)源的時(shí)候就存在。默認(rèn)為null;

propertyCycle: 用戶修改系統(tǒng)配置參數(shù)執(zhí)行前最多等待的秒數(shù)。默認(rèn)為300;

testConnectionOnCheckout: 因性能消耗大請只在需要的時(shí)候使用它。如果設(shè)為true那么在每個(gè)connection提交的時(shí)候都 將校驗(yàn)其有效性。建議使用 idleConnectionTestPeriod或automaticTestTable

等方法來提升連接測試的性能。默認(rèn)為false;

testConnectionOnCheckin:如果設(shè)為true那么在取得連接的同時(shí)將校驗(yàn)連接的有效性。默認(rèn)為false。

  明確一點(diǎn):

僅使咐孫用C0+Spring還無法連接到Oracle數(shù)據(jù)庫。連接Oracle數(shù)據(jù)庫需要緩臘提供Oracle的JDBC實(shí)現(xiàn),因此,首先需要下載ojdbc的jar包

然衡哪鏈后,在spring配置文件中配置c3p0,來連接Oracle數(shù)據(jù)庫了。

1. 首先是jdbc.properties屬性文件的編寫,便于數(shù)據(jù)庫移植:

datasource.driverClassName=oracle.jdbc.driver.OracleDriver

datasource.url=jdbc:oracle:thin:@10.6.1.11:1521:student

datasource.username=zs

datasource.password=zs

datasource.defaultAutoCommit=true 

hibernate.dialect=org.hibernate.dialect.Oracle9Dialect

#當(dāng)臘拿連接池中的連接耗盡的時(shí)候c3p0一次同時(shí)獲取的連接數(shù)。Default: 3

c3p0.acquireIncrement=5

#初始化時(shí)獲取三個(gè)連接,取值應(yīng)在minPoolSize與maxPoolSize之間。Default: 3 

c3p0.initialPoolSize=10

#每60秒檢查所有連接池中的空閑連接。Default: 0 

c3p0.idleConnectionTestPeriod=600

#-連接池中保留的最小連接數(shù)。

c3p0.minPoolSize=5

#連接池中保留的更大連接數(shù)。Default: 15 

c3p0.maxPoolSize=50

#JDBC的標(biāo)準(zhǔn)參數(shù),用以控制數(shù)據(jù)源內(nèi)加載的PreparedStatements數(shù)量。但由于預(yù)緩存的statements

#屬于單個(gè)connection而不是整個(gè)連接池。所以設(shè)置這個(gè)參數(shù)需要考慮到多方面的因素。

#如果maxStatements與maxStatementsPerConnection均為0,則緩存被關(guān)閉。Default: 0

c3p0.maxStatements=100

#c3p0是異步操作的,緩慢的JDBC操作通過幫助進(jìn)程完成。擴(kuò)展這些操作可以有效的提升性能

#通過多線程實(shí)現(xiàn)多個(gè)操作同時(shí)被執(zhí)行。Default: 3

c3p0.numHelperThreads=10

#更大空閑時(shí)間,60秒內(nèi)未使用則連接被丟棄。若為0則永不丟棄。Default: 0 

c3p0.maxIdleTime=600

#hibernate.dialect=org.hibernate.dialect.SQLServerDialect

hibernate.jdbc.batch_size=25

hibernate.jdbc.fetch_size=50

hibernate.show_sql=true

hibernate.connection.release_mode=after_transaction

2. 其次是spring配置文件的數(shù)據(jù)源配置:

  /WEB-INF/classes/conf/jdbc/jdbc.properties

  ${datasource.driverClassName}

 譽(yù)州

  ${datasource.url}

  ${datasource.username}

  ${datasource.password}

  ${c3p0.acquireIncrement}

    

  ${c3p0.initialPoolSize}

  ${c3p0.minPoolSize}

  ${c3p0.minPoolSize}

     

  ${c3p0.maxPoolSize}

  ${c3p0.idleConnectionTestPeriod}

  ${c3p0.maxStatements}

     

spring 怎么動態(tài)配置 連接不同的數(shù)據(jù)庫.oracle 或是mysql

不知道你伏舉說的動態(tài)配置是怎樣的

—–spring配置文件–

db.properties

//把driver改成oracle的,下面也相應(yīng)改成oracle的信息就能把數(shù)據(jù)源設(shè)置為oracle

jdbc.driver=com.mysql.jdbc.Driver  

jdbc.url=jdbc:

jdbc.user=root

jdbc.password=

dbcp.maxActive=10

dbcp.maxIdle=10

朝三暮四2?;屨鹗?/p>

spring連接本地?cái)?shù)據(jù)庫配置文件的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于spring連接本地?cái)?shù)據(jù)庫配置文件,Spring本地?cái)?shù)據(jù)庫連接配置詳解,如何使用c3p0+spring連接oracle數(shù)據(jù)庫,spring 怎么動態(tài)配置 連接不同的數(shù)據(jù)庫.oracle 或是mysql的信息別忘了在本站進(jìn)行查找喔。

成都創(chuàng)新互聯(lián)科技有限公司,是一家專注于互聯(lián)網(wǎng)、IDC服務(wù)、應(yīng)用軟件開發(fā)、網(wǎng)站建設(shè)推廣的公司,為客戶提供互聯(lián)網(wǎng)基礎(chǔ)服務(wù)!
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡單好用,價(jià)格厚道的香港/美國云服務(wù)器和獨(dú)立服務(wù)器。創(chuàng)新互聯(lián)——四川成都IDC機(jī)房服務(wù)器托管/機(jī)柜租用。為您精選優(yōu)質(zhì)idc數(shù)據(jù)中心機(jī)房租用、服務(wù)器托管、機(jī)柜租賃、大帶寬租用,高電服務(wù)器托管,算力服務(wù)器租用,可選線路電信、移動、聯(lián)通機(jī)房等。


網(wǎng)站名稱:Spring本地?cái)?shù)據(jù)庫連接配置詳解(spring連接本地?cái)?shù)據(jù)庫配置文件)
分享路徑:http://www.5511xx.com/article/coiceii.html