當前位置:首頁 » 數據倉庫 » spring獲取資料庫連接
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

spring獲取資料庫連接

發布時間: 2023-03-29 10:12:35

❶ 如何使用c3p0+spring連接oracle資料庫

使用c3p0+spring連接oracle資料庫的方法及配置:
1、C3P0數據源與Hibernate一同發布,需要包c3p0-0.9.0.4.jar。
C3P0的配置,xml文件片段如下:
<bean
id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">

<property name="driverClass" value=" ${driver}"/>

<property name="jdbcUrl" value="${url}"/>

<property name="user" value="${username}"/>

<property name="password" value="${password}"/>
bean>
2、C3P0有以下配置屬性,通過這些屬性,可以對數據源進行各種有效的控制:
acquireIncrement:當連接池中的連接用完散唯跡時,C3P0一次性創建新連接的數目;
acquireRetryAttempts:定義在從資料庫獲取新連接失敗後重復嘗試獲取的次數,默認為30;
acquireRetryDelay:兩次連接中間隔時間,單位毫秒,默認為1000;
autoCommitOnClose:連接關閉時默認將所有未提交的操作回滾。默認為false;
automaticTestTable: C3P0將建一張名為Test的空表,並使用其自帶的查詢語句進行測試。如果定義了這個參數,那麼屬性preferredTestQuery將被忽略。 你 不能在這張Test表上進行任何操作,它將中為C3P0測試所用,默認為null;
breakAfterAcquireFailure: 獲取連接失敗將會引起所有等待獲取連接的線程拋出異常。但是數據源仍有效保山埋留,並在下次調 用getConnection()的時候繼續嘗試獲取連 接。如果設為沖並true,那麼在嘗試獲取連接失敗後該數據源將申明已斷開並永久關閉。默認為 false;
checkoutTimeout:當連接池用完時客戶端調用getConnection()後等待獲取新連接的時間,超時後將拋出sqlException,如設為0則無限期等待。單位毫秒,默認為0;
connectionTesterClassName: 通過實現ConnectionTester或QueryConnectionTester的類來測試連接,類名需設置為全限定名。默認為 com.mchange.v2.C3P0.impl.DefaultConnectionTester;
idleConnectionTestPeriod:隔多少秒檢查所有連接池中的空閑連接,默認為0表示不檢查;
initialPoolSize:初始化時創建的連接數,應在minPoolSize與maxPoolSize之間取值。默認為3;
maxIdleTime:最大空閑時間,超過空閑時間的連接將被丟棄。為0或負數則永不丟棄。默認為0;
maxPoolSize:連接池中保留的最大連接數。默認為15;
maxStatements: JDBC的標准參數,用以控制數據源內載入的PreparedStatement數量。但由於預緩存的Statement屬 於單個Connection 而不是整個連接池。所以設置這個參數需要考慮到多方面的因素,如果maxStatements與 maxStatementsPerConnection
均為0,則緩存被關閉。默認為0;
maxStatementsPerConnection:連接池內單個連接所擁有的最大緩存Statement數。默認為0;
numHelperThreads:C3P0是非同步操作的,緩慢的JDBC操作通過幫助進程完成。擴展這些操作可以有效的提升性能,通過多線程實現多個操作同時被執行。默認為3;
preferredTestQuery:定義所有連接測試都執行的測試語句。在使用連接測試的情況下這個參數能顯著提高測試速度。測試的表必須在初始數據源的時候就存在。默認為null;
propertyCycle: 用戶修改系統配置參數執行前最多等待的秒數。默認為300;
testConnectionOnCheckout: 因性能消耗大請只在需要的時候使用它。如果設為true那麼在每個connection提交的時候都 將校驗其有效性。建議使用 idleConnectionTestPeriod或automaticTestTable
等方法來提升連接測試的性能。默認為false;
testConnectionOnCheckin:如果設為true那麼在取得連接的同時將校驗連接的有效性。默認為false。

❷ 如何用spring 調用資料庫連接使用jdbc

一 ,使用spring的jdbc
1.在myeclipse添加spring jar包,
添加Spring2.5 Core/AOP/ JDBC Library
2.在applicationContext.xml中,配置jdbc bean:

❸ 在Spring框架中獲取連接池可以有哪些方式

1.讓tomcat容器啟動創建資料庫連跡掘接池姿歲核2.在某個項目中關聯資料庫連接池,3.取得資料庫連接池並使用。使用包括,當拿到資料庫連接後,可以通過2種方式來使用,1.使用jstl的標簽雀攔,2.封裝成返回connection的方法。

❹ 如何使用c3p0+spring連接oracle資料庫

