ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:22.39KB ,
资源ID:3677177      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3677177.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第十三章spring应用spring管理hibernate.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第十三章spring应用spring管理hibernate.docx

1、第十三章spring应用spring管理hibernate第十三章spring管理hibernate 学习目标 学习内容在使用hibernate的过程中,我们体验到了把数据当成对象来处理的方便,但是仍然没有脱离从前使用jdbc时,打开连接关闭连接之类的重复操作。我们还是需要不停的打开session然后关闭,偶而在过程中还要处理一下事务。而在有了spring之后,我们这些复杂的重复劳动,终于可以解脱了。Spring提供了对orm框架的支持,这其中当然也包括了hibernate,我们可以通过spring为hibernate提供数据源,管理映射对象,管理事务等。先来做一个干扰性最小的集成方式,在本例

2、中,hibernate的配置完全由自己完成,不依赖spring,只由spring管理session对象与事务处理。创建实体对象User.javapackage ch04.entity;import java.io.Serializable;public class User implements Serializable private Integer uid; private String username; private String password; public Integer getUid() return uid; public void setUid(Integer uid)

3、 this.uid = uid; public String getUsername() return username; public void setUsername(String username) this.username = username; public String getPassword() return password; public void setPassword(String password) this.password = password; 映射文件:User.hbm.xml!DOCTYPE hibernate-mapping PUBLIC -/Hibern

4、ate/Hibernate Mapping DTD 3.0/EN hibernate.cfg.xml!DOCTYPE hibernate-configuration PUBLIC -/Hibernate/Hibernate Configuration DTD 3.0/EN root jdbc:mysql:/127.0.0.1:3306/test?&useUnicode=true&characterEncoding=gb2312 org.hibernate.dialect.MySQLDialect mysql root com.mysql.jdbc.Driver true tru

5、e UserDao.javapackage ch04.dao;import ch04.entity.User;public interface UserDao boolean add(User u); boolean del(User u); User getUserByName(User u);实现类,需要继承自org.springframework.orm.hibernate3.support.HibernateDaoSupport 类,以便于spring可以为本类对象注入sessionfactory对象。UserDaoImpl.javapackage ch04.dao.impl;impo

6、rt java.util.List;import org.springframework.dao.DataAccessException;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import ch04.dao.UserDao;import ch04.entity.User;public class UserDaoImpl extends HibernateDaoSupport implements UserDao public boolean add(User u) try /得到操作模板 th

7、is.getHibernateTemplate().save(u); return true; catch (DataAccessException e) logger.error(e); return false; public boolean del(User u) getSession().delete(u); return false; public User getUserByName(User u) List ulist = (List) getHibernateTemplate().findByExample(u); if (ulist.size() != 0) return u

8、list.get(0); else return null; Override public String toString() return 测试; 配置文件:spring-hibernate.xml !- 详细见readme.txt - 在配置中, 用标签管理了事务的关注点,这在上次学习中已经给大家做过介绍,重点讲解一下execution的表达方式,要注意,这个方法签名定义切点的方式,支持的是方法: execution(public * *(.) 所有公有的方法, 第一个*表示返回值 第二个表示方法名 execution(* *User(.)这里第一个星表示返回值类型 上面定义了关注所有以

9、User结尾的方法 如:getUser() addUser() deleteUser() execution(* ch04.dao.UserDao.*(.)关注userdao接口定义的方法 execution(* ch04.dao.UserDao+.*(.)关注userdao接口和子类的方法,注意,这里包括了UserDaoImpl中定义的方法 execution(* com.*.*Dao.find*(.) 关注所有com包中子包内后缀为Dao的类里,以find开头的方法 关于参数的定义execution(* add(.) .表示的任意多个任意类型的参数 也可以用*来表示任意类型参数 如: ex

10、ecution(* add(*,int) execution(* add(String,.)第一个参数为String其它不限除了上面对于相应的hibernate事务处理进行aop管理之外,还可以为事务进行更详细的配置,比如: !- 这里可以指定方法名称的定义 如 propagation 事务的传播行为 : required必需的 supports支持 never从不 . read-only 事务是否是只读的 no- rollback-for 不回滚的异常 rollback-for回滚的异常,可以用,分开 - 测试类:Test.javapackage ch04.util;import org.s

11、pringframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import ch04.dao.UserDao;import ch04.entity.User;public class Test public static void main(String args) ApplicationContext ac=new ClassPathXmlApplicationContext(ch04/spring-hibernate.xm

12、l); UserDao ud=(UserDao) ac.getBean(userDao); /加用户 User u=new User(); u.setUsername(admin);/ u.setPassword(aaa); ud.add(u); u=ud.getUserByName(u); System.out.println(u.getUid()+:+u.getUsername()+:+u.getPassword(); 运行结果:Hibernate: insert into usertable (username, password) values (?, ?)Hibernate: sel

13、ect this_.uid as uid0_0_, this_.username as username0_0_, this_.password as password0_0_ from usertable this_ where ( this_.username=? )1:admin:null在上面的例子中,hibernate本身配置由自己完成,spring只起到辅助作用,帮助使用者完成了相应的sessionfactory、session及事务的管理。当然还有更深入的一些方式,比如我们可以省掉hibernate的配置文件,sessionfactory完全由spring提供。 其它部分基本一置,去掉hibernate.cfg.xml就行了,所以这里只给出配置文件写法:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1