(十四)Hibernate中的多表操作(4):单向一对一
案例一: 注解方式实现一对一
- 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):单向一对一的更多相关文章
- (转)Hibernate中的多表操作
http://blog.csdn.net/yerenyuan_pku/article/details/70556208 Hibernate中的多表操作 在实际开发中,我们不可能只是简简单单地去操作单表 ...
- (十五)Hibernate中的多表操作(5):双向多对多
Hibernate的双向关联. 对象之间可以相互读取. 双向只针对读取的操作.对于增.删除.改的操作没有任何影响. 案例 : 实现双向多对多 MenuBean.java package ...
- 【读书笔记】C#高级编程 第二十四章 文件和注册表操作
(一)文件和注册表 对于文件系统操作,相关的类几乎都在System.IO名称空间中,而注册表操作由System.Win32名称空间中的类来处理. (二)管理文件系统 System.MarshalByR ...
- (十二)Hibernate中的多表操作(2):单向多对一
由“多”方可知“一”方的信息,比如多个员工使用同一栋公寓,员工可以知道公寓的信息,而公寓无法知道员工的信息. 案例一:使用xml配置 pojo类 Group.java package bean; // ...
- (十一)Hibernate中的多表操作(1):单向一对多
一.单向一对多() 案例一(用XML文件配置): 一个班级有多个学生,班级可以查看所有学生的信息. ClassBean.java package bean; import java.util.Hash ...
- (十三)Hibernate中的多表操作(3):单向多对多
多对多的处理方式是,有一张中间表,中间表保存两个多方之间的关系.首先来看实际应用场景:在之前开发的系统中,应用了基于角色的控制访问,也就是RBAC模型,一个用户可能存在多种角色,一种角色也可能有多个用 ...
- VSTO学习笔记(十四)Excel数据透视表与PowerPivot
原文:VSTO学习笔记(十四)Excel数据透视表与PowerPivot 近期公司内部在做一种通用查询报表,方便人力资源分析.统计数据.由于之前公司系统中有一个类似的查询使用Excel数据透视表完成的 ...
- J2EE进阶(十六)Hibernate 中getHibernateTemplate()方法使用
J2EE进阶(十六)Hibernate 中getHibernateTemplate()方法使用 spring 中获得由spring所配置的hibernate的操作对象,然后利用此对象进行,保存,修 ...
- Hibernate中的多表查询及抓取策略
1.Hibernate中的多表查询 1.1SQL中的多表查询 [交叉连接] select * from A,B; [内连接] 显示内连接:inner join(inner 可以省略) Select * ...
随机推荐
- Mybatis 中的转义字符(转帖)
下文来自:https://www.cnblogs.com/dato/p/7028723.html 在此感谢作者的辛勤付出. 记录以下mybatis中的转义字符,方便以后自己看一下 Mybatis转义 ...
- androidStudio: ERROR: Error occurred while communicating with CMake server.
遇到此错误的原因是cmake服务器协议版本不匹配: 解决方案: 1:直接更新android studio看能否解决: 2:如果解决不了,那么将androidstudio,ndk ,cmake,grad ...
- 为什么vue-cli创建的build文件下没有dev-server.js文件
在新版本的Vue开发中,通过vue-cli创建的build文件夹下面已经没有了旧版本中的dev-server.js文件新版本的vue已将dev-server.js与webpack.dev.conf.j ...
- LoadRunne遇到的一些问题FAQ(持续更新...)
1.LR11破解完成,添加License失败,报错License security violation Loadrunner11破解成功后,用deletelicense.exe工具把License全删 ...
- python模块之request模块的理解
首先还是老生长谈,说说定义和作用,request模块是一个用于访问网络的模块,其实类似的模块还有很多,不在一一在这里解释.这么多的相似的模块为什么都说只有这个好用呢.因为他人性化.如果你学过urlli ...
- java 虚拟机类加载 及内存结构
http://www.jb51.net/article/105920.htm https://www.cnblogs.com/Qian123/p/5707562.html Java类加载全过程 一个j ...
- 阶段5 3.微服务项目【学成在线】_day18 用户授权_15-细粒度授权-我的课程细粒度授权-实现
先定义接口 实现接口 service 需要通过conpanyId去查询课程的列表 定义dao 要查课程的图片 名称 等相关信息.所以使用Mybatis来实现 定义Mapper 看这个dao里面方法在哪 ...
- jenkins报错集合
可能会碰到以下报错: 1)这里的失败原因是因为运行jenkins程序的是jenkins用户,我们连接节点的秘钥是root的,所以现在连接不上 打开配置文件/var/lib/jenkins 将jenki ...
- (一)java面试易忘题目精选(1)
1. int和Integer有什么区别? 答:Java是一个近乎纯洁的面向对象编程语言,但是为了编程的方便还是引入了基本数据类型,但是为了能够将这些基本数据类型当成对象操作,Java为每一个基本数据类 ...
- 【leetcode_easy】598. Range Addition II
problem 598. Range Addition II 题意: 第一感觉就是最小的行和列的乘积即是最后结果. class Solution { public: int maxCount(int ...