由于要查询两张表的内容,所以去了解了下hibernate 的一对一级联 。现在写了个简单的SSH 注解的 一对一双向级联。

关于一对一双向级联详解我推荐这个博客。我感觉写的很好。

    hibernate(五) hibernate一对一关系映射详解

关于一些注解关键字了解 可以看看这个博客

    hibernate 常用注解

下面我将给出我的相关代码:

CarDetail类

/** @author ljt* create on 2018/11/28* @汽车租赁
*/@Entity
@Table(name="zl_cars_detail")
public class CarDetail {/** carId       序号* carName     车辆名称* carCost       租车费用* carPedestal   座位数* carColor       颜色* carBrand        品牌* carSeries   车系* carAstyle   年代款* carCmodel  配置款* carDoors       车门数* carFtype       燃料类型* carTtype      变数箱类型* carCC        排量* carFlabel   燃油标号* carDmode      驱动方式* carEip        发动机进气形式* carLouver  天窗* carFtank        油箱容量* carVbox       音箱* carSeat     座椅* carBradar   倒车雷达* carGasbag 气囊数* carDVD     DVD OR CD* carGps       是否有GPS导航* CarSimple   为了在详细类中能查询到对应的相关信息*/  @Id@GeneratedValue(strategy = GenerationType.IDENTITY)@Column(name="Car_id")private int carId;//一对一外键关联,从表,mappedBy字段必须是主表的字段@OneToOne(cascade=CascadeType.ALL ,mappedBy="carDetail")private CarSimple carSimple;@Column(name="Car_name")private String carName;//省略其他字段//** getter,setter方法}

CarSimple 类

** @Autor ljt* create on 2018/11/28* @汽车租赁*/@Entity
@Table(name="zl_cars")public class CarSimple {/** ID           自增序号* carID          外键序号* carNum        车牌号* carLeaseIs 是否在租 1 已经租赁 0没有租赁(default)* userID      租赁人ID* CarDetail    关联carSimple类*/@Id@GeneratedValue(strategy = GenerationType.IDENTITY)@Column(name="ID")private int ID;//一对一外键关联,主表,外键字段是Car_id,对应的表是CarDetail。@OneToOne@JoinColumn(name="Car_id",insertable=true,unique=true)private CarDetail carDetail;@Column(name="Car_num")private String carNum;@Column(name="Car_lease_is")private int carLeaseIs=0;@Column(name="UserID")private int userID;//getter setter
}

DAO层接口

/** 获取carSimple carDetail 表的内容 (测试级联)* @param void * @return 查询的记录集合*/public List<CarSimple > queryTest();

DaoImpl层查询HQL

/** 获取carSimple carDetail 表的内容 (测试级联)* @param void * @return 查询的记录集合*/public List<CarSimple> queryTest() {@SuppressWarnings("unchecked")List<CarSimple> carSimpleList = sessionFactory.getCurrentSession().createQuery("from CarSimple").list();return carSimpleList;}

Service接口

/** 测试级联查询两表的内容* @return 返回CarSimple 级联所查询的内容*/public List<CarSimple> queryTest();

serviceImpl实现

/** 测试级联查询两表的内容* @return 返回CarSimple 级联所查询的内容*/@Transactional(propagation = Propagation.REQUIRES_NEW, isolation=Isolation.READ_COMMITTED)public List<CarSimple> queryTest() {List<CarSimple> carSimpleList = carSimpleDao.queryTest();System.out.println("开始测试****");for(CarSimple carSimple:carSimpleList) {System.out.println(carSimple.getCarNum());System.out.println(carSimple.getCarDetail().getCarName());}return carSimpleList;}

Action

** @Author ljt* create on 2018/11/29* @汽车租赁*/public class CarSimpleAction extends ActionSupport{/*** 序列化*/private static final long serialVersionUID = 1L;@Autowiredprivate CarSimpleService carSimpleService ;private List<CarSimple> carSimpleTest;//注解映射获取action,并返回相应的jsp页面(测试级联)@Action(value = "CarSimpleQueryDefaultPage2", results = { @Result(name ="CarSimpleQueryDefaultPageSuccess2", location = "/manage_test2.jsp")})public String CarSimpleQueryDefaultPage2() {carSimpleTest = carSimpleService.queryTest();return "CarSimpleQueryDefaultPageSuccess2";}public List<CarSimple> getCarSimpleTest() {return carSimpleTest;}public void setCarSimpleTest(List<CarSimple> carSimpleTest) {this.carSimpleTest = carSimpleTest;}}

前端页面:

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>测试-后台管理员</title><!-- 新 Bootstrap 核心 CSS 文件 --><link href="${pageContext.request.contextPath}/bootstrap-3.3.7/dist/css/bootstrap.min.css" rel="stylesheet"><!-- jQuery文件。务必在bootstrap.min.js 之前引入 --><script src="${pageContext.request.contextPath}/bootstrap-3.3.7/jquery-2.1.1/jquery.min.js"></script><!-- 最新的 Bootstrap 核心 JavaScript 文件 --><script src="${pageContext.request.contextPath}/bootstrap-3.3.7/dist/js/bootstrap.min.js"></script></head>
<body>
<s:iterator value="carSimpleTest"><table><tr>carSimple:<s:property value="ID"/>用户ID: <s:property value="carDetail.carId"/>用户名:<s:property value="carDetail.carName"/>排量:<s:property value="carDetail.carCC"/>编号:<s:property value="carNum"/></tr></table>
</s:iterator>
</body>
</html>

大概内容是这样的:

SSH注解 关于hibernate一对一双向外键级联关系 查询两表的内容 例子相关推荐

  1. Hibernate关系映射 一对一双向外键关联@OneToOne Annotation方式

    首先还是来构造一个实际应用的场景,比如实体类车辆(Car),它具有以下属性:Id,品牌(brand),车牌(lisencePlate):实体类车牌(LisencePlate),它具有以下属性:Id,号 ...

  2. 删除oracle所有表外键,Oracle中查询、禁用、起用、删除表外键

    Oracle中查询.禁用.启用.删除表外键 1.查询所有表的外键: select table_name, constraint_name from user_constraints where con ...

  3. hibernate one2one 唯一外键关联(双向关联)

    hibernate的一对一唯一外键关联映射(双向关联 Person <------->IdCard) 一对一唯一外键关联采用<one - to -one>标签映射,必须指定标签 ...

  4. 关于hibernate的关联外键生成以及外键属性列的正确插入即:解决外键插入时,在关联表中除了外键列为空,其它属性均正常级联保存

    关于hibernate的关联外键生成以及外键属性列的正确插入即:解决外键插入时,在关联表中除了外键列为空,其它属性均正常级联保存 其实解决办法十分简单: 首先确保你能够级联保存数据,当然除了关联表的外 ...

  5. mysql修改级联表数据_MySQL数据库 外键,级联, 修改表的操作

    1.外键: 用来建立两张表之间的关系 - 一对多 - 多对多 - 一对一 研究表与表之间的关系: 1.定义一张 员工部门表 id, name, gender, dep_name, dep_desc - ...

  6. mysql创建外键级联更新_MySQL中利用外键实现级联删除、更新

    MySQL支持外键的存储引擎只有InnoDB,在创建外键的时候,要求父表必须有对应的索引,子表在创建外键的时候也会自动创建对应的索引.在创建索引的时候,可以指定在删除.更新父表时,对子表进行的相应操作 ...

  7. mysql主外键引用关系,关于mysql:数据主/外键关系

    我想对于那些已经开发了许多数据库模式的人来说,这将是一个简单的答案,但是我最近发现自己承担了优化(或尝试优化)数据库模式的任务,并且一直在阅读"高性能MySQL",并且剩下一个关于 ...

  8. mysql查询某张表的所有外键_oracle中查询所有外键引用到某张表的记录

    欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 oracle中查询所有外键引用到某张表的记录 //查询表的主键约束名 select * from user_constr ...

  9. sqlalchemy外键和relationship查询

    前面的文章中讲解了外键的基础知识和操作,上一篇文章讲解了sqlalchemy的基本操作.前面两篇文章都是作为铺垫,为下面的文章打好基础.记得初一时第一次期中考试时考的不好,老爸安慰我说:"学 ...

最新文章

  1. r语言和python-PythonR语言-python和r相遇
  2. 吴恩达 coursera AI 第三课总结+作业答案
  3. ansible命令应用示例
  4. spring自动装配依赖包_解决Spring自动装配中的循环依赖
  5. HTML5-画布(canvas)效果之-渐变色
  6. linux单网卡多拨Adsl,秋明 | 边缘计算-使用多adsl账号做捆绑上网[单网卡多账号多拨]...
  7. 【转】UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc7 in position 1: invalid continuation 汉字编码
  8. PAT1087 All Roads Lead to Rome (30)(最短路径+dfs+回溯)
  9. 排列:计算1!+2*2!+3*3!+...+n*n!
  10. 每日一题题目26:选择排序(冒泡排序改进版)
  11. 别再 select * 了,送你 12 个查询技巧!
  12. ios uiswitch 开关_IOS开发(四):开关控件UISwitch
  13. c语言ascii码16进制,C语言附录ASCII码表.doc
  14. linux 计算cpu利用率
  15. 一文读懂“语言模型”
  16. 如何搭建点燃式发动机仿真模型
  17. 项目实战第一讲:如何优雅地记录操作日志
  18. origin2018 柱状图_学术干货 | 科研人请收藏—Origin画出双Y轴柱状图
  19. 考研题目 第五章 数组和广义表
  20. 清华计算机自主招生试题,2018清华大学自主招生试题.pdf

热门文章

  1. 平台程序微信平台开发应用的签名
  2. 用户出示二维码向商家付钱
  3. TokenInsight 对话首席——平台币暴涨,暖春来临?
  4. 微信小程序使用echarts绘画动态图表
  5. python输出无空格,python 2.7.5+打印列表后面没有空格的逗号
  6. win10可以上网但是网路连接显示小地球(无法连接到Internet)
  7. Java编程学习:初学者怎样学好Java
  8. 信任别人计算机和网络,【媒库文选】人们可能更信任计算机而不是人类
  9. 每日一练——Python基础(六)
  10. 周易六十四卦——需卦