1、Hibernate 处理一对一 双向关联关系,相关练习是框架上课内容 hibernatelession41. 准备工作,加入 hibernate 框架支持,配置 hibernate,也可以再配置好 c3p0 数据库连接池,加入 junit 支持,配置外挂二级缓存等等。2.User 此表只是问题说明,不是数据库中的数据表,字段名也不一致Id name1 张一2 张二CardId code1 13012319819293838342 13012319819293838353.建立 User 的实体类public class User int userId;String userName;Card
2、card;/省略所有 get set 方法。4.建立 Card 的实体类public class Card int cardId;String cardCode;User user;/特殊字段。/省略所有 get set 方法。5.User.hbm.xml 映射文件的配置6. Card.hbm.xml 映射文件的配置/说明,由于两表是一对一关系,可以选用任一表作为主表,另一个表作为引用的外健。这里我们假设 Card 表中的 id 是引用的 User 表中的 id.也说是 User 表是主表。user7. hibernate.hbm.xml中:8.测试(1)增加数据com.pojo.User u
3、ser = new com.pojo.User();user.setUserName(“zhangsan“);com.pojo.Card card = new com.pojo.Card();card.setCardCode(“1300000000“);/session.save();card.setUser(user); /在上面,将 User 作为了主表,从表 Card 的数据来源于主表 User(2)查询数据com.pojo.User user = (com.pojo.User) session.get(com.pojo.User.class, 1);System.out.println
4、(user.getCard().getCardCode();或:Card card=session.get(com.pojo.Card.class,1);System.out.println(card.getUser().getUserName();(3)删除数据User user = (User) session.get(com.pojo.User.class, 1);session.delete(user);结果:将会提示无法执行。因为照上面的配置,User是主表,card表中的数据对它有依赖。9. 删除数据Card card=(Card)session.get(Card.class,1);session.delete(card);结果:正确执行。数据成功被删除。10.将 user.hbm.xml 中修改测试:User user = (User) session.get(com.pojo.User.class, 1);session.delete(user);结果 User 和 Card 中的数据被级联删除。