通过代码实例跟我学ssh三大框架相互整合的应用技术第6部分——实现与hibernate持久层框架的最终整合的应用实例内容摘要:
perty /bean 实现相互整合时在 Spring 的 IoC 的 *.xml 配置文件中的 主要 配置项目 ( 1)为 sessionFactory 配置一个 DataSource ( 2)配置一个 hibernateProperties 也是给sessionFactory 用的。 利用它 可以把所有要给 Hibernate 的设置统一放在一起。 ( 3 ) 配 置 sessionFactory( )组件 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 10/29 页 并 在 其 属性 dataSource 中 引 用 我 们 前 面 所 定 义 的 DataSource , 在 属 性hibernateProperties 中 定义我们的 Hibernate 的各个属性项目 ,这样, sessionFactory就知道到哪去取连接、怎么设置 Hibernate 的工作方式等。 然后在属性 mappingResources 中配一个 list,把所有的 . 加入 进去。 ( 4 ) 配 置 transactionManager( ) 这是将来给所有的 service 方法做声明式事务管理用的。 只要把属性 sessionFactory给 ref 上就可以。 ( 5)为了简化将来 service 方法的配置,对遵循某些规则命名的 service 方法自动设置上对应的事务管理 再配一个,让它lazyinit=true, abstract=true。 把属性 transactionManager 给 ref 上,然后配置属性transactionAttributes。 ( 6)最后,应该使用 OpenSessionInView 模式来管理 session 在 中 加 入 这个 filter,设置好 filtermapping, session 就会自动打开和关闭。 下面介绍方式一的实现过程 准备数据库系统 ( 1)在 MS SQLServer2020 中的 WebStudyDB 中准备一个数据库表 SpringUserInfo(可以直接由讲义中所提供的 数据库中导入)。 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 11/29 页 ( 2)在该表中包含一些数据 ( 3)将 JBuilder 中的所配置的 MS SqlServer2020 的驱动程序库添加到本 Project 中 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 12/29 页 将 Hibernate 所需要的 *.jar 包文件添加到本 Project 中 ( 1)主要包括下面的各个 *.jar 文件 、 、 、 、 、 、 、 和。 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 13/29 页 ( 2)然后将它们添加到本 Project 中 配置 属性文件 ( 1)从 Hibernate 的分发版(它在 etc/目录下)拷贝一个 模板文件 ( 2) 并且将它放 在本 Web 应用的 WEBINF/classes 的目录下。 注意:由于本示例是在前面的与 Struts 的结合的文档的基础上来扩展的,因此在前面已经将 文件放到 WEBINF 的目录下。 这样就不需要在进行 的配置。 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 14/29 页 编写 POJO 类 ( 1)类名称为 UserInfo,包名称为 strutsspringweb ( 2)编程该类 package strutsspringweb。 public class UserInfoPOJO //计划将它 作为 DTO 类 { 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 15/29 页 private String id。 private String userName。 private String userPassword。 private String registerTime。 private String departName。 private int userKind。 private int departKind。 public UserInfoPOJO() { } public String getId() { return id。 } private void setId(String id) { = id。 } public String getUserName() { return userName。 } public void setUserName(String userName) { = userName。 } public String getUserPassword() { return userPassword。 } 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 16/29 页 public void setUserPassword(String userPassword) { = userPassword。 } public String getRegisterTime() { return registerTime。 } public void setRegisterTime(String registerTime) { = registerTime。 } public String getDepartName() { return departName。 } public void setDepartName(String departName) { = departName。 } public int getUserKind() { return userKind。 } public void setUserKind(int userKind) { = userKind。 } public int getDepartKind() { 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 17/29 页 return departKind。 } public void setDepartKind(int departKind) { = departKind。 } public boolean equals(Object other) //Object (B) { if (this == other) { return true。 } if (! (other instanceof UserInfoPOJO)) { return false。 } return true。 } } 注意: 由于在前面讨论与 Struts 的结合时,已经有一个 UserInfo 类,但它是 VO 对象。 其中的属性与 PO 不一样,因此应该对 VO 进行转换为 PO 对象。 5 、提供 UserInfoPOJO 类与 SpringUserInfo 数据库表之间的 映射文件 ( 1) 的内容 ?xml version=? !DOCTYPE hibernatemapping PUBLIC //Hibernate/Hibernate Mapping DTD hibernatemapping class name= table=SpringUserInfo 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 18/29 页 id name=id type=string unsavedvalue=null column name=userID sqltype=char(50) notnull=true/ generator class=/ /id property name=userName column name=userName length=50 notnull=true/ /property property name=userPassword column name=userPassWord length=50 notnull=true/ /property。通过代码实例跟我学ssh三大框架相互整合的应用技术第6部分——实现与hibernate持久层框架的最终整合的应用实例
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。