国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Hibernate 一對一外鍵雙向關聯

2019-11-10 17:29:07
字體:
來源:轉載
供稿:網友

Hibernate 一對一外鍵雙向關聯

 一對一外鍵關聯是一對多外鍵關聯的特例,只是在多的一方加了個唯一性約束。 一、模型一個人對應一個地址。 /*==============================================================*//* DBMS name:      MySQL 5.0                                    *//* Created on:     2008-12-9 0:12:54                            *//*==============================================================*/drop table if exists address;drop table if exists person;/*==============================================================*//* Table: address                                               *//*==============================================================*/create table address(   id                   bigint not null auto_increment comment 'ID',   detail               varchar(120) not null comment '詳細地址',   personid             bigint comment '人的ID',   PRimary key (id))type = InnoDB;alter table address comment '地址';/*==============================================================*//* Table: person                                                *//*==============================================================*/create table person(   id                   bigint not null auto_increment comment 'ID',   name                 varchar(24) not null comment '姓名',   primary key (id))type = InnoDB;alter table person comment '人';alter table address add constraint FK_Reference_4 foreign key (personid)      references person (id) on delete restrict on update restrict;  二、對象模型 public class Personimplements java.io.Serializable {   private Long id;   private String name;   private Address address; public class Addressimplements java.io.Serializable {   private Long id;   private Person person;   private String detail; 三、映射文件<?xml version="1.0" encoding="utf-8"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping>  <class name="entity.Person" table="person">    <id name="id" type="java.lang.Long">      <columnname="id" />       <generatorclass="identity"/>     </id>    <propertyname="name"type="java.lang.String">      <columnname="name"length="24"not-null="true">        <comment>姓名</comment>      </column>    </property>    <one-to-onename="address"cascade="all"/>   </class></hibernate-mapping> <?xml version="1.0" encoding="utf-8"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping>  <class name="entity.Address" table="address" catalog="testdb">    <id name="id" type="java.lang.Long">      <columnname="id" />       <generatorclass="identity"/>     </id>    <propertyname="detail"type="java.lang.String">      <columnname="detail"length="120"not-null="true">        <comment>詳細地址</comment>      </column>    </property>    <many-to-onename="person"class="entity.Person"      fetch="select"unique="true">      <columnname="personid">        <comment>人的ID</comment>      </column>    </many-to-one>  </class></hibernate-mapping> <?xml version='1.0' encoding='UTF-8'?><!DOCTYPE hibernate-configuration PUBLIC                     "-//Hibernate/Hibernate Configuration DTD 3.0//EN"                     "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><!-- Generated by MyEclipse Hibernate Tools.                                    --> <hibernate-configuration>  <session-factory>    <propertyname="connection.username">root</property>    <propertyname="connection.url">      jdbc:mysql://localhost:3306/testdb     </property>    <propertyname="dialect">      org.hibernate.dialect.MySQLDialect     </property>    <propertyname="connection.passWord">xiaohui</property>    <propertyname="connection.driver_class">      com.mysql.jdbc.Driver     </property>    <propertyname="show_sql">true</property>    <propertyname="format_sql">true</property>    <mappingresource="entity/Person.hbm.xml"/>     <mappingresource="entity/Address.hbm.xml"/>   </session-factory></hibernate-configuration> 四、測試import org.hibernate.Transaction; import entity.Address; import entity.Person; import utils.HibernateSessionFactory; public class Test {  public staticvoid main(String[] args) {     savePerson();   }   public staticvoid savePerson() {     Person person = new Person("張三");    Address address = new Address("XX街X號");    person.setAddress(address);     address.setPerson(person);     Session session = HibernateSessionFactory.getSession();     Transaction tx = session.beginTransaction();     session.save(person);     tx.commit();   } } 運行日志:Hibernate:            insert            into                 person                 (name)            values                 (?) Hibernate:            insert            into                 testdb.address                 (detail, personid)            values                 (?, ?)
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 广汉市| 仁化县| 东安县| 万州区| 南江县| 遂平县| 百色市| 尚志市| 内丘县| 鲜城| 巩留县| 六枝特区| 龙口市| 灵璧县| 南通市| 莱芜市| 宝丰县| 高阳县| 遵义市| 南漳县| 肃南| 泸水县| 建阳市| 邓州市| 遂昌县| 常州市| 千阳县| 托克逊县| 昌邑市| 四川省| 瑞金市| 淮安市| 精河县| 读书| 龙里县| 黑山县| 西平县| 远安县| 察隅县| 油尖旺区| 襄垣县|