Spring配置資料來源的三種方式 (JNDI\C3PO)
阿新 • • 發佈:2019-02-03
1,使用org.springframework.jdbc.datasource.DriverManagerDataSource
說明:DriverManagerDataSource建立連線是隻要有連線就新建一個connection,根本沒有連線池的作用。
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName"><value>${jdbc.driverClassName}</value></property>
<property name="url"><value>${jdbc.url}</value></property>
<property name="username"><value>${jdbc.username}</value></property>
<property name="password"><value>${jdbc.password}</value></property>
</bean>
2.使用org.apache.commons.dbcp.BasicDataSource
說明:這是一種推薦說明的資料來源配置方式,它真正使用了連線池技術
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
<property name="url">
<value>jdbc:oracle:thin:@localhost:1521:orcl</value>
</property>
<property name="username">
<value>test</value>
</property>
<property name="password">
<value>test</value>
</property>
<property name="maxActive">
<value>255</value>
</property>
<property name="maxIdle">
<value>2</value>
</property>
<property name="maxWait">
<value>120000</value>
</property>
</bean>
3.使用org.springframework.jndi.JndiObjectFactoryBean
說明:JndiObjectFactoryBean 能夠通過JNDI獲取DataSource
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName"><value>java:comp/env/jdbc/roseindiaDB_local</value></property>
</bean>
總結:3種方式中的第一種沒有使用連線池,故少在專案中用到,第三種方式需要在web server中配置資料來源,不方便於部署,本人推薦使用每二種方式進行資料來源的配置。
說明:DriverManagerDataSource建立連線是隻要有連線就新建一個connection,根本沒有連線池的作用。
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName"><value>${jdbc.driverClassName}</value></property>
<property name="url"><value>${jdbc.url}</value></property>
<property name="username"><value>${jdbc.username}</value></property>
<property name="password"><value>${jdbc.password}</value></property>
</bean>
2.使用org.apache.commons.dbcp.BasicDataSource
說明:這是一種推薦說明的資料來源配置方式,它真正使用了連線池技術
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
<property name="url">
<value>jdbc:oracle:thin:@localhost:1521:orcl</value>
</property>
<property name="username">
<value>test</value>
</property>
<property name="password">
<value>test</value>
</property>
<property name="maxActive">
<value>255</value>
</property>
<property name="maxIdle">
<value>2</value>
</property>
<property name="maxWait">
<value>120000</value>
</property>
</bean>
3.使用org.springframework.jndi.JndiObjectFactoryBean
說明:JndiObjectFactoryBean 能夠通過JNDI獲取DataSource
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName"><value>java:comp/env/jdbc/roseindiaDB_local</value></property>
</bean>
總結:3種方式中的第一種沒有使用連線池,故少在專案中用到,第三種方式需要在web server中配置資料來源,不方便於部署,本人推薦使用每二種方式進行資料來源的配置。