當前位置:首頁 » 存儲配置 » dbcp如何配置

dbcp如何配置

發布時間: 2023-09-05 21:01:22

1. spring中配置Mysql數據源,怎樣配置資料庫信息

spring中配置數據源的幾種常見方式:

#mysql 資料庫配置(jdbc.properties)

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/databaseName?useUnicode=true&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=root

1.使用spring自帶的數據源org.springframework.jdbc.datasource.DriverManagerDataSource;

方式一:

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" p:location="/WEB-INF/jdbc.properties" />

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"
p:driverClassName="${jdbc.driverClassName}"
p:url="${jdbc.url}"
p:username="${jdbc.username}"
p:password="${jdbc.password}" />

p標記需要:xmlns:p="http://www.springframework.org/schema/p"

DriverManagerDataSource源碼實現:

public class DriverManagerDataSource extends AbstractDriverBasedDataSource {

public DriverManagerDataSource() {

}

public DriverManagerDataSource(String url) {
}

public DriverManagerDataSource(String url, String username, String password) {
}

public DriverManagerDataSource(String url, Properties conProps) {
}

public void setDriverClassName(String driverClassName) {
}

protected Connection getConnectionFromDriver(Properties props) throws SQLException {
}

protected Connection (String url, Properties props) throws SQLException {
}
}

方式二:

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">

<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />

<property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:ORCL" />

<property name="username" value="root" />

<property name="password" value="root" />

</bean>

2.DBCP數據源;

DBCP(DataBase connection pool)。是 apache 上的一個 java 連接池項目,也是 tomcat 使用的連接池組件。單獨使用dbcp需要2個包:commons-dbcp.jar,commons-pool.jar由於建立資料庫連接是一個非常耗時耗資源的行為,所以通過連接池預先同資料庫建立一些連接,放在內存中,應用程序需要建立資料庫連接時直接到連接池中申請一個就行,用完後再放回去。

<bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>

DBCP實現:

class JdbcUtil
{
private static BasicDataSource bds;
static
{
if(bds==null)
{
bds= new BasicDataSource();
}
//分別設置資料庫的連接參數
bds.setDriverClassName();
bds.setUrl();
bds.setUsername();
bds.setPassword();
}
public static Connection getConnection()
{
return bds.getConnection();
}

3.C3P0數據源;
C3P0是一個開源的JDBC連接池,它實現了數據源和JNDI綁定,支持JDBC3規范和JDBC2的標准擴展。目前使用它的有Hibernate,Spring等。
依賴jar包:c3p0-0.9.1.jar、c3p0-0.9.1.2.jar、c3p0-0.9.1-pre6.jar
c3p0與dbcp區別:
dbcp沒有自動回收空閑連接的功能
c3p0有自動回收空閑連接功能

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass"><value>oracle.jdbc.driver.OracleDriver</value></property>
<property name="jdbcUrl"><value>jdbc:oracle:thin:@localhost:1521:Test</value></property>
<property name="user"><value>root</value></property>
<property name="password"><value>root</value></property>
<!--連接池中保留的最小連接數。-->
<property name="minPoolSize" value="10" />
<!--連接池中保留的最大連接數。Default: 15 -->
<property name="maxPoolSize" value="100" />
<!--最大空閑時間,1800秒內未使用則連接被丟棄。若為0則永不丟棄。Default: 0 -->
<property name="maxIdleTime" value="1800" />
<!--當連接池中的連接耗盡的時候c3p0一次同時獲取的連接數。Default: 3 -->
<property name="acquireIncrement" value="3" />
<property name="maxStatements" value="1000" />
<property name="initialPoolSize" value="10" />
<!--每60秒檢查所有連接池中的空閑連接。Default: 0 -->
<property name="idleConnectionTestPeriod" value="60" />
<!--定義在從資料庫獲取新連接失敗後重復嘗試的次數。Default: 30 -->
<property name="acquireRetryAttempts" value="30" />
<property name="breakAfterAcquireFailure" value="true" />
<property name="testConnectionOnCheckout" value="false" />
</bean>

4.JNDI數據源;

如果應用配置在高性能的應用伺服器(如WebLogic或Websphere等)上,我們可能更希望使用應用伺服器本身
提供的數據源。應用伺服器的數據源 使用JNDI開放調用者使用,Spring為此專門提供引用JNDI資源的
JndiObjectFactoryBean類。下面是一個簡單的配置:

方式一:

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">

<property name="jndiName" value="java:comp/env/jdbc/bbt"/>

</bean>

value值即JNDI的名稱
方式二:

<bean id="queueTarget" class="org.springframework.jndi.JndiObjectTargetSource">
<property name="jndiName">

<value>queue/testQueue</value>
</property>
</bean>

方式三:

如果不使用JndiTemplate實現InitialContext環境變數的配置,則需要jndi.properties文件(放在classpath中,一般放在src下面),內容如下

java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.provider.url=jnp://localhost:1099
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces

方式四:

使用JndiTemplate實現InitialContext環境變數的配置,例如

<bean id="queueTarget" class="org.springframework.jndi.JndiObjectTargetSource">
<property name="jndiName">
<value>queue/testQueue</value>
</property>
<property name="jndiTemplate">
<ref local="jndiTemplate"/>
</property>
</bean>
<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
<property name="environment">
<props>
<prop key="java.naming.factory.initial">org.jnp.interfaces.NamingContextFactory</prop>
<prop key="java.naming.provider.url">jnp://localhost:1099</prop>
<prop key="java.naming.factory.url.pkgs">org.jboss.naming:org.jnp.interfaces</prop>
</props>
</property>
</bean>

2. jdbc框架項目如何配置 mysql雙主 目前項目中配置的數據源是在tomcat中

方法/步驟

  • 打開tomcat目錄,進入conf配置目錄,有個context.xml文件,一般建議把數據源配置放在這個文件里進行配置,放在server.xml也是可以的,但不建議這么做,server.xml文件一般是tomcat服務相關的配置

3. Spring配置DBCP資料庫連接池

<!-- 數據源配置,使用應用內的DBCP資料庫連接池 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<!-- Connection Info -->
<property name="driverClassName" value="${datasource.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />

<!-- Connection Pooling Info -->
<property name="initialSize" value="5" />
<property name="maxActive" value="100" />
<property name="maxIdle" value="30" />
<property name="maxWait" value="1000" />
<property name="poolPreparedStatements" value="true" />
<property name="defaultAutoCommit" value="false" />
</bean>

熱點內容
碩士論文上傳 發布:2025-01-28 01:03:14 瀏覽:467
壓縮文件加密文件名 發布:2025-01-28 01:02:34 瀏覽:103
red5伺服器搭建 發布:2025-01-28 00:56:49 瀏覽:680
遺傳演算法ppt 發布:2025-01-28 00:56:41 瀏覽:535
安卓手機連拍圖片怎麼保存 發布:2025-01-28 00:48:12 瀏覽:645
怎麼看出車輛配置是不是舊車 發布:2025-01-28 00:42:42 瀏覽:4
編譯時的程序在哪裡 發布:2025-01-28 00:42:39 瀏覽:346
ftp協議的功能 發布:2025-01-28 00:38:53 瀏覽:251
linux統計ip 發布:2025-01-28 00:38:50 瀏覽:154
游戲解壓泥 發布:2025-01-28 00:38:04 瀏覽:728