欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Hibernate雙向一對一映射關(guān)系配置代碼實(shí)例

 更新時間:2020年10月29日 08:32:32   作者:Y_wee  
這篇文章主要介紹了Hibernate雙向一對一映射關(guān)系配置代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

1、外鍵映射

1.1、實(shí)體類

package com.yl.bean;

import java.io.Serializable;

/**
 * 公民實(shí)體類
 */
public class Person implements Serializable {
  private Integer id;
  private String name;
  private PersonCard card;

  public Person() {
  }

  public Person(Integer id, String name, PersonCard card) {
    this.id = id;
    this.name = name;
    this.card = card;
  }

  public Integer getId() {
    return id;
  }

  public void setId(Integer id) {
    this.id = id;
  }

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public PersonCard getCard() {
    return card;
  }

  public void setCard(PersonCard card) {
    this.card = card;
  }

  @Override
  public String toString() {
    return "Person{" +
        "id=" + id +
        ", name='" + name + '\'' +
        ", card=" + card +
        '}';
  }
}
package com.yl.bean;

import java.io.Serializable;

/**
 * 身份證實(shí)體類
 */
public class PersonCard implements Serializable {
  private Integer id;
  private String cardNo;
  private Person person;

  public PersonCard() {
  }

  public PersonCard(Integer id, String cardNo, Person person) {
    this.id = id;
    this.cardNo = cardNo;
    this.person = person;
  }

  public Integer getId() {
    return id;
  }

  public void setId(Integer id) {
    this.id = id;
  }

  public String getCardNo() {
    return cardNo;
  }

  public void setCardNo(String cardNo) {
    this.cardNo = cardNo;
  }

  public Person getPerson() {
    return person;
  }

  public void setPerson(Person person) {
    this.person = person;
  }

  @Override
  public String toString() {
    return "PersonCard{" +
        "id=" + id +
        ", cardNo='" + cardNo + '\'' +
        ", person=" + person +
        '}';
  }
}

1.2、全局配置文件(hibernate.cfg.xml)

<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>
    <!--數(shù)據(jù)源配置-->
    <property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property>
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate?characterEncoding=utf8&amp;serverTimezone=GMT%2B8</property>
    <property name="hibernate.connection.username">root</property>
    <property name="hibernate.connection.password">123456</property>
    <!--顯示sql-->
    <property name="hibernate.show_sql">true</property>
    <!--自動創(chuàng)建表-->
    <property name="hibernate.hbm2ddl.auto">update</property>
    <!--指定映射配置文件的位置-->
    <mapping resource="com/yl/bean/Person.hbm.xml"></mapping>
    <mapping resource="com/yl/bean/PersonCard.hbm.xml"></mapping>
</session-factory>
</hibernate-configuration>

1.3、公民映射配置文件(Person.hbm.xml)

<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
  <!--配置User類-->
  <class name="com.yl.bean.Person" table="t_person">
    <!--主鍵-->
    <id name="id" column="id" type="java.lang.Integer">
      <!--將主鍵交給本地?cái)?shù)據(jù)庫管理-->
      <generator class="native"></generator>
    </id>

    <property name="name" column="name" type="java.lang.String"></property>

    <one-to-one name="card" class="com.yl.bean.PersonCard"></one-to-one>
  </class>
</hibernate-mapping>

1.4、身份證映射配置文件(PersonCard.hbm.xml)

<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
  <!--配置User類-->
  <class name="com.yl.bean.PersonCard" table="t_personcard">
    <!--主鍵-->
    <id name="id" column="id" type="java.lang.Integer">
      <!--將主鍵交給本地?cái)?shù)據(jù)庫管理-->
      <generator class="native"></generator>
    </id>

    <property name="cardNo" column="cardNo" type="java.lang.String"></property>

    <many-to-one name="person" column="person_id" unique="true"></many-to-one>
  </class>
</hibernate-mapping>

1.5、測試類

 @Test
  public void test01(){
    Person person=new Person();
    person.setName("yl001");

    PersonCard personCard=new PersonCard();
    personCard.setCardNo("001");

    person.setCard(personCard);
    personCard.setPerson(person);

    Session session= HibernateUtils.getSession();
    Transaction transaction=session.beginTransaction();
    session.save(person);
    session.save(personCard);
    transaction.commit();

    session.close();
  }

2、主鍵映射

