spring 配置

在Spring框架中有如下3种获得DataSource对象的方法: 
1.从JNDI获得DataSource. 
2.从第三方的连接池获得DataSource. 
3.使用DriverManagerDataSource获得DataSource.


[代码] JNDI方式

01 1、SpringJNDI数据源配置信息:
02   <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
03    <property name="jndiName">
04     <value>java:comp/env/jcptDataSourceJNDI</value>
05    </property>
06   </bean>
07   jcptDataSourceJNDI是tomcat或者其他应用服务器配置的JNDI.
08  
09 2、关于JNDI的配置(tomcat):
10   修改tomcat目录conf/context.xml文件:
11   <Resource name="jcptDataSourceJNDI" auth="Container"type="javax.sql.DataSource"
12       maxActive="100" maxIdle="30" maxWait="10"   username="tysp"
13       password="12345678" driverClassName="oracle.jdbc.driver.OracleDriver"
14       url="jdbc:oracle:thin:@192.168.1.35:1521:orcl"/> 
15  
16 3、通过JNDI获取DataSource:
17   Context context = new InitialContext();
18   DataSource ds = (DataSource)context.lookup("java:comp/env/jcptDataSourceJNDI");

[代码] 使用DBCP连接池获取

01 要在Spring中使用DBCP连接池,需要引入commons-collections.jar、commons-dbcp.jar和commons-pool.jar。
02  
03 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
04         <property name="driverClassName"value="oracle.jdbc.driver.OracleDriver"></property>
05         <property name="url" value="jdbc:oracle:thin:@192.168.1.35:1521:orcl"></property>
06         <property name="username" value="or_meal"></property>
07         <property name="password" value="or_meal"></property>
08         <property name="maxActive" value="100"></property>
09         <property name="maxIdle" value="30"></property>
10         <property name="maxWait" value="10"></property>
11         <property name="defaultAutoCommit" value="false"></property>
12     </bean>
13  
14     <bean id="sessionFactory"
15         class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
16         <property name="dataSource">
17             <ref bean="dataSource" />
18         </property>
19  
20         <property name="hibernateProperties">
21             <props>
22                 <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect
23                 </prop>
24                 <prop key="show_sql">true</prop>
25                 <prop key="format_sql">true</prop>
26             </props>
27         </property>
28         <property name="mappingResources">
29         <list></list>
30         </property>
31     </bean>

[代码] 使用DriverManagerDataSource

01 <bean id="dataSource"
02         class="org.springframework.jdbc.datasource.DriverManagerDataSource">
03         <property name="driverClassName">
04             <value>oracle.jdbc.driver.OracleDriver
05             </value>
06         </property>
07         <property name="url">
08             <value>jdbc:oracle:thin:@192.168.1.35:orcl
09             </value>
10         </property>
11         <property name="username">
12             <value>or_meal</value>
13         </property>
14         <property name="password">
15             <value>or_meal</value>
16         </property>
17     </bean>

  先下载:
  
  http://surfnet.dl.sourceforge.net/sourceforge/proxool/proxool-0.9.0RC2.zip


  web.xml

-------------------------


  <servlet>
    <servlet-name>proxoolServletConfigurator</servlet-name>
    <servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class>
    <init-param>
      <param-name>xmlFile</param-name>
      <param-value>WEB-INF/proxool.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet>
    <servlet-name>proxooladmin</servlet-name>
    <servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>proxooladmin</servlet-name>
    <url-pattern>/proxooladmin</url-pattern>
  </servlet-mapping>


-------------------------

  proxool.xml

-------------------------
<?xml version="1.0" encoding="UTF-8"?>
<proxool-config>
  <proxool>
    <alias>blogdb</alias>
    <driver-url>jdbc:oracle:thin:@127.0.0.1:1521:ORADB</driver-url>
    <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
    <driver-properties>
      <property name="user" value="lizongbo"/>
      <property name="password" value="password"/>
    </driver-properties>
    <maximum-connection-count>10</maximum-connection-count>
    <house-keeping-test-sql>select 1 from dual</house-keeping-test-sql>
  </proxool>
</proxool-config>

spring里:
两种配置:
a:  <!-- 与上面的proxool以及web.xml里结合使用-->
    <bean id="mainDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName">
    <value>org.logicalcobwebs.proxool.ProxoolDriver</value>
    </property>
    <property name="url">
    <value>proxool.blogdb</value>
    </property>
    </bean>

b:<!-- 单独的类似dbcp的使用-->
  <bean id="mainDataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource" destroy-method="close">
    <property name="driver">
      <value>oracle.jdbc.driver.OracleDriver</value>
    </property>
    <property name="driverUrl">
      <value>jdbc:oracle:thin:lizongbo/password@127.0.0.1:1521:ORADB</value>     
 <!--用户名和密码写在一起才调用成功,不然会报 调用无效的参数 错误,下面设置用户名和密码的property好像是无效的,其它数据库也是这样
 比如mysql的也要把用户名和密码写在url里:<property name="driverUrl" value="jdbc:mysql://localhost:3306/blogdb?user=lizongbo&amp;password=lizongbo" />
 -->
    </property>
    <property name="user"> <!-- 必须在这里也设置,但是 proxool却不使用它,或许是个bug-->
      <value>lizongbo</value>
    </property>
    <property name="password"> <!-- 必须在这里也设置,但是 proxool却不使用它,或许是个bug-->
      <value>lizongbo</value>
    </property>
    <property name="alias">
      <value>lizongbo</value>
    </property>
    <property name="houseKeepingSleepTime">
      <value>90000</value>
    </property>
    <property name="prototypeCount">
      <value>5</value>
    </property>
    <property name="maximumConnectionCount">
      <value>100</value>
    </property>
    <property name="minimumConnectionCount">
      <value>10</value>
    </property>
    <property name="trace">
      <value>true</value>
    </property>
    <property name="verbose">
      <value>true</value>
    </property>
  </bean>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值