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

spring如何配置mysql資料庫

發布時間: 2023-03-10 05:31:36

A. spring 怎麼動態配置 連接不同的資料庫.oracle 或是mysql

不知道你說的動態配置是怎樣的

---------------------------------spring配置文件--------------------------------------------

<!--從根路徑下的db.properties載入數據源信息-->
<context:property-placeholder
ignore-unresolvable="true"location="classpath:db.properties"/>
<!--數據源配置,使用DBCP資料庫連接池-->
<beanid="dataSource"class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<!--ConnectionInfo-->
<propertyname="driverClassName"value="${jdbc.driver}"/>
<propertyname="url"value="${jdbc.url}"/>
<propertyname="username"value="${jdbc.user}"/>
<propertyname="password"value="${jdbc.password}"/>
<propertyname="maxActive"value="${dbcp.maxActive}"/>
<propertyname="maxIdle"value="${dbcp.maxIdle}"/>
<propertyname="timeBetweenEvictionRunsMillis"value="3600000"/>
<propertyname="minEvictableIdleTimeMillis"value="3600000"/>
</bean>

-------------------------------------db.properties--------------------------------------

//把driver改成oracle的,下面也相應改成oracle的信息就能把數據源設置為oracle
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://172.19.0.127:8066/addl
jdbc.user=root
jdbc.password=
dbcp.maxActive=10
dbcp.maxIdle=10

B. 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=""

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>