`
dasheng
  • 浏览: 148008 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring 的JdbcTemplate的持久层封装

阅读更多

1,Spring 2.0提供了几种常用的持久层访问方式:

 

1,Jdbc,-----------JdbcTemplate;

2,hibernate ,-------hibernateTemplate;

3,JDO

4,Oracle TopLink;

5,iBATIS SQL Maps;

6,JPA;

 

 

2,jdbc封装的相关类:

 

   JdbcDaoSupport:

   对 JdbcTemplate的封装,通过getJdbcTemplate()的得到JdbcTemplate对象。有setDataSource方法,通过该方法 对JdbcTemplate初始化,createJdbcTemplate(dataSource)。

 

   通过xml配置id 为dataSource的bean。格式如下:

 


<bean id="dataSource" destroy-method="close" 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>

 

这是用数据源的dataSource的标准设置, hibernate的数据源也是这样配置。

 

在DAO的配置中,必须把dataSource作为reference注入进去。

 

JdbcAccessor :JdbcTemplate父类,实现了一些基本方法,比如:setLazyInit,isLazyInit,afterPropertiesSet,

setDatabaseProductName,setExceptionTranslator;

 

JdbcOperations:JdbcTemplate父接口,定义了一些的数据访问的操作。execute,query。

 

SqlProvider:sql语句提供接口。

 

DataSourceUtils:数据源管理接口,提供静态的方法,负责数据源的连接,

得到连接:   Connection getConnection(DataSource dataSource);

关闭连接:releaseConnection(Connection con, DataSource dataSource);

 

PreparedStatementCreator:PreparedStatement生成接口,只有一个方法需要实现:

PreparedStatement createPreparedStatement(Connection con);

 

PreparedStatementCallback:PreparedStatement操作接口,只有一个方法需要实现:

Object doInPreparedStatement(PreparedStatement ps) ;

 

CallableStatementCreator:CallableStatement生成接口,只有一个方法需要实现:

CallableStatement createCallableStatement(Connection con);

 

RowCallbackHandler:行操作接口,只有一个方法需要实现:

void processRow(ResultSet rs) ;

 

ConnectionCallback:连接操作接口;只有一个方法需要实现:

 

Object doInConnection(Connection con);

 

3,JdbcTemplate的异常处理:

 

getExceptionTranslator()得到异样翻译器SQLErrorCodeSQLExceptionTranslator。他的方法:

translate(String task, String sql, SQLException sqlEx)来翻译异常,错误代码在文件里:sql-error-codes.xml。

 

觉得JdbcTemplate的异常处理不是,很好,往往不能精确的定位异样,试需要手工配置新文件,还是需要程序处理,不是很明白。

 

4,NamedParameterJdbcTemplate:带参数的JdbcTemplate。类似如下:

 

private NamedParameterJdbcTemplate namedParameterJdbcTemplate;
public void setDataSource(DataSource dataSource) {
this.namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(dataSource);
}
public int countOfActorsByFirstName(String firstName) {
String sql = "select count(0) from T_ACTOR where first_name = :first_name";
Map namedParameters = Collections.singletonMap("first_name", firstName);
return this.namedParameterJdbcTemplate.queryForInt(sql, namedParameters);

}

 

5,SimpleJdbcTemplate:jdk5.0以上简洁风格的JdbcTemplate。

 

6,另外提供了操作jdbc的java 类:

 

SqlQuery:

 

MappingSqlQuery:

 

SqlUpdate:

 

StoredProcedure:

 

SqlFunction:

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

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

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

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

    JdbcTemplate作为Spring框架提供的一种轻量级的数据库访问工具,是实现持久层操作的重要手段。本文将深入探讨JdbcTemplate的基本概念、核心功能以及如何在实际项目中使用。 **一、JdbcTemplate简介** JdbcTemplate...

    Spring--JdbcTemplate.pdf

    JdbcTemplate是Spring中常用的持久层技术之一,它支持Spring的声明式事务管理,能够与Spring的其他框架组件无缝整合。 描述中提到的"一图详解(脑图)"意味着文档中可能包含了一个清晰的图示,这个图示将详细展示...

    Spring持久层(PDF)

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

    spring mvc注解jdbctemplate

    在实际项目中,我们还可以结合Spring Data JPA或者MyBatis等更高级的持久层框架,进一步提升开发效率和代码质量。但无论选择哪种方式,理解并掌握JdbcTemplate的基本用法都是Spring MVC开发中的必备技能。

    Spring + Hibernate + JdbcTemplate

    Spring的JdbcTemplate是轻量级的数据访问抽象层,它是Spring对JDBC的一个封装,简化了数据库操作。它提供了一组模板方法来执行SQL语句,如插入、更新、删除和查询。JdbcTemplate通过异常转换和事务管理,帮助开发者...

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

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

    Spring持久化模板总结

    Spring提供了多种持久化模板,如JdbcTemplate和HibernateTemplate,以简化数据库操作并减少代码中的样板代码。这两个模板都是Spring JDBC模块的一部分,用于增强对SQL数据库的访问能力。本文将深入探讨Spring对...

    spring和数据库层的结合

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

    SpringMvc+jdbcTemplate+mysql(注解)

    @Controller标识一个类作为Spring MVC的控制器,@RequestMapping用于映射HTTP请求到特定的方法,@Service和@Repository注解标记服务和数据访问层的类,@Autowired自动注入依赖,而@SqlResultSetMapping和@...

    Spring1.zip

    Spring JDBC模块是Spring对Java数据库连接API(JDBC)的封装,它简化了数据库访问操作,提供了一种更高级的抽象层,减少了手动处理JDBC的繁琐工作。Spring JDBC支持数据源的管理、事务处理、异常处理,并且可以通过...

    JdbcTemplate操作总结

    在实际开发中,我们通常会将JdbcTemplate与DAO(Data Access Object)层结合使用,创建特定业务的DAO接口和实现。接口定义了业务操作,实现类则通过JdbcTemplate调用对应的方法。例如: ```java public interface ...

    基于spring+mybatis+redis 封装的高易用性的框架.zip

    其次,MyBatis是一个轻量级的持久层框架,它将SQL语句与Java代码解耦,通过XML或注解的方式配置映射,使得数据库操作更为直观和灵活。在Spring+MyBatis的集成中,Spring管理MyBatis的SqlSessionFactory和SqlSession...

    Java Spring框架学习笔记(内附源码).pdf

    Spring通过IoC容器管理Mybatis的SqlSessionFactory、SqlSession以及Mapper对象,使开发者能够以声明的方式完成数据库操作,进一步简化了持久层的开发。 在入门案例中,首先创建了一个User实体类,通过XML配置文件在...

    Spring mvc + Spring + Spring jdbc 整合 demo

    这个整合Demo是一个学习和实践Spring MVC、Spring和Spring JDBC整合的绝佳案例,它涵盖了Web应用开发的多个层面,从接收用户请求到数据持久化,再到视图的呈现。通过深入研究这个Demo,开发者可以更好地理解和掌握...

    spring 框架源码 版本:5.2.9.RELEASE

    再者,Spring MVC是Spring框架中的Web层组件,负责处理HTTP请求。源码中展示了DispatcherServlet如何分发请求,HandlerMapping如何映射请求到处理器,以及ModelAndView如何封装视图数据。同时,你还可以研究视图解析...

    spring-orm源码

    Spring-ORM是Spring框架的一部分,主要负责数据库操作的抽象和集成,它支持多种持久层技术,如Hibernate、JPA、iBatis等。通过阅读和理解Spring-ORM的源码,我们可以深入理解Spring如何与ORM(对象关系映射)框架...

    Spring in Action 2nd Edition英文版

    在数据库集成方面,Spring与各种持久层技术如JDBC、Hibernate和MyBatis等有良好的整合。书里会讲解如何使用Spring的数据访问抽象层,如JdbcTemplate和HibernateTemplate,来简化数据库操作,同时保持良好的封装性...

    spring开发相关jar包(json,springweb,springmvc,jdbc等)

    7. **MyBatis**:MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。Spring与MyBatis的整合,使得事务管理和DAO的实现更加...

Global site tag (gtag.js) - Google Analytics