Spring框架中獲取dataSource對象的方法

在Spring框架中有如下3種獲得DataSource對象的方法:
1.從JNDI獲得DataSource.
2.從第三方的連接池獲得DataSource.
3.使用DriverManagerDataSource獲得DataSource

 

1、SpringJNDI數據源配置信息:
  <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
   <property name="jndiName">
    <value>java:comp/env/jcptDataSourceJNDI</value>
   </property>
  </bean>
  jcptDataSourceJNDI是tomcat或者其他應用服務器配置的JNDI.

2、關於JNDI的配置(tomcat):
  修改tomcat目錄conf/context.xml文件:
  <Resource name="jcptDataSourceJNDI" auth="Container" type="javax.sql.DataSource"
      maxActive="100" maxIdle="30" maxWait="10"   username="tysp"
      password="12345678" driverClassName="oracle.jdbc.driver.OracleDriver"
      url="jdbc:oracle:thin:@192.168.1.35:1521:orcl"/> 

3、通過JNDI獲取DataSource:
  Context context = new InitialContext();
  DataSource ds = (DataSource)context.lookup("java:comp/env/jcptDataSourceJNDI");

 

使用DBCP連接池獲取

 

要在Spring中使用DBCP連接池,需要引入commons-collections.jar、commons-dbcp.jar和commons-pool.jar。

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
  <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>
  <property name="url" value="jdbc:oracle:thin:@192.168.1.35:1521:orcl"></property>
  <property name="username" value="or_meal"></property>
  <property name="password" value="or_meal"></property>
  <property name="maxActive" value="100"></property>
  <property name="maxIdle" value="30"></property>
  <property name="maxWait" value="10"></property>
  <property name="defaultAutoCommit" value="false"></property>
 </bean>

 <bean id="sessionFactory"
  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  <property name="dataSource">
   <ref bean="dataSource" />
  </property>

  <property name="hibernateProperties">
   <props>
    <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect
    </prop>
    <prop key="show_sql">true</prop>
    <prop key="format_sql">true</prop>
   </props>
  </property>
  <property name="mappingResources">
  <list></list>
  </property>
 </bean>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章