资源预览内容
第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
亲,该文档总共7页全部预览完了,如果喜欢就下载吧!
资源描述
黄金组合之全面整合,让spring管理struts,spring管理hibernateSpring+Hibernate一、新建web工程,ssh 1. 导入spring 选择jar包,注意不要导入hibernate2的包,其它全要。 然后是applicationContext.xml放在src下,方便后期测试 后期可以放到webRoot/web-inf下 有重复的,选择覆盖 copy到当前目录下 2. 导入hibernate, 要选3.0,spring不支持3.1 选中copy.,再next 选中生成在spring配置文件 再next,选中已经存在的配置文件 再写sessionFactory ID=sessionFactory,next 填写数据源,beanid=ds,再next 去掉create sessionFactory class代表全部由spring托管 覆盖 3. 建立包:org.arp.hibernateorg.arp.hibernate.poorg.arp.hibernate.daoorg.arp.well.delegate 4. 导入日志配置文件src/log4j.properties 5. 导入mysql.jar,不能拷贝到lib下,也找不到,这时要在buildPath中导入外部jar 6. 如果报错:这里不能有空格或回车符二、spring整合hibernate 1. 查看applicationContext.xml有了变化,多了hibernate的配置 2. 建立表的映射 选择数据库视图,arp数据库 生成users.hbm.xml与Users.java 去掉catagory属性,否则会报错 也在applicationContext.xml中增加了映射 3. 整合hibernate有两种方式 4. 第一种方式,继承 org.springframework.orm.hibernate3.HibernateTemplate,该类是spring封装了操作Hibernate的实现细节的类,用于代替Session的相关操作 1)在dao包中写接口IDao, public interface IDao public void save(Users u);public List getAll();public boolean validate(Users u); UserDao extends HibernateDaoSupport implements IDaopublic class UserDao extends HibernateDaoSupport implements IDao public void save(Users u) this.getHibernateTemplate().save(u); 2)在spring中配置UserDao,从哪取连接,property二择其一 给继承了HibernateDaoSupport的对象我们注入一个sessionFactory 对象也可以,他会自动生成一个hibernateTemplate对象 !- 3)测试 导入mysql.jar,不能拷贝到lib下,也找不到,这时要在buildPath中导入外部jar去掉users.hbm.xml中的catagory属性,否则会报错ApplicationContext ac = new ClassPathXmlApplicationContext(applicationContext.xml);IDao dele = (IDao)ac.getBean(userdao);Users u = new Users();u.setUid(userdao);u.setPwd(123);u.setVersion(2);dele.save(u); 5. 第二种方式 1) 新建一个类UserDao2,加一成员变量HibernateTemplate 加一构造函数,注入sessionFactory 加一setter方法,注入sessionFactory public class UserDao2 implements IDaoprivate HibernateTemplate hibernateTemplate;public UserDao2(HibernateTemplate hibernateTemplate) this.hibernateTemplate = hibernateTemplate;public void save(Users u)hibernateTemplate.save(u); 2) 改配置文件applicationContext.xml 6. HibernateDaoSupport与连接的管理自动关闭连接会造成延迟加载初始化异常,此时可用OpenSessionInView模式解决。Spring提供Open Session In View来解决这个问题Filter,在web.xml中配置 hibernateFilter org.springframework.orm.hibernate3.support.OpenSessionInViewFilter hibernateFilter *.do加了这个配置,就要加监听器和初始文件的参数,否则报错 contextConfigLocation /WEB-INF/applicationContext.xml org.springframework.web.context.ContextLoaderListener 7. spring整合hibernate事务 Spring提供的事务管理可以分为两类:编程式的和声明式的。 声明式的,其DAO必须要有接口,否则声明式事务就会报错。配置文件 PROPAGATION_REQUIREDPROPAGATION_REQUIRED,readOnly userdao4 proxyTemplate 不用事务,即使报错也始终能插入进去一条。用了事务,一报错则一条都不进去。 配置完成前,将defaultAutoCommit设成false后,始终插入不进去。 配置完成后,将使用声明式事务能插
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号