表的字段既是主鍵,又是外鍵(eg:身份證號碼既是主鍵又是外鍵)

2.1、映射配置文件實(shí)現(xiàn)

主要修改PersonCard.hbm.xml文件

<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
  <!--配置User類-->
  <class name="com.yl.bean.PersonCard" table="t_personcard">
    <!--主鍵-->
    <id name="id" column="id" type="java.lang.Integer">
      <!--將主鍵交給本地?cái)?shù)據(jù)庫管理-->
      <generator class="native"></generator>
    </id>

    <property name="cardNo" column="cardNo" type="java.lang.String"></property>

    <!--<many-to-one name="person" column="person_id" unique="true"></many-to-one>-->
    <one-to-one name="person" class="Person" constrained="true"/>
  </class>
</hibernate-mapping>

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Maven 打包項(xiàng)目到私服 (deploy)的配置方法

    Maven 打包項(xiàng)目到私服 (deploy)的配置方法

    這篇文章主要介紹了Maven 打包項(xiàng)目到私服 (deploy)的配置方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • Java語言實(shí)現(xiàn)非遞歸實(shí)現(xiàn)樹的前中后序遍歷總結(jié)

    Java語言實(shí)現(xiàn)非遞歸實(shí)現(xiàn)樹的前中后序遍歷總結(jié)

    今天小編就為大家分享一篇關(guān)于Java語言實(shí)現(xiàn)非遞歸實(shí)現(xiàn)樹的前中后序遍歷總結(jié),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • Caused?by:?java.lang.NumberFormatException:?For?input?string:?“port“(問題解決)

    Caused?by:?java.lang.NumberFormatException:?For?input?s

    這篇文章主要介紹了Caused?by:?java.lang.NumberFormatException:?For?input?string:?“port“,本文給大家分享完美解決方法,需要的朋友可以參考下
    2023-01-01
  • Java簡單計(jì)算圓周率完整示例

    Java簡單計(jì)算圓周率完整示例

    這篇文章主要介紹了Java簡單計(jì)算圓周率,結(jié)合完整實(shí)例形式分析了Java計(jì)算圓周率的原理與操作技巧,代碼備有較為詳盡的注釋便于理解,需要的朋友可以參考下
    2018-05-05
  • mybatis中字段名與關(guān)鍵字相同問題

    mybatis中字段名與關(guān)鍵字相同問題

    這篇文章主要介紹了mybatis中字段名與關(guān)鍵字相同問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • SpringBoot3 Spring WebFlux簡介(推薦)

    SpringBoot3 Spring WebFlux簡介(推薦)

    SpringWebFlux是Spring Framework 5中引入的響應(yīng)式Web框架,用于支持非阻塞異步通信和響應(yīng)式流處理,與傳統(tǒng)的SpringMVC相比,WebFlux提供了完全異步非阻塞的編程模型,適用高并發(fā)、微服務(wù)架構(gòu)和實(shí)時數(shù)據(jù)流,本文介紹SpringBoot3 Spring WebFlux簡介,感興趣的朋友一起看看吧
    2024-10-10
  • TKmybatis的框架介紹和原理解析

    TKmybatis的框架介紹和原理解析

    tkmybatis是在mybatis框架的基礎(chǔ)上提供了很多工具,讓開發(fā)更加高效,下面來看看這個框架的基本使用,后面會對相關(guān)源碼進(jìn)行分析,感興趣的同學(xué)可以看一下,挺不錯的一個工具
    2020-12-12
  • 解決@Validated注解無效,嵌套對象屬性的@NotBlank無效問題

    解決@Validated注解無效,嵌套對象屬性的@NotBlank無效問題

    這篇文章主要介紹了解決@Validated注解無效,嵌套對象屬性的@NotBlank無效問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Java實(shí)現(xiàn)Flappy Bird游戲源碼

    Java實(shí)現(xiàn)Flappy Bird游戲源碼

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)Flappy Bird游戲源碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • Java經(jīng)典面試題匯總:Spring Boot

    Java經(jīng)典面試題匯總:Spring Boot

    本篇總結(jié)的是Spring-Boot框架相關(guān)的面試題,后續(xù)會持續(xù)更新,希望我的分享可以幫助到正在備戰(zhàn)面試的實(shí)習(xí)生或者已經(jīng)工作的同行,如果發(fā)現(xiàn)錯誤還望大家多多包涵,不吝賜教,謝謝
    2021-07-07

最新評論