第16章 Spring的数据访问ppt课件.ppt
《第16章 Spring的数据访问ppt课件.ppt》由会员分享,可在线阅读,更多相关《第16章 Spring的数据访问ppt课件.ppt(24页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第第16章章 Spring的数据访问的数据访问第十六章第十六章Spring的数据访问的数据访问与与JDBC的整合的整合 nJDBC的重要性的重要性vJDBC通过为操作数据库提供统一接口,使得不同的数据通过为操作数据库提供统一接口,使得不同的数据库具有了统一处理的流程,因此,库具有了统一处理的流程,因此,JDBC在在Java应用开应用开发中占有非常重要的地位,它在很大程度上屏蔽了数据发中占有非常重要的地位,它在很大程度上屏蔽了数据库的不一致性问题。库的不一致性问题。 Spring JDBC简介简介 nSpring JDBC抽象框架主要由以下四个包组成:抽象框架主要由以下四个包组成: 包由包由Jd
2、bcTemplate类以及相关的回调接口和类组成;类以及相关的回调接口和类组成; 包由一些用来简化包由一些用来简化DataSource访问的工具类,以及各种访问的工具类,以及各种DataSource接口的简单实现(主要用于单元测试以及在接口的简单实现(主要用于单元测试以及在J2EE容器容器之外使用之外使用JDBC)组成。)组成。 包由封装了查询、更新以及存储过程的类组成,这些类的对象都是包由封装了查询、更新以及存储过程的类组成,这些类的对象都是线程安全并且可重复使用的。线程安全并且可重复使用的。 包提供了一些包提供了一些SQLException的转换类以及相关的工具类的转换类以及相关的工具类
3、JdbcTemplate类类 nJdbcTemplatev JdbcTemplate是是core包的核心类,它替开发人员完成了资源的创建包的核心类,它替开发人员完成了资源的创建以及释放工作,以及释放工作,JdbcTemplate可以完成可以完成SQL查询、更新以及调用存查询、更新以及调用存储过程,可以对储过程,可以对ResultSet进行遍历并加以提取,还可以捕获进行遍历并加以提取,还可以捕获JDBC异常。异常。 JdbcTemplate类类 n使用使用JdbcTemplate进行编码进行编码v 只需要根据明确定义的一组契约来实现回调接口,只需要根据明确定义的一组契约来实现回调接口,Prepa
4、redStatementCreator回调接口通过给定的回调接口通过给定的Connection创建创建一个一个PreparedStatement,包含,包含SQL和任何相关的参数。和任何相关的参数。CallableStatementCreateor实现同样的处理,只不过其创建的是实现同样的处理,只不过其创建的是CallableStatement,RowCallbackHandler接口则从数据集的每一接口则从数据集的每一行中提取值。行中提取值。NamedParameterJdbcTemplate类类 nNamedParameterJdbcTemplate类类v 增加了在增加了在SQL语句中使用
5、命名参数的支持,在此之前,在传统的语句中使用命名参数的支持,在此之前,在传统的SQL语句中,参数都是用语句中,参数都是用“?”占位符来表示的。占位符来表示的。NamedParameterJdbcTemplate类在内部封装了一个普通的类在内部封装了一个普通的JdbcTemplate,并作为其代理来完成大部分工作。,并作为其代理来完成大部分工作。 String sql = select count(0) from T_ACTOR wherefirst_name = :first_name;NamedParameterJdbcTemplate template =new NamedParamete
6、rJdbcTemplate(this.getDataSource();SqlParameterSource namedParameters =new MapSqlParameterSource(first_name, firstName);return template.queryForInt(sql, namedParameters); SimpleJdbcTemplate类类-1 nSimpleJdbcTemplate类类v JdbcTemplate类的一个包装器(类的一个包装器(wrapper),它利用了),它利用了Java 5的一些语言的一些语言特性,比如:特性,比如:Varargs和
7、和Autoboxing。 public Actor findActor(long id) String sql = select id, first_name, last_name from T_ACTOR where id = ?;RowMapper mapper = new RowMapper() public Object mapRow(ResultSet rs, int rowNum)throws SQLException Actor actor = new Actor();actor.setId(rs.getLong(Long.valueOf(rs.getLong(id);actor
8、.setFirstName(rs.getString(first_name);actor.setLastName(rs.getString(last_name);return actor;JdbcTemplate jdbcTemplate = new JdbcTemplate(this.getDataSource();return (Actor) jdbcTemplate.queryForObject(sql,mapper, new Object Long.valueOf(id);SimpleJdbcTemplate类类-2下面是同一方法的另一种实现,惟一不同之处是使用了下面是同一方法的另一种
9、实现,惟一不同之处是使用了SimpleJdbcTemplate,这样代码显得,这样代码显得更加清晰。更加清晰。/ SimpleJdbcTemplate-style.public Actor findActor(long id) String sql = select id, first_name, last_name from T_ACTOR where id = ?;ParameterizedRowMapper mapper =new ParameterizedRowMapper() / notice the return type with respect to Java 5/ covar
10、iant return typespublic Actor mapRow(ResultSet rs, int rowNum)throws SQLException Actor actor = new Actor();actor.setId(rs.getLong(id);actor.setFirstName(rs.getString(first_name);actor.setLastName(rs.getString(last_name);return actor;/ again, normally this would be dependency injected of course.Simp
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第16章 Spring的数据访问ppt课件 16 Spring 数据 访问 ppt 课件
限制150内