案例一: 注解方式实现一对一

  • UserBean.java
package bean;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.Table; @Entity
@Table(name = "user")
public class UserBean implements Serializable { @Id
private Integer userid;
private String username;
private String password;
private String sex;
@Column(name = "is_admin")
private String isAdmin; @OneToOne
@JoinColumn(name="userid") //一定要设置@JoinColumn,否则报错 ,表示用本表中的userid字段与cardBean中的主键关联
private CardBean cardBean; public UserBean(Integer userid, String username, String password,
String sex, String isAdmin) {
super();
this.userid = userid;
this.username = username;
this.password = password;
this.sex = sex;
this.isAdmin = isAdmin;
} public UserBean() {
} public Integer getUserid() {
return userid;
} public void setUserid(Integer userid) {
this.userid = userid;
} public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public String getSex() {
return sex;
} public void setSex(String sex) {
this.sex = sex;
} public String getIsAdmin() {
return isAdmin;
} public void setIsAdmin(String isAdmin) {
this.isAdmin = isAdmin;
} public CardBean getCardBean() {
return cardBean;
} public void setCardBean(CardBean cardBean) {
this.cardBean = cardBean;
} }
  • CardBean.java
package bean;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table; @Entity
@Table(name = "card")
public class CardBean implements Serializable { @Id
@Column(name = "card_id")
private Integer cardId;
@Column(name = "card_name")
private String cardName; public CardBean(Integer cardId, String cardName) {
super();
this.cardId = cardId;
this.cardName = cardName;
} public CardBean() {
} public Integer getCardId() {
return cardId;
} public void setCardId(Integer cardId) {
this.cardId = cardId;
} public String getCardName() {
return cardName;
} public void setCardName(String cardName) {
this.cardName = cardName;
} }
  • 把含注解的bean添加到总配置文件中,


案例二: 使用映射文件xml实现一对一

  • CardBean.java
package bean;

/**
* CardBean entity. @author MyEclipse Persistence Tools
*/ public class CardBean implements java.io.Serializable { // Fields private Integer cardId;
private String cardName; // Constructors /** default constructor */
public CardBean() {
} /** minimal constructor */
public CardBean(Integer cardId) {
this.cardId = cardId;
} /** full constructor */
public CardBean(Integer cardId, String cardName) {
this.cardId = cardId;
this.cardName = cardName;
} // Property accessors public Integer getCardId() {
return this.cardId;
} public void setCardId(Integer cardId) {
this.cardId = cardId;
} public String getCardName() {
return this.cardName;
} public void setCardName(String cardName) {
this.cardName = cardName;
} }
  • UserBean.java
package bean;

/**
* UserBean entity. @author MyEclipse Persistence Tools
*/ public class UserBean implements java.io.Serializable { // Fields private Integer userid;
private String username;
private String password;
private String sex;
private String isAdmin; private CardBean cardBean; // Constructors /** default constructor */
public UserBean() {
} /** minimal constructor */
public UserBean(Integer userid) {
this.userid = userid;
} /** full constructor */
public UserBean(Integer userid, String username, String password,
String sex, String isAdmin) {
this.userid = userid;
this.username = username;
this.password = password;
this.sex = sex;
this.isAdmin = isAdmin;
} // Property accessors public Integer getUserid() {
return this.userid;
} public void setUserid(Integer userid) {
this.userid = userid;
} public String getUsername() {
return this.username;
} public void setUsername(String username) {
this.username = username;
} public String getPassword() {
return this.password;
} public void setPassword(String password) {
this.password = password;
} public String getSex() {
return this.sex;
} public void setSex(String sex) {
this.sex = sex;
} public String getIsAdmin() {
return this.isAdmin;
} public void setIsAdmin(String isAdmin) {
this.isAdmin = isAdmin;
} public CardBean getCardBean() {
return cardBean;
} public void setCardBean(CardBean cardBean) {
this.cardBean = cardBean;
} }
  • 创建映射文件  UserBean.hbm.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="bean.UserBean" table="user" catalog="test">
<id name="userid" type="java.lang.Integer">
<column name="userid" />
<generator class="assigned"></generator>
</id>
<property name="username" type="java.lang.String">
<column name="username" length="100" />
</property>
<property name="password" type="java.lang.String">
<column name="password" />
</property>
<property name="sex" type="java.lang.String">
<column name="sex" />
</property>
<property name="isAdmin" type="java.lang.String">
<column name="is_admin" />
</property> <!-- 配置单向一对一 -->
<one-to-one name="cardBean" class="bean.CardBean" ></one-to-one>
</class>
</hibernate-mapping>
  • 创建映射文件  CardBean.hbm.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="bean.CardBean" table="card" catalog="test">
<id name="cardId" type="java.lang.Integer">
<column name="card_id" />
<generator class="assigned"></generator>
</id>
<property name="cardName" type="java.lang.String">
<column name="card_name" />
</property>
</class>
</hibernate-mapping>
  • 把映射文件添加到总配置文件中

