多对多的实体映射实现.pptVIP

  • 1
  • 0
  • 约2.11千字
  • 约 23页
  • 2020-03-11 发布于广东
  • 举报
多对多的实体映射实现 1、设计本示例中所需要的数据库 5、配置Hibernate系统 6、配置perties属性文件 10、编程基于Hibernate的DAO组件以进行数据的访问操作 12、执行该Web应用 三、实现本例中的“多对多”实体之间的关联 1、在MS SQLServer的本例的数据库中增加一个数据库表BookAuthor 2、决定BookAuthor和Book之间的关系 7、在Web应用的组件中添加下面的代码 本讲内容。。。 * 多对多的实体映射实现 杨少波 trainict@ 中科院计算所职业培训中心 在本讲您能了解如下知识点 创建Hibernate的配置文件。 创建持久化类。 创建对象-关系映射文件。 编程基于Hibernate的DAO组件 实现“多对多”的关联映射 1、多对多关联的实现方案 (1)类似一对多情形中的最常用方案,为关联的双方增加到对方的外键 操作比较简单,缺点是会造成数据冗余; 一、实现“多对多”的关联映射的原理 (2)新增一张包含关联双方主键的关联表 在取数据时,需要链接该关联表和数据表,优点是没有数据冗余,缺点是带来了一定的时限复杂度。 2、注意的问题 (1)“多对多”由于使用了中间数据库表,在查询效率方面比较低 (2)并且在对象模式上,“多对多”会使得对象与对象之间彼此依赖,因此该种设计并不是一个良好的设计方式 (3)我们在系统的数据访问层的设计上应尽可能避免使用“多对多”关系。 3、多对多的关联也同样可以采用Set、List等多种方式的属性标签 4、基于中间连接表的多对多关联的映射文件的示例 注意many-to-many标签的定义 中间连接表 2、利用Hibernate连接数据库 (1)方式一:采用直接连接 (2)方式二:采用基于容器的JNDI数据源 本例采用Tomcat中所提供的JNDI的数据库连接池 二、在Web应用中实现数据库访问 4、将Hibernate的库文件放到Web应用的/WEB-INF/lib目录中 3、在Tomcat的server.xml文件进行配置 本例的XML格式的Hibernate配置文件hibernate.cfg.xml文件的内容如下 7、在Web应用所在的目录中添加数据库的JDBC驱动程序的各个*.jar包文件 8、编写POJO类及其要求 (1)POJO 简单传统Java对象(POJO----Plain Old Java Object,有时候也称作Plain Ordinary Java Objects)编程模型 Hibernate使用简单的Java对象来进行持久化。 (2)POJO类代码的风格要求 一个POJO很类似于JavaBean的代码风格 并且它应该有一个没有参数的构造函数 (3)实体类中的标识属性 id 实体类中的id 属性(property) 为一个实体类的实例提供标识属性(identifier property)的值 它是一个特殊的属性,代表了这个类的数据库标识符(主键) (4)本例中的实体类代码 (5)实体类中的equals方法 如果我们有如下需求,则必须重载 equals()方法: 想把持久类的实例放入Set中(当表示多值关联时,推荐这么做) 想重用脱管实例 实现equals()最显而易见的方法是比较两个对象标识符的值。如果值相同,则两个对象对应于数据库的同一行,因此它们是相等的(如果都被添加到 Set,则在Set中只有一个元素)。 9、映射前面所设计的Book数据库表 (1)映射文件的作用 Hibernate需要知道怎样去加载(load)和存储(store)我们的持久化类的对象。这里正是Hibernate映射文件(mapping file)发挥作用的地方 映射文件告诉Hibernate它应该访问数据库里面的哪个表(table)和应该使用表里面的哪些字段(column)。 (2)命名规则:类名.hbm.xml (3)本示例中的Book.hbm.xml映射文件的内容 11、在某个Web应用中使用上面的程序 (1)将在浏览器中看到下面的执行结果 (2)同时,在数据库表中将出现下面的记录 3、新增一个BookAuthor类 并且在BookAuthor类增加一组Book,这样我们可以轻松的通过调用aPerson.getBooks() 得到一个BookAuthor所拥有的Book列表,而不必执行一个显式的查询(一个单向的Set-based关联)。 4、为该实体类创建一个BookAuthor.hbm.xml映射文件 6、在HibernateDAOBean.java中增加一个产生关联数据的方法 5、在hibernate.cfg.xml配置

文档评论(0)

1亿VIP精品文档

相关文档