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

  • 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. ubuntu虚拟机安装及vim配置问题(转载)

    virtual box虚拟机Ubuntu系统安装及共享文件夹建立 https://blog.csdn.net/qq_27905767/article/details/82106753 Linux超全v ...

  2. STM32 + RT Thread OS 串口通讯

    1.   创建项目 a)   禁用Finsh和console b)   默认情况下,项目文件包含了finsh,它使用COM1来通讯,另外,console输出(rt_kprintf)也使用了COM1.因 ...

  3. Redis 命令使用

    Redis 中所有 key-value 都储存在 Redis-Object 中,Redis-Object 主要信息有: 数据类型(type) string (字符串) hash (Hash表) lis ...

  4. lintcode刷题笔记(一)

    最近开始刷lintcode,记录下自己的答案,数字即为lintcode题目号,语言为python3,坚持日拱一卒吧... (一). 回文字符窜问题(Palindrome problem) 627. L ...

  5. Linux工程管理器——make

    一.定义 工程管理器,顾名思义,是指管理较多的文件 Make工程管理器也就是个“自动编译管理器”,这里的“自动”是指它能构根据文件时间戳自动发现更新过的文件而减少编译的工作量,同时,它通过读入Make ...

  6. Mat转CImage

    uchar *pImg=(uchar *)CI.GetBits();//得到CImage数据区地址 ps=img.ptr<uchar>(i); void MatToCImage( Mat ...

  7. 8个华丽而实用的Java图表类库

    8个华丽而实用的Java图表类库 转 https://www.300168.com/yidong/show-2744.html   核心提示:学习Java的同学注意了!!! 学习过程中遇到什么问题或者 ...

  8. js文件中如何使用 获取EL表达式的值

    转: js文件中如何使用 获取EL表达式的值 原先做法是在jsp页面引入头文件 <%@ page language="java" pageEncoding="UTF ...

  9. elasticsearch _search结果解析

    kibana中输入:GET /_search 会返回一下结果: { "took": 9, # took:整个搜索请求花费多少毫秒 "timed_out": fa ...

  10. 阶段5 3.微服务项目【学成在线】_day18 用户授权_16-细粒度授权-我的课程细粒度授权-测试

    重启课程管理服务 刷新页面,令牌到期需要先登陆 首先拿到company的id 测试2号公司