(十四)Hibernate中的多表操作(4):单向一对一的更多相关文章

  1. (转)Hibernate中的多表操作

    http://blog.csdn.net/yerenyuan_pku/article/details/70556208 Hibernate中的多表操作 在实际开发中,我们不可能只是简简单单地去操作单表 ...

  2. (十五)Hibernate中的多表操作(5):双向多对多

    Hibernate的双向关联. 对象之间可以相互读取.        双向只针对读取的操作.对于增.删除.改的操作没有任何影响. 案例 : 实现双向多对多 MenuBean.java package ...

  3. 【读书笔记】C#高级编程 第二十四章 文件和注册表操作

    (一)文件和注册表 对于文件系统操作,相关的类几乎都在System.IO名称空间中,而注册表操作由System.Win32名称空间中的类来处理. (二)管理文件系统 System.MarshalByR ...

  4. (十二)Hibernate中的多表操作(2):单向多对一

    由“多”方可知“一”方的信息,比如多个员工使用同一栋公寓,员工可以知道公寓的信息,而公寓无法知道员工的信息. 案例一:使用xml配置 pojo类 Group.java package bean; // ...

  5. (十一)Hibernate中的多表操作(1):单向一对多

    一.单向一对多() 案例一(用XML文件配置): 一个班级有多个学生,班级可以查看所有学生的信息. ClassBean.java package bean; import java.util.Hash ...

  6. (十三)Hibernate中的多表操作(3):单向多对多

    多对多的处理方式是,有一张中间表,中间表保存两个多方之间的关系.首先来看实际应用场景:在之前开发的系统中,应用了基于角色的控制访问,也就是RBAC模型,一个用户可能存在多种角色,一种角色也可能有多个用 ...

  7. VSTO学习笔记(十四)Excel数据透视表与PowerPivot

    原文:VSTO学习笔记(十四)Excel数据透视表与PowerPivot 近期公司内部在做一种通用查询报表,方便人力资源分析.统计数据.由于之前公司系统中有一个类似的查询使用Excel数据透视表完成的 ...

  8. J2EE进阶(十六)Hibernate 中getHibernateTemplate()方法使用

    J2EE进阶(十六)Hibernate 中getHibernateTemplate()方法使用   spring 中获得由spring所配置的hibernate的操作对象,然后利用此对象进行,保存,修 ...

  9. Hibernate中的多表查询及抓取策略

    1.Hibernate中的多表查询 1.1SQL中的多表查询 [交叉连接] select * from A,B; [内连接] 显示内连接:inner join(inner 可以省略) Select * ...

随机推荐

  1. js的一些笔试面试题

    1. 判断字符串是否是这样组成的,第一个必须是字母,后面可以是字母.数字.下划线,总长度为5-20 var reg = /^[a-zA-Z][a-zA-Z_0-9]{4,19}$/; reg.test ...

  2. 阿里云服务器发送邮件:Connection could not be established with host smtp.qq.com [Connection timed out #110]

    阿里云服务器发送邮件:Connection could not be established with host smtp.qq.com [Connection timed out #110] 一.总 ...

  3. selinux 开启和关闭

    对于新手来说,linux的selinux困扰了一大批学员,开启后,导致文件权限修改不了等问题,下面就是关闭设置setlinux的方法 查看SELinux状态: 1./usr/sbin/sestatus ...

  4. Access the value of a member expression

    Access the value of a member expression 解答1 You can compile and invoke a lambda expression whose bod ...

  5. Cookie 概述

    一.属性介绍 Name Cookie的key Value Cookie的value Domain 可以访问此Cookie的域名 Path 可以访问此Cookie的页面路径 Expires/Max-Ag ...

  6. 解决Visual Studio:"无法导入以下密钥文件: xxxx.pfx,该密钥文件可能受密码保护"

    [解决方法] 从开始菜单找到并打开Visual Studio 命令提示(2010):开始->Microsoft Visual Studio 2010->Visual Studio Tool ...

  7. Ionic4.x 中的button

    官方文档:https://ionicframework.com/docs/api/button 1.ion-button 组件可以定义一个按钮 <ion-button>Default< ...

  8. CGI "Internal Server Error"

    在安裝 CGI 程式時如果設定錯誤,便會看到 "500 Internal Server Error" 訊息,一般常見的錯誤可以用以下方法解決: 1. CGI 程式的權限需要設定為 ...

  9. 004-nginx简介、安装配置【源码安装和mac安装】、基本使用

    一.概述 1.1.Nginx是什么 Nginx是一款轻量级的Web服务器,也是一款轻量级的反向代理服务器[常用]. 1.2.Nginx能干什么 Nginx能干的事情很多,这里简要罗列一些: 1:直接支 ...

  10. 阶段5 3.微服务项目【学成在线】_day16 Spring Security Oauth2_06-SpringSecurityOauth2研究-Oauth2授权码模式-申请令牌

    3.3 Oauth2授权码模式 3.3.1 Oauth2授权模式 Oauth2有以下授权模式: 授权码模式(Authorization Code) 隐式授权模式(Implicit) 密码模式(Reso ...