Download presentation
Presentation is loading. Please wait.
Published byJeffry Farmer Modified over 9 years ago
1
软件技术专业 熊君丽 第 5 章: Spring 集成 hibernate
2
5.1spring 整合 ORM 技术 1 方便基础设施的搭建 2 异常封装 3 统一的事务管理 4 允许混合使用多个 ORM 框架 5 方便单元测试 软件技术专业广东科学技术职业学院
3
5.2 在 spring 中使用 hibernate 5.2.1 配置 sessionfactoty 零过渡障碍的配置方式 org.hibernate.dialect.MySQLDialect jdbc:mysql://localhost:3306/test root 123 com.mysql.jdbc.Driver test spring 风格的配置 软件技术专业广东科学技术职业学院
4
更具 spring 风格 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> org.hibernate.dialect.MySQLDialect action/User.hbm.xml 软件技术专业广东科学技术职业学院
5
5.2.2 使用 HibernateTemplate 例子 5-4 ,录像 5-2-2 常用的 API 介绍 在 spring 中配置 dao 代码 5-5 软件技术专业广东科学技术职业学院
6
5.2.3 处理 lob 类型数据 例子 5-6 软件技术专业广东科学技术职业学院
7
5.2.4 添加 hibernate 事件监听器 例子 5-2-4 ,起初不行,估计是 session 类的问题,换成 <bean id="sessionFactory" class=“org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean” > 就可以 1 修改 配置文件 2 添加 监听器类 public class MyListener implements org.hibernate.event.SaveOrUpdateEventListener{ private static final Logger log = LoggerFactory.getLogger(UserDAO.class); public void onSaveOrUpdate(SaveOrUpdateEvent arg0) throws HibernateException { // TODO Auto-generated method stub System.out.println("test"); log.debug("save"); } }
8
5.2.5 使用原生 hibernate API 软件技术专业广东科学技术职业学院 例子 5-7, 并且要加上事务 Transaction tr=sessionFactory.getCurrentSession().beginTransaction(); tr.begin(); sessionFactory.getCurrentSession().save(user); tr.commit(); applicationContext.xml 文件配置 org.hibernate.dialect.MySQLDialect thread org.hibernate.transaction.JDBCTransactionFactory
9
5.2.6 使用注解配置 例子 5-8 1 修改配置文件 <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean" > dao.User 2 user.java @Entity @Table(name="user") public class User implements java.io.Serializable { // Fields @Id @GeneratedValue(strategy=GenerationType.IDENTITY) @Column(name="id") private Integer userid; @Column(name="name") private byte[] name;
10
5.2.7 事务处理 5.2.8 延迟加载的问题 OpenSessionInViewFilter org.springframework.orm.hibernate3.support.OpenSessionInViewFilter singleSession true OpenSessionInViewFilter *.action 软件技术专业广东科学技术职业学院
11
5.2dao 层设计 1 基类设计,例子源码 5-9 applicationContext.xml 文件中要删除对 baseDao 和 userDao 的 bean 声明 软件技术专业广东科学技术职业学院
12
2 查询接口方法的设计 方式 4, 例子源码 5-10 public List find(Object[] values) { String queryString=" select u.desc1 from User u where u.desc1 like ?"; List users= this.getHibernateTemplate().find(queryString, values); return users; } 软件技术专业广东科学技术职业学院
13
3 分页查询接口设计,源码 5-11 public List findOnePage(int offset, int pagesize){ Transaction tr=this.getHibernateTemplate().getSessionFactory().getCurrentSession().beginTransaction() ; tr.begin(); List lst = null; Criteria c=this.getHibernateTemplate().getSessionFactory().getCurrentSession().createCriteria(User. class); c.setFirstResult(offset); c.setMaxResults(pagesize); lst=c.list(); tr.commit(); return lst; } 软件技术专业广东科学技术职业学院
14
Click to edit company slogan.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.