Hibernate中,One2One映射关系的XML实现方式
来源:互联网 发布:工业企业 人工智能 编辑:程序博客网 时间:2024/05/20 23:30
1、关于实体之间One2One之间的映射实现
2、Person.java的实现
public class Person {private int id;private int age;private String name; // one2one,持有IdCard private IdCard idCard; //get set}3、Person.hbm.xml的配置
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><!-- 配置实体类,所在的package的名称 --><hibernate-mapping package="com.hibernate.entity"><class name="Person" table="person"><!-- 主键 ,映射 --><id name="id" column="id"><!-- 自动生成主键的规则 --><generator class="native" /></id><!-- 非主键,映射 --><property name="name" column="name"></property><property name="age" column="age"></property><!--one2one的映射 --><!--1、第一种配置方法 --><!--用于保存IdCard的外键 --><many-to-one name="idCard" unique="true" column="cardid"></many-to-one><!--2、第二种配置方法 --><!-- constrained="true",表示Student表的主键收到Idcart主键的约束,相当于同时又是个外键 --><!--这种配置方法,Student表的主键,同时也是Idcard表的外键 --><!-- <one-to-one name="idCard" constrained="true"></one-to-one> --><!--3、一个小的总结 --><!--这里面重要的一个知识点就是<many-to-one>和<one-to-one>的区别, --><!-- 这里主要应用了这个不同。<many-to-one>不仅可以加载到另一端的数据,还会在多的一端表中加入一个外键 --><!-- 而<one-to-one>只会加载另一端数据作为外键约束,不会影响表结构。 --></class></hibernate-mapping>
4、IdCard.java的实现
public class IdCard {private int id;private String idcardnumber; //get set}
5、IdCard.hbm.xml的实现
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><!-- 配置实体类,所在的package的名称 --><hibernate-mapping package="com.hibernate.entity"><class name="IdCard" table="idcart"><!-- 主键 ,映射 --><id name="id" column="id"><!-- 自动生成主键的规则 --><generator class="native" /></id><!-- 非主键,映射 --><property name="idcardnumber" column="idcardnumber"></property></class></hibernate-mapping>
6、hibernate.cfg.xml的配置
6.1 将IdCard.hbm.xml和Person.hbm.xml加入hibernate.cfg.xml中
<!--3.加载实体的映射文件 --><mapping resource="com/hibernate/entity/IdCard.hbm.xml" /><mapping resource="com/hibernate/entity/Person.hbm.xml" />
6..2 hibernate.cfg.xml的完整的配置文件
<!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration><!-- 通常,一个session-factory节点代表一个数据库 --><session-factory><!-- 1. 数据库连接配置 --><property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><property name="hibernate.connection.url">jdbc:mysql:///hibernate</property><property name="hibernate.connection.username">root</property><property name="hibernate.connection.password">1234</property><!-- 数据库方法配置, hibernate在运行的时候,会根据不同的方言生成符合当前数据库语法的sql --><property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property><!-- 2. 其他相关配置 --><!-- 2.1 显示hibernate在运行时候执行的sql语句 --><property name="hibernate.show_sql">true</property><!-- 2.2 格式化sql --><property name="hibernate.format_sql">true</property><!-- 2.3 自动建表 --><property name="hibernate.hbm2ddl.auto">update</property><!--3.加载实体的映射文件 --><mapping resource="com/hibernate/entity/IdCard.hbm.xml" /><mapping resource="com/hibernate/entity/Person.hbm.xml" /></session-factory></hibernate-configuration>
7、测试代码
public class HibernateTest {@Testpublic void testone2one() {Person stu1 = new Person();stu1.setAge(18);stu1.setName("18");IdCard idCard = new IdCard();idCard.setIdcardnumber("1234567");// 注册关系stu1.setIdCard(idCard);// 保存到数据库IClassRoomDao roomDao = new ClassRoomDaoImpl();IStudentDao studentDao = new StudentDaoImpl();// 保存一的一方roomDao.add(idCard);// 保存多的一方studentDao.add(stu1);}}
8、程序运行结果截图
9、代码下载
代码下载
1 0
- Hibernate中,One2One映射关系的XML实现方式
- Hibernate中,One2Many映射关系的XML实现方式
- Hibernate中,Many2One映射关系的XML实现方式
- Hibernate 的关系映射4 One2One
- Hibernate基础------》映射关系---》one2one
- Hibernate中的one2one的单双向关系映射
- Hibernate中,One2Many和Many2One的双向映射关系的XML实现方式
- Hibernate 映射关系 ---One2One 主键关联
- Hibernate 映射关系 ---One2One 外键关联
- hibernate映射One2One
- Hibernate中,One2One的基于注解Annotation的实现
- Hibernate关联关系-one2one
- Hibernate之关系映射的两种方式(xml映射、annotation注解映射)
- Hibernate中,One2Many和Many2One的双向映射关系的基于注解Annotation实现方式
- Hibernate中one2one映射实例一(采用外键的单向关联)
- Hibernate基础------》单向映射--->one2one
- hibernate--Xml关系映射
- Hibernate中XML映射文件产生主键的方式
- Axure使用心得体会
- poj 1007 DNA Sorting(STL运用)
- 如何配置 outlook 企业邮箱
- delphi-采用内存流将ListView数据导出为Excel文件(未装office可用)
- c++学习笔记(八):C++字符串
- Hibernate中,One2One映射关系的XML实现方式
- 2.编写简单的安全性配置
- AndroidStudio简单常用快捷键
- 普通类,抽象类,接口
- linux配置jdk环境
- [libevent]evsignal_init()
- CodeForces 580B Kefa and Company <贪心>
- NSNotification线程管理以及自动注销开源方案
- 设计模式-模版方法(行为型)