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

  • 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. postgresql 的 .pgpass密码文件的使用

    pgpass 是 连接 postgresql 时使用的密码文件,通常位置为 ~/.pgpass.在使用某些组件时还真的必须使用.具体的格式为: hostname:port:database:usern ...

  2. php发现一个神奇的函数

    echo strtr('aaddffvvbbcc','avc','242'); //22ddff44bb22 echo '<br>'; echo str_replace('ad',22,' ...

  3. Windows 下 把EXE 程序变成服务运行

    1. 下载  instsrv.exe 和 srvany.exe   我下载的地址  [点击打开链接][https://www.cr173.com/soft/64394.html] 2. cmd  cd ...

  4. Android 使用Intent

    使用intent可以吊起其他应用 例如发送电子邮件 public void sendEmail(View view){ Intent intent = new Intent(Intent.ACTION ...

  5. selenium元素input的value值设置【node.js版本】

    driver.executeScript(‘document.getElementById(“id”).value=“value”’); 这个操作就类似于//$("#id").va ...

  6. 关于define('DISCUZ_ROOT', substr(dirname(__FILE__), 0, -7));的理解

    关于define('DISCUZ_ROOT', substr(dirname(__FILE__), 0, -7));的理解 define('DISCUZ_ROOT',  substr(dirname( ...

  7. mybatis bind exception

    springboot  项目  搜了半天 网上的解决方法千篇一律,最终问题 原因 ,yml 文件路径问题 mybatis: mapper-locations: classpath:com/yang/f ...

  8. Qt编写自定义控件58-直方对称图

    一.前言 本控件也非原创控件,是参考网上的代码而来的,对称顾名思义就是将画布平均成上下两部分,将设置的值自动按照画布高度的一半作为参照高度进行绘制,然后增加动态过渡效果,有点类似于声音播放时候的频谱效 ...

  9. Java根据实体快速生成对象

    一.来源 在写代码时总是遇到下面这种情况: Account account = new Account(); account.setId(); account.setGmtCreate(); acco ...

  10. Oracle中查询当前时间、时间格式化方法

    Oracle中如何获取系统当前时间 select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;  ORACLE里获取一个时间的年.季.月.周. ...