`
潇莘子
  • 浏览: 4308 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

spring的持久层封装(转载)

 
阅读更多

 

一、概述
(一)基本概念
1、数据访问的关键技术
     我们可以将数据访问分为两个部分:一是获得数据源;二是进行数据库操作(增删改查)。
2、获得数据源的几种方法
因为只是为了记录一些关键的东西,以实用为主,因此没有过多的考虑措辞和学术上的严谨。这里指的是在Java中怎么能取得和数据源(DataSource)的联系,方法主要有传统的在程序中硬编码和通过XML注入。Spring提供三种XML注入:(1)使用Spring自带的DriverManagerDataSource;(2)使用DBCP连接池(3)使用Tomcat提供的JNDI。其中(1)可以配合Hibernate、iBatis等ORM一起使用(在XML配置文档中加入相应的配置段)。
(二)框架图

 

XML 注入数据源的三种方式
Spring 自带的DriverManagerDataSource
DBCP 连接池
Tomcat 的JNDI
 
                   数据库操作的两种方式
Spring 的 JdbcTemplate
使用 ORM 工具

 

 

 二、详细

(一)数据源注入
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> 
使用org.apache.commons.dbcp.BasicDataSource 
2. 说明:这是一种推荐说明的数据源配置方式,它真正使用了连接池技术 
要在Spring中使用DBCP连接池,需要引入spring-framework-2.0-ml\lob\jakarta-commons文件夹中的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</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> 
    BasicDataSource提供了close()方法关闭数据源,所以必须设定destroy-method=”close”属性, 以便Spring容器关闭时,数据源能够正常关闭。除以上必须的数据源属性外,还有一些常用的属性: 
    defaultAutoCommit:设置从数据源中返回的连接是否采用自动提交机制,默认值为 true; 
    defaultReadOnly:设置数据源是否仅能执行只读操作, 默认值为 false; 
    maxActive:最大连接数据库连接数,设置为0时,表示没有限制; 
    maxIdle:最大等待连接中的数量,设置为0时,表示没有限制; 
    maxWait:最大等待秒数,单位为毫秒, 超过时间会报出错误信息; 
    validationQuery:用于验证连接是否成功的查询SQL语句,SQL语句必须至少要返回一行数据, 如你可以简单地设置为:“select count(*) from user”; 
    removeAbandoned:是否自我中断,默认是 false ; 
    removeAbandonedTimeout:几秒后数据连接会自动断开,在removeAbandoned为true,提供该值; 
    logAbandoned:是否记录中断事件, 默认为 false; 
3. 使用Tomcat提供的JNDI
分两步,第一步是配置Tomcat的context.xml;第二步是编写Spring的配置文件。
<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory" maxActive="20" maxIdle="10" maxWait="-1" name="jdbc/yypt" password="root" type="javax.sql.DataSource" url="jdbc:mysql://192.168.11.232:3306/zspt" username="root"/>
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
  <property name="jndiName" value="jdbc/yypt"></property>
        <property name="resourceRef">
<value>true</value>
  </property>
</bean>
分享到:
评论

相关推荐

    spring的持久层封装

    描述:“spring持久层封装,新手可用,物超所值” 标签:“spring” 根据给定的文件信息,我们将深入探讨Spring框架中持久层封装的概念、重要性和具体实现方式。 ### 一、Spring持久层封装概述 #### (一)基本...

    Spring持久层的封装

    这份文档以例子的形式讲诉了Spring持久层的封装,希望可以帮助学习的人!

    Spring持久层(PDF)

    ### Spring持久层详解 #### 一、数据源的支持 在Spring框架中,数据源的管理是持久层设计的重要组成部分。Spring提供了多种数据源的支持,包括`DriverManagerDataSource`,但通常这种数据源不推荐用于生产环境,...

    Spring的MVC Web应用中的持久层技术

    在Spring的MVC Web应用程序中,持久层技术是不可或缺的一部分,它主要用于处理数据存储和检索。JdbcTemplate作为Spring框架提供的一种轻量级的数据库访问工具,是实现持久层操作的重要手段。本文将深入探讨...

    Spring持久化模板总结

    HibernateTemplate是Spring对流行ORM框架Hibernate的封装,它简化了Hibernate的使用,提供了事务管理和对象/关系映射的透明性。 1. **对象操作**:HibernateTemplate提供了save()、update()、delete()等方法,可以...

    用Hibernate和Spring开发事务持久层.rar_spring

    总的来说,结合Spring和Hibernate开发事务持久层,可以帮助开发者更高效地管理数据访问,降低系统复杂性,并提升代码的可维护性。通过熟练掌握这两者的结合使用,可以在Java开发中达到事半功倍的效果。

    04. SpringBoot整合持久层技术

    综上所述,Spring Boot整合持久层技术大大简化了数据访问的复杂性,无论是通过Spring Data JPA的便捷操作,还是MyBatis的灵活SQL,都能有效提升开发效率。在实际项目中,根据需求选择合适的技术,并进行合理的配置和...

    springboot框架基础上使用MyBatis简化持久层开发

    "SpringBoot框架基础上使用MyBatis简化持久层开发" 使用SpringBoot框架基础上使用MyBatis简化持久层开发,是当前流行的开发模式之一。该模式可以简化持久层开发,提高开发效率,降低开发成本。下面是使用SpringBoot...

    这是一个可以和spring 整合的db 封装

    "这是一个可以和spring整合的db封装"这个标题暗示了我们正在处理一个与Spring框架集成的数据库访问层组件。这个组件可能是为了方便开发者在Spring环境中更高效、更简洁地操作数据库。 描述中提到的"db封装"通常指的...

    java基于jdbctemplate数据持久层操作封装

    Java中的JdbcTemplate是Spring框架提供的一种用于简化JDBC(Java Database Connectivity)操作的工具,它在数据持久层操作中扮演着重要角色。JdbcTemplate通过消除大量重复的JDBC样板代码,提高了代码的可读性和可...

    Mybatis通用DAO设计封装(mybatis)

    Mybatis是一款轻量级的持久层框架,它避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。通过提供自定义SQL、存储过程以及高级映射,Mybatis使得开发者能够专注于编写高质量的代码,而无需关心底层数据库交互...

    spring mvc+mybatis封装

    Spring MVC负责处理HTTP请求并提供视图层的管理,而MyBatis则是一个轻量级的持久层框架,专注于SQL映射和数据库交互。将这两个框架进行封装,可以极大地提高开发效率,简化项目结构,并促进代码的可维护性。下面将...

    Spring从入门到精通 源码

     全书共分14章,内容涵盖了Spring的基础概念、核心容器、Spring AOP、事务处理、持久层封装、Web框架、定时器、Spring和Struts、Spring和Hibernate、Spring和Ant、Spring和Junit。本书适用于...

    基于Java的持久层框架,零配置,零SQL操作持久层.zip

    Java持久层框架是Java开发中用于数据库操作的关键技术,它为开发者提供了抽象化的数据库访问机制,使得开发者可以避免直接编写繁琐的SQL语句,提高开发效率。本资料包"基于Java的持久层框架,零配置,零SQL操作持久...

    springboot+mybatis封装第二版

    SpringBoot简化了Spring应用的初始搭建以及开发过程,而MyBatis则是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。现在我们将深入探讨"springboot+mybatis封装第二版"这一主题。 首先,"最小侵入...

    spring和数据库层的结合

    #### 一、Spring与持久化层的整合:O/R Mapping **O/R Mapping(对象关系映射)**是一种编程技术,用于将面向对象的应用程序中的数据转换成关系型数据库中的记录。在Java领域,Spring框架通过与ORM工具如Hibernate...

    Spring从入门到精通(珍藏版)

     全书共分14章,内容涵盖了Spring的基础概念、核心容器、Spring AOP、事务处理、持久层封装、Web框架、定时器、Spring和Struts、S pring和Hibernate、Spring和Ant、Spring和Junit。本书适用于初、中级软件开发人员...

    spring+hibernate,自己封装了原生sql的处理,模仿mybatis使用

    MyBatis是一个轻量级的持久层框架,它允许开发者编写原生的SQL语句并将其与Java代码绑定。这样的设计提供了更多的灵活性,尤其是在处理复杂查询或性能调优时。开发者可能为了项目需求,或是对现有MyBatis的扩展或...

    springMVC+Mybatis无缝对接封装好的直接对数据库表进行增删改查等等

    Spring MVC 提供了模型-视图-控制器(MVC)架构模式,用于处理 Web 请求,而 Mybatis 是一个轻量级的持久层框架,简化了 SQL 操作与 Java 代码的集成。将两者无缝对接,可以极大地提高开发效率,减少重复工作。 ...

Global site tag (gtag.js) - Google Analytics