spring教程3应用.ppt
《spring教程3应用.ppt》由会员分享,可在线阅读,更多相关《spring教程3应用.ppt(38页珍藏版)》请在三一办公上搜索。
1、第 三 章,Spring 应用,2,目标,撑握Spring JDBC辅助类了解Spring DAO撑握Spring与Hibernate的整合撑握Spring声明式事务配置了解Spring中定时调度的使用撑握Spring的单元测试,3,Spring JDBC抽象框架提供了对JDBC操作的完整封装,包括:指定数据库连接参数打开数据库连接声明SQL语句预编译并执行SQL语句遍历查询结果处理每一次遍历操作处理抛出的任何异常处理事务关闭数据库连接,Spring JDBC,4,Spring JDBC包的构成:org.springframework.jdbc.core 该包定义JDBCTemplate及一些
2、回调接口用于封装JDBC的常见操作。org.springframework.jdbc.datasource用于提供数据源绑定。org.springframework.jdbc.object它提供比core包更高层次的封装,它操作的数据是可以与数据库断开连接的。org.springframework.jdbc.support提供了一些SQLException的转换类以及相关的工具类。,Spring JDBC,5,DataSource接口提供了对数据源的封装。,Spring JDBC Core,示例在Spring注册一个数据源实例,6,Spring JDBC Core,JDBCTemplate提供
3、了对JDBC操作的封装PreparedStatement(接口)用于建立PreparedStatement的回调接口ResultSetExtractor(接口)用于将Result数据转换成Java的POJO的回调接口RowCallbackHandler(接口)用于处理结果集的回调接口,例如删除记录集中的行或更新记录集中的行。RowMapper(接口)用于将结果集中当前行映射到一个Java对象,7,Spring JDBC 示例,使用JDBCTemplate将查询结果转换成二维数组,List rows=(List)this.getJdbcTemplate().query(new PreparedS
4、tatementCreator()public PreparedStatement createPreparedStatement(Connection conn)throws SQLException return conn.prepareStatement(select*from stud);,new ResultSetExtractor()public Object extractData(ResultSet rs)throws SQLException,DataAccessException/将结果集转换成二维数组List rows=new ArrayList();java.sql.R
5、esultSetMetaData rsm=rs.getMetaData();while(rs.next()List recls=new ArrayList();for(int i=1;i=rsm.getColumnCount();i+)recls.add(rs.getObject(i);rows.add(recls);return rows;);,8,Spring JDBC 示例,快速获取第一行第一列数据,this.getJdbcTemplate().queryForInt(select count(*)from stud where sex=?,new ObjectF);,执行更新,新加或删
6、除操作,this.getJdbcTemplate().update(delete from stud where set=?,new ObjectF);,执行回调方法,this.getJdbcTemplate().execute(new ConnectionCallback()public Object doInConnection(Connection conn)throws SQLException,DataAccessException conn.prepareStatement(delete from stud).execute();return null;);,9,Spring JD
7、BC Dao,JdbcDaoSuppor可用于建立自定义DAO的父类。,public class DaoBase extends JdbcDaoSupport,10,Spring 与Hibernate,Spring提供的LocalSessionFactoryBean可用于注册Hibernate的SessionFactory。,属性hibernateProperties用于指定Hibernate的配置参数configLocation指定配置文件mappingResources指定映射文件,11,Spring 与Hibernate,HibernateTemplate用于提供对Hibernate操作
8、的封装。,HibernateDaoSupport用于提供建立Hibernate DAO的父类。,12,Spring 与Hibernate,Spring提供了OpenSessionFilter用于解决Hibernate的延迟初始化问题,示例在Web.xml中配置OpenSessionFilter,openSessionFilterorg.springframework.orm.hibernate3.support.OpenSessionInViewFilteropenSessionFilter/*,13,Spring 声明式事务,声明式事务与编程式的事务本质区别在于前节通过配置来声明事务。Spr
9、ing同时支持声明式事务与编程式事务。Spring事务抽象接口PlatformTransactionManager 它实现了统一的事务获取,提交,回滚的方法。TransactionStatus getTransaction(TransactionDefinition definition)用于获取事务。commit(TransactionStatus status)用于提交事务rollback(TransactionStatus status)用于回滚事务,14,Spring 声明式事务,Spring针对不同的事务实现提供了不同的事务抽象。DataSourceTransactionManage
10、r提供了对JDBC事务的支持HibernateTransactionMangager提供了对Hibernate事务的支持JDOTransactionManager对使用JDO持久化的事务支持JTATransactionManager使用JTA来管理事务,应用跨多个数据源时使用,15,Spring 事务抽象,事务抽象可作为一个bean在配置文件中声明,它实际上是针对于不同的ORM机制的事务代理对象。配置JDBC事务抽象,配置Hibernate事务抽象,16,Spring 编程事务,Spring提供了TransactionTemplate模板类,其使用具体的事务抽象封装了通用事务操作。例配置Tra
11、nsactionTemplate并将其注入到业务类,17,Spring 编程事务,在代码中使用TransactionTemplate,this.getTrxTemplate().execute(new TransactionCallback()public Object doInTransaction(TransactionStatus ts)try/TODO:在事务中运行的脚本catch(Exception e)ts.setRollbackOnly();/设置回滚return null;/正常返回将提供交事务);,18,Spring 声明式事务,Spring的声明式事务是建立在拦截通知之上的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- spring 教程 应用
链接地址:https://www.31ppt.com/p-6520226.html