欢迎来到天天文库
浏览记录
ID:50324616
大小:192.00 KB
页数:20页
时间:2020-03-08
《Java Web程序设计教程 教学课件 作者 范立锋 林果园 第13章 Spring与Java EE持久化数据访问.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第13章Spring与JavaEE持久化数据访问13.1Spring对DAO模式的支持13.2SpringJDBC的应用13.3JdbcTemplate13.4Spring事务处理13.1Spring对DAO模式的支持Spring框架以一种统一的方式对持久化数据的访问提供支持,所有与持久化相关的处理程序都以接口的形式暴露给外界,其他程序只需调用相应接口即可实现对持久化数据的访问操作。统一的数据异常访问通用模板及抽象类返回13.1.1Spring对DAO模式的支持—统一的数据异常访问Spring框架提供了与实现技术无关,并且面向DAO层
2、次的异常体系,结构图如下返回13.1.2Spring对DAO模式的支持—通用模板及抽象类(1)Spring框架提供的对应各持久化技术的模板类,将一些固定化的流程以模板的形式提供给开发者以简化开发流程。对应各持久化技术的模板类如下13.1.2Spring对DAO模式的支持—通用模板及抽象类(2)应用模板类必须定义模板对象并为其提供数据资源,Spring框架将各种模板类所需资源进行封装,并以抽象类形式给出。应用时只需继承特定的类并完成逻辑代码编写即可。对应各持久化技术的模板类如下返回13.2SpringJDBC的应用(1)使用Spring
3、JDBC可以大大简化操作流程普通JDBC操作方式publicvoidinsertUser(Useruser)throwsSQLException{Connectionconn=null;PreparedStatementstmt=null;Stringsql="insertintouser(name,password)values(?,?)";try{conn=getConnection();con.setAutoCommit(false);stmt=conn.prepareStatement(sql);stmt.setString(
4、0,user.getName());stmt.setString(1,user.getPassword());stmt.executeUpdate();con.commit();}catch(SQLExceptione){con.rollback();}finally{stmt.close();conn.close();}}13.2SpringJDBC的应用(2)SpringJDBC操作方式publicvoidinsertUser(Useruser){JdbcTemplatejt=newJdbcTemplate();Stringsql
5、="insertintouser(name,password)values(?,?)";Objectparams[]=newObject[]{user.getName(),user.getPassword()};jt.update(sql,params);}对比如上两段代码发现,SpringJDBC完全去掉了连接数据库资源、关闭数据库资源的代码,而有关事务处理性代码也可以通过SpringAOP来实现。返回13.3JdbcTemplate(1)SpringJDBC是基于JdbcTemplate模板实现的,该模板提供如下几个方法实现数据操
6、作update():通过该方法可以实现增加、修改及删除数据操作。该方法的几个不同应用方式如下13.3JdbcTemplate(2)batchUpdate():使用该方法可以批量执行SQL语句,该方法的两种使用形式如下所示processRow():该方法是RowCallbackHandler接口所提供的,用于获取查询结果集。使用该方法后不需要再调用查询结果ResultSet的next()方法,Spring会自动遍历结果集。该方法的应用示例如下publicUsergetUser(Integerid){Stringsql="selectna
7、me,passwordfromuserwhereid=?";finalUseru=newUser();Object[]params=newObject[]{id};13.3JdbcTemplate(3)getJdbcTemplate().query(sql,params,newRowCallbackHandler(){publicvoidprocessRow(ResultSetrs)throwsSQLException{u.setName(rs.getString("name"));u.setPassword(rs.getString
8、("password"));}});returnu;}mapRow():该方法是RowMapper接口提供的,也是用于获取查询结果集。该方法的应用示例如下publicListgetUser(Integerid){Stri
此文档下载收益归作者所有