Spring配置DataSource数据源

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

一、从JNDI获得DataSource
SpringJNDI数据源配置信息:
 
 
  java:comp/env/jcptDataSourceJNDI
 

 

  jcptDataSourceJNDI是tomcat或者其它应用server配置的JNDI.

2、关于JNDI的配置(tomcat):
  改动tomcat文件夹conf/context.xml文件或server.xml文件:
   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"
  />
  在server.xml中增加元素:元素用来定义JNDI Resource。
  属性:描写叙述
  name:指定Resource的JNDI名字
  auth:指定管理Resource的Manager,它有两个可选值:Container、Application
  type:指定Resource所属的Java类名
  元素中增加元素:元素用来指定各种參数值(也能够像上面那样配置)
  属性:描写叙述
  factory       指定生成的DataResource的factory类名
  maxActive     指定数据库连接池中处于活动状态的最大连接数目,0表示不受限制
  maxIdle       指定数据库连接池中处于空暇状态的最大连接数目,0表示不受限制
  maxWait       指定连接池中连接处于空暇状态的最长时间,超过会抛出异常,-1表示无限
  username      指定连接数据库的用户名
  password      指定连接数据库的口令
  driverClassName    指定连接数据库的JDBC驱动程序
  url             指定连接数据库的URL
 
3、通过JNDI获取DataSource:
  Context context = new InitialContext();
  DataSource ds = (DataSource)context.lookup("java:comp/env/jcptDataSourceJNDI");

4.在web.xml中增加(spring配置中能够不用)
  
  DB Connection 
  jdbc/TestDB 
  javax.sql.DataSource 
  Container 
 
 
  在web.xml中增加元素:元素表示在Web应用中引用JNDI资源  
  属性:描写叙述
  description     对所引用的资源的说明
  res-ref-name    指定所引用资源的JNDI名字,与元素中的name属性相应
  res-type        指定所引用资源的类名字,与元素中的type属性相应
  res-auth        指定所引用资源的Manager,与元素中的auth属性相应

很多其它信息:能够參考http://blog.csdn.net/cyxlzzs/article/details/7352837

二、从第三方的连接池获得DataSource
    Spring在第三方依赖包中包括了两个数据源的实现类包,其一是Apache的DBCP,其二是 C3P0
  1) DBCP类包位于 /lib/jakarta-commons/commons-dbcp.jar,DBCP是一个依赖 Jakarta commons-pool对象池机制的数据库连接池,
   所以在类路径下还必须包含/lib/jakarta- commons/commons-pool.jar。
 
       
       
       
       
       
       
       
       
   

 
   
       
           
       

       
           
                org.hibernate.dialect.Oracle9Dialect
               

                true
                true
           

       

       
       
       

   

    BasicDataSource提供了close()方法关闭数据源,所以必须设定destroy-method=”close”属性,
    以便Spring容器关闭时,数据源可以正常关闭。除以上必须的数据源属性外,另一些经常使用的属性:
    defaultAutoCommit:设置从数据源中返回的连接是否採用自己主动提交机制,默认值为 true;
    defaultReadOnly:设置数据源是否仅能运行仅仅读操作, 默认值为 false;
    maxActive:最大连接数据库连接数,设置为0时,表示没有限制;
    maxIdle:最大等待连接中的数量,设置为0时,表示没有限制;
    maxWait:最大等待秒数,单位为毫秒, 超过时间会报出错误信息;
    validationQuery:用于验证连接是否成功的查询SQL语句,SQL语句必须至少要返回一行数据;
    removeAbandoned:是否自我中断,默认是 false ;
    removeAbandonedTimeout:几秒后数据连接会自己主动断开,在removeAbandoned为true,提供该值;
    logAbandoned:是否记录中断事件, 默觉得 false;
   
    2)C3P0是一个开放源码的JDBC数据源实现项目,C3P0类包位于Spring中lib/c3p0/c3p0-0.9.1.2.jar。
            class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" >
       
            classpath:jdbc.properties
       

   
 
   
       
       
       
       
   

三、使用DriverManagerDataSource获得DataSource
   
       
            oracle.jdbc.driver.OracleDriver
       

       
            jdbc:oracle:thin:@192.168.1.35:orcl
       

       
            or_meal
       

       
            or_meal
       

   

     
         
             
       
 
   
 
    DriverManagerDataSource建立连接是仅仅要有连接就新建一个connection,根本没有连接池的作用

你可能感兴趣的:(Spring配置DataSource数据源)