Spring链接数据库的几种经常使用的方式

Dao测试类java

   @Test
  public void test() throws Exception {
          //获取上下文对象
	 ApplicationContext ctx = 
	         new ClassPathXmlApplicationContext("/spring-config/applicationContext.xml");
	  //获取dataSource对象
         DataSource dataSource=ctx.getBean("dataSource",DataSource.class); 
         //定义sql语句
	 String sql="select * from micro_message";   
	 //获取数据库链接对象
	 Connection connection=dataSource.getConnection(); 
	 //获取数据库语句执行对象
	 Statement stm=connection.createStatement();   
	 //获取查询集合
	 ResultSet rs=stm.executeQuery(sql); 
	 //打印结果集
	 while(rs.next())     
	 {     
           System.out.println("用户名为:"); 
           System.out.println(rs.getString(2)); 
	  }        
	}

jdbc.propertiesmysql

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test
jdbc.username=root
jdbc.password=root

在applicationContext.xml中配置jdbc.propertiesspring

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  
        <property name="locations">  
           <list>  
                 <value>classpath*:jdbc.properties</value>  
           </list>  
        </property>  
</bean>

第一种:使用spring自带的DriverManagerDataSource   配置文件以下:sql

<bean name="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<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>

第二种数据库

 C3P0    数据源须要使c3p0的核心jar包。通常在下载hibernate的时候都会自带一个: 在hibernate-release-4.3.0.Final\lib\optional\c3p0路径下找到的。  apache

要注意的是在bean的property的name属性和其余几种方式会有所不一样:缓存

    

<bean name="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"  >      
	    <property name="driverClass" value="${jdbc.driverClassName}" /> 
		<property name="jdbcUrl" value="${jdbc.jdbcUrl}" />
		<property name="user" value="${jdbc.user}" />
		<property name="password" value="${jdbc.password}" />
     <!-- 链接池信息  当链接池中的链接用完时,C3P0一次性建立新链接的数目  -->
        <property name="acquireIncrement" value="${c3p0.acquireIncrement}" />  
     <!--  初始化时建立的链接数,应在minPoolSize与maxPoolSize之间取值。默认为3;-->  
        <property name="initialPoolSize" value="${c3p0.initialPoolSize}" />  
     <!--   最大空闲时间,超过空闲时间的链接将被丢弃。为0或负数则永不丢弃。默认为0;-->   
        <property name="maxIdleTime" value="${c3p0.maxIdleTime}" />  
     <!--  链接池中保留的最小链接数。默认为15  -->
        <property name="minPoolSize" value="${c3p0.minPoolSize}" />  
     <!--  链接池中保留的最大链接数。默认为15;  -->
        <property name="maxPoolSize" value="${c3p0.maxPoolSize}" />  
     <!--   JDBC的标准参数,用以控制数据源内加载的PreparedStatement数量。但因为预缓存的Statement属 于单个Connection而不是整个链接池。因此设置这个参数须要考虑到多方面的因素,若是maxStatements与 maxStatementsPerConnection均为0,则缓存被关闭。默认为0;   -->
        <property name="maxStatements" value="${c3p0.maxStatements}" />  
     <!--   链接池内单个链接所拥有的最大缓存Statement数。默认为0;   -->
        <property name="maxStatementsPerConnection" value="${c3p0.maxStatementsPerConnection}"/>
</bean>

第三种:app

使用apache的dbcp插件链接数据库 须要下载的jar包:commons-dbcp.jar,commons-pool.jar,commons-collection.jar框架

 spring的配置文件中以下:测试

   <bean name="dataSource" 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>

第四种:

使用hibernate数据源   须要hiberante核心jar包,我使用的hibernate1的版本是hibernate-release-4.3.0.Final  目前三大框架较流行,spring通常与hiberante作搭档,数据库链接方式写在hiberante的配置文件中,在spring管理hibernate中的配置文件中,直接读取hibernate核心配置文件便可。在使用hibernate链接数据库的时候须要读取hibernate.cfg.xml的配置文件和相应的实体类

相关文章
相关标签/搜索