1. 首先是jdbc.properties屬性文件的編寫,便於資料庫移植:
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
以下是c3p0的參數灶沖兆配置:
#當連接池中的連接耗盡的時候c3p0一次同時獲取的連接數。Default: 3
c3p0.acquireIncrement=5
#初始化時獲取三個連接,取值應在minPoolSize與maxPoolSize之間。Default: 3
c3p0.initialPoolSize=10
#每60秒檢查所有連接池中的空閑連接。Default: 0
c3p0.idleConnectionTestPeriod=600
#-連接池中保留的最小連接數。
c3p0.minPoolSize=5
#連接池中保留的最大連接數。Default: 15
c3p0.maxPoolSize=50
#JDBC的標准隱租參數,用以控制數據源內載入的PreparedStatements數量。但由於預緩存的statements
#屬於單個connection而不是整個連接池。所以設置這個參數需要考慮到多方面的因素。
#如果maxStatements與maxStatementsPerConnection均為0,則緩存被關閉。Default: 0
c3p0.maxStatements=100
#c3p0是非同步操作的,緩慢的JDBC操作通過幫助進程完成。擴展這些操作可以有效的提判備升性能
#通過多線程實現多個操作同時被執行。Default: 3
c3p0.numHelperThreads=10
#最大空閑時間,60秒內未使用則連接被丟棄。若為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配置文件的數據源配置:
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>/WEB-INF/classes/conf/jdbc/jdbc.properties</value>
</property>
</bean>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close" dependency-check="none">
<property name="driverClass">
<value>${datasource.driverClassName}</value>
</property>
<property name="jdbcUrl">
<value>${datasource.url}</value>
</property>
<property name="user">
<value>${datasource.username}</value>
</property>
<property name="password">
<value>${datasource.password}</value>
</property>
<!-- 當連接池中連接耗盡的時候c3p0一次同時獲取的連接數 -->
<property name="acquireIncrement">
<value>${c3p0.acquireIncrement}</value>
</property>
<!--初始化時獲取三個連接,取值應在minPoolSize與maxPoolSize之間。Default: 3 -->
<property name="initialPoolSize">
<value>${c3p0.initialPoolSize}</value>
</property>
<!-- 最小連接數 -->
<property name="minPoolSize">
<value>${c3p0.minPoolSize}</value>
</property>
<!-- 最大連接數 -->
<property name="maxPoolSize">
<value>${c3p0.minPoolSize}</value>
</property>
<!--最大空閑時間,60秒內未使用則連接被丟棄。若為0則永不丟棄。Default: 0 -->
<property name="maxIdleTime">
<value>${c3p0.maxPoolSize}</value>
</property>
<!--每60秒檢查所有連接池中的空閑連接。Default: 0 -->
<property name="idleConnectionTestPeriod">
<value>${c3p0.idleConnectionTestPeriod}</value>
</property>
<!--JDBC的標准參數,用以控制數據源內載入的PreparedStatements數量。但由於預緩存的statements屬於單個connection而不是整個連接池。
所以設置這個參數需要考慮到多方面的因素。如果maxStatements與maxStatementsPerConnection均為0,則緩存被關閉。Default: 0-->
<property name="maxStatements">
<value>${c3p0.maxStatements}</value>
</property>
<!--c3p0是非同步操作的,緩慢的JDBC操作通過幫助進程完成。擴展這些操作可以有效的提升性能通過多線程實現多個操作同時被執行。Default: 3-->
<property name="numHelperThreads">
<value>${c3p0.numHelperThreads}</value>
</property>
</bean>
3. 最重要的是連接oracle資料庫的驅動jar和c3p0的jar包
c3p0-0.9.1.jar 這是c3p0的jar包
classes12.jar(1.51MB) 連接oracle資料庫的驅動,這個驅動十分重要。

❺ springboot如何使用中間件進行資料庫連接

此實現使用中間層連接池管理器。分布式事務實現一產宏迅生一個可以用於分布式事務的Connection對象,並且幾乎總是參螞姿與連接池。此實現使用中間層事務管理器蔽物此,並且幾乎總是使用連接池管理器。

❻ jsp,用spring框架連接oracle資料庫

用spring框架連接oracle資料庫可以通過配置數據源的方式:
Spring 資料庫連接配置
oracle為例來說明:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.101)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)(SERVER=DEDICATED)))" />
<property name="username" value="rootl" />
<property name="password" value="1234" />
</bean>
擴展其他資料庫:
二 DB2
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.ibm.db2.jdbc.app.DB2Driver" />
<property name="url" value="jdbc:db2:thin:@localhost:5000/testDB" />
<property name="username" value="rootl" />
<property name="password" value="1234" />
</bean>
三 SQL Server
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.microsoft.jdbc.sqlserver.SQLServerDriver" />
<property name="url" value="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName = testDB" />
<property name="username" value="rootl" />
<property name="password" value="1234" />
</bean>
三 MySQL
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="org.postgresql.Driver" />
<property name="url" value="jdbc:postgresql://localhost/ testDB" />
<property name="username" value="rootl" />
<property name="password" value="1234" />
</bean>

