博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
对JDBC的支持 之 7.1 概述
阅读量:6096 次
发布时间:2019-06-20

本文共 2303 字,大约阅读时间需要 7 分钟。

hot3.png

概述

    JDBC回顾

传统应用程序开发中,进行JDBC编程是相当痛苦的,如下所示:

//cn.javass.spring.chapter7. TraditionalJdbcTest  @Test  public void test() throws Exception {      Connection conn = null;      PreparedStatement pstmt = null;      try {        conn = getConnection();              //1.获取JDBC连接                                         //2.声明SQL        String sql = "select * from INFORMATION_SCHEMA.SYSTEM_TABLES";        pstmt = conn.prepareStatement(sql);    //3.预编译SQL        ResultSet rs = pstmt.executeQuery();   //4.执行SQL        process(rs);                       //5.处理结果集        closeResultSet(rs);                 //5.释放结果集        closeStatement(pstmt);              //6.释放Statement        conn.commit();                    //8.提交事务      } catch (Exception e) {        //9.处理异常并回滚事务        conn.rollback();        throw e;      } finally {        //10.释放JDBC连接,防止JDBC连接不关闭造成的内存泄漏        closeConnection(conn);      }  }

以上代码片段具有冗长、重复、容易忘记某一步骤从而导致出错、显示控制事务、显示处理受检查异常等等。

    有朋友可能重构出自己的一套JDBC模板,从而能简化日常开发,但自己开发的JDBC模板不够通用,而且对于每一套JDBC模板实现都差不多,从而导致开发人员必须掌握每一套模板。

    Spring JDBC提供了一套JDBC抽象框架,用于简化JDBC开发,而且如果各个公司都使用该抽象框架,开发人员首先减少了学习成本,直接上手开发,如图7-1所示。

140107_YlnJ_1417419.jpg

图7-1 Spring JDBC与传统JDBC编程对比

    Spring对JDBC的支持

    Spring通过抽象JDBC访问并提供一致的API来简化JDBC编程的工作量。我们只需要声明SQL、调用合适的Spring JDBC框架API、处理结果集即可。事务由Spring管理,并将JDBC受查异常转换为Spring一致的非受查异常,从而简化开发。

    Spring主要提供JDBC模板方式、关系数据库对象化方式和SimpleJdbc方式三种方式来简化JDBC编程,这三种方式就是Spring JDBC的工作模式:

  • JDBC模板方式:Spring JDBC框架提供以下几种模板类来简化JDBC编程,实现GoF模板设计模式,将可变部分和非可变部分分离,可变部分采用回调接口方式由用户来实现:如JdbcTemplate、NamedParameterJdbcTemplate、SimpleJdbcTemplate。

  • 关系数据库操作对象化方式:Spring JDBC框架提供了将关系数据库操作对象化的表示形式,从而使用户可以采用面向对象编程来完成对数据库的访问;如MappingSqlQuery、SqlUpdate、SqlCall、SqlFunction、StoredProcedure等类。这些类的实现一旦建立即可重用并且是线程安全的。

  • SimpleJdbc方式:Spring JDBC框架还提供了SimpleJdbc方式来简化JDBC编程,SimpleJdbcInsert 、 SimpleJdbcCall用来简化数据库表插入、存储过程或函数访问。

Spring JDBC还提供了一些强大的工具类,如DataSourceUtils来在必要的时候手工获取数据库连接等。

    Spring的JDBC架构

Spring JDBC抽象框架由四部分组成:datasource、support、core、object。如图7-2所示。

140447_7mOT_1417419.jpg

  • support包:提供将JDBC异常转换为DAO非检查异常转换类、一些工具类如JdbcUtils等。

  • datasource包:提供简化访问JDBC 数据源(javax.sql.DataSource实现)工具类,并提供了一些DataSource简单实现类从而能使从这些DataSource获取的连接能自动得到Spring管理事务支持。

  • core包:提供JDBC模板类实现及可变部分的回调接口,还提供SimpleJdbcInsert等简单辅助类。

  • object包:提供关系数据库的对象表示形式,如MappingSqlQuery、SqlUpdate、SqlCall、SqlFunction、StoredProcedure等类,该包是基于core包JDBC模板类实现。

转载于:https://my.oschina.net/heroShane/blog/203618

你可能感兴趣的文章
http://www.blogjava.net/pdw2009/archive/2007/10/08/151180.html
查看>>
hadoop(6)---mapred-site.xml 详解以及常用配置。
查看>>
修改GRUB2背景图片
查看>>
Ajax异步
查看>>
好记性不如烂笔杆-android学习笔记<十六> switcher和gallery
查看>>
JAVA GC
查看>>
codeforce 599B Spongebob and Joke
查看>>
3springboot:springboot配置文件(外部配置加载顺序、自动配置原理,@Conditional)
查看>>
9、Dubbo-配置(4)
查看>>
前端第七天
查看>>
BZOJ 2190[SDOI2008]仪仗队
查看>>
图解SSH原理及两种登录方法
查看>>
[转载] 七龙珠第一部——第058话 魔境圣地
查看>>
【总结整理】JQuery基础学习---样式篇
查看>>
查询个人站点的文章、分类和标签查询
查看>>
基础知识:数字、字符串、列表 的类型及内置方法
查看>>
JSP的隐式对象
查看>>
P127、面试题20:顺时针打印矩阵
查看>>
JS图片跟着鼠标跑效果
查看>>
[SCOI2005][BZOJ 1084]最大子矩阵
查看>>