org.apache.commons.dbcp.BasicDataSource 需要commons-pool.jar,commons-dbcp-1.2.2.jar,commons-collections-3.2.jar三個JAR包

❼ spring 如何經過多次跳轉才能找到資料庫連接配置 引用方式

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jpa="http://www.springframework.org/schema/data/jpa"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd

http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
http://www.springframework.org/schema/data/jpa
http://www.springframework.org/schema/data/jpa/spring-jpa-4.0.xsd"
default-autowire="byName">

<!-- 數據源配置, 使用 alibaba.druid 資料庫連接池 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close" autowire="byName">
<!-- 數據源驅動類猛宏猜可不寫,Druid默認會自動根據URL識別DriverClass -->
<!-- 基本屬性 url、user、password -->
<property name="driverClassName" value="${jdbc.driverClass}"/>絕鬧
<property name="url" value="${jdbc.url}"/>
<property name="username"枝型 value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>

<!--<property name="driverClassName" value="com.mysql.jdbc.Driver" />-->
<!--<property name="url" value="jdbc:mysql://<a href="https://www..com/s?wd=127.0.0.1&tn=44039180_cpr&fenlei=-w9Uz4Bmy-bIi4WUvYETgN-" target="_blank" class="-highlight">127.0.0.1</a>:3306/sprimy?useUnicode=true&characterEncoding=utf8"></property>-->
<!--<property name="username" value="root" />-->
<!--<property name="password" value="123456" />-->

<!-- 配置初始化大小、最小、最大 -->
<property name="initialSize" value="3"/>
<property name="minIdle" value="3"/>
<property name="maxActive" value="20"/>

<!-- 配置獲取連接等待超時的時間 -->
<property name="maxWait" value="60000"/>

<!-- 配置間隔多久才進行一次檢測,檢測需要關閉的空閑連接,單位是<a href="https://www..com/s?wd=%E6%AF%AB%E7%A7%92&tn=44039180_cpr&fenlei=-w9Uz4Bmy-bIi4WUvYETgN-" target="_blank" class="-highlight">毫秒</a> -->
<property name="timeBetweenEvictionRunsMillis" value="60000"/>

<!-- 配置一個連接在池中最小生存的時間,單位是<a href="https://www..com/s?wd=%E6%AF%AB%E7%A7%92&tn=44039180_cpr&fenlei=-w9Uz4Bmy-bIi4WUvYETgN-" target="_blank" class="-highlight">毫秒</a> -->
<property name="minEvictableIdleTimeMillis" value="300000"/>

<property name="validationQuery" value="SELECT 'x'"/>
<property name="testWhileIdle" value="true"/>
<property name="testOnBorrow" value="false"/>
<property name="testOnReturn" value="false"/>

<!-- 打開PSCache,並且指定每個連接上PSCache的大小(Oracle使用) <property name="poolPreparedStatements"
value="true" /> <property name=""
value="20" /> -->
<!-- 配置監控統計攔截的filters -->
<property name="filters" value="stat"/>
</bean>

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<constructor-arg index="0" ref="dataSource" />
</bean>
<!-- 定義事務管理器 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>

<aop:config>
<aop:pointcut id="businessService"
expression="execution(* cn.cq.shenyun.service.*.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="businessService"/>
</aop:config>

<tx:advice id="txAdvice" transaction-manager="transactionManager">
<!-- the transactional semantics... -->
<tx:attributes>
<!-- all methods starting with '*' are read-only -->
<!--<tx:method name="*" propagation="SUPPORTS" read-only="true"/>-->
<!-- other methods use the default transaction settings (see below) -->
<!--<tx:method name="add*" propagation="REQUIRED"/>-->
<!--<tx:method name="save*" propagation="REQUIRED"/>-->
<!--<tx:method name="update*" propagation="REQUIRED"/>-->
<!--<tx:method name="delete*" propagation="REQUIRED"/>-->
<tx:method name="create*" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>
<!-- 事務支持註解 -->
<tx:annotation-driven transaction-manager="transactionManager"/>
<!--編程式事務使用-->
<bean id="txDefinition" class="org.springframework.transaction.support.DefaultTransactionDefinition"></bean>

</beans>

jdbc.properties

1
2
3
4
5

#DataSource settings
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://<a href="https://www..com/s?wd=127.0.0.1&tn=44039180_cpr&fenlei=-w9Uz4Bmy-bIi4WUvYETgN-" target="_blank" class="-highlight">127.0.0.1</a>:3306/sprimy?useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=123456

❽ springboot連接阿里雲資料庫讀取不到數據

網路的問題。springboot連接阿里雲資料庫讀取不到數據多數是網路連接異常導致。
1、坦舉首先讓嘩碧打開電腦檢查網路。
2、其次打開蘆判springboot進行測試網路連接是否異常。
3、最後等待網路連接正常後,將springboot和阿里雲資料庫重新連接,即可讀取數據。