【hibernate实例】单项多对一增加查找

2023-11-05


创建部门表department


创建雇员表employee


新建持久化类

Department.java

  1. package www.hbsi.net.many2one;  
  2.   
  3. public class Department  {  
  4.     private Integer id;  
  5.     private String name;  
  6.   
  7.     public Integer getId() {  
  8.         return this.id;  
  9.     }  
  10.   
  11.     public void setId(Integer id) {  
  12.         this.id = id;  
  13.     }  
  14.   
  15.     public String getName() {  
  16.         return this.name;  
  17.     }  
  18.   
  19.     public void setName(String name) {  
  20.         this.name = name;  
  21.     }  
  22. }  

Employee.java

  1. package www.hbsi.net.many2one;  
  2. public class Employee {  
  3.     private Integer id;  
  4.     private Department department;//反应了对象之间的关系  
  5.     private String username;  
  6.       
  7.     public Integer getId() {  
  8.         return this.id;  
  9.     }  
  10.   
  11.     public void setId(Integer id) {  
  12.         this.id = id;  
  13.     }  
  14.   
  15.     public Department getDepartment() {  
  16.         return this.department;  
  17.     }  
  18.   
  19.     public void setDepartment(Department department) {  
  20.         this.department = department;  
  21.     }  
  22.   
  23.     public String getUsername() {  
  24.         return this.username;  
  25.     }  
  26.   
  27.     public void setUsername(String username) {  
  28.         this.username = username;  
  29.     }  
  30.   
  31. }  

新建映射文件

Department.hbm.xml

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
  3. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
  4.   
  5. <hibernate-mapping package="www.hbsi.net.many2one">  
  6.     <class name="Department" table="department" catalog="hibernate">  
  7.         <id name="id" type="java.lang.Integer">  
  8.             <column name="id" />  
  9.             <generator class="native" />  
  10.         </id>  
  11.         <property name="name" column ="name" type="string" />  
  12.     </class>  
  13. </hibernate-mapping>  


Employee.hbm.xml

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
  3. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
  4.   
  5. <hibernate-mapping package="www.hbsi.net.many2one">  
  6.     <class name="Employee" table="employee">  
  7.         <id name="id" type="java.lang.Integer">  
  8.             <column name="id" />  
  9.             <generator class="native" />  
  10.         </id>  
  11.         <property name="username" type="string" column ="username" />  
  12.         <many-to-one name="department" column ="dept_id" />  
  13.   
  14.     </class>  
  15. </hibernate-mapping>  

更改hibernate映射问价的mapping属性

hibernate.cfg.xml;

  1. <?xml version='1.0' encoding='UTF-8'?>  
  2. <!DOCTYPE hibernate-configuration PUBLIC  
  3.           "-//Hibernate/Hibernate Configuration DTD 3.0//EN"  
  4.           "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">  
  5.   
  6. <!-- Generated by MyEclipse Hibernate Tools.                   -->  
  7. <hibernate-configuration>  
  8.   
  9.     <session-factory>  
  10.         <property name="dialect">  
  11.             org.hibernate.dialect.MySQLDialect  
  12.         </property>  
  13.         <property name="connection.url">  
  14.             jdbc:mysql://localhost:3306/hibernate  
  15.         </property>  
  16.         <property name="connection.username">root</property>  
  17.         <property name="connection.password">123456</property>  
  18.         <property name="connection.driver_class">  
  19.             com.mysql.jdbc.Driver  
  20.         </property>  
  21.         <property name="show_sql">true</property>  
  22.         <property name="hbm2ddl.auto">update</property>  
  23.         <mapping resource="www/hbsi/net/many2one/Department.hbm.xml" />  
  24.         <mapping resource="www/hbsi/net/many2one/Employee.hbm.xml" />  
  25.   
  26.     </session-factory>  
  27.   
  28. </hibernate-configuration>  

创建测试类

Many2one.java

  1. package www.hbsi.net.many2one;  
  2.   
  3. import javax.persistence.Temporal;  
  4.   
  5. import org.hibernate.Session;  
  6. import org.junit.Test;  
  7.   
  8. import www.hbsi.net.util.HibernateSessionFactory;  
  9.   
  10. public class Many2one {  
  11.     @Test  
  12.     public void add(){  
  13.         Session session = HibernateSessionFactory.getSession();  
  14.         session.beginTransaction();  
  15.           
  16.         Department department = new Department();  
  17.         department.setName("软件系");  
  18.           
  19.         Employee employee1 = new Employee();  
  20.         employee1.setUsername("Nacy");  
  21.         employee1.setDepartment(department);  
  22.           
  23.         Employee employee2 = new Employee();  
  24.         employee2.setUsername("Tom");  
  25.         employee2.setDepartment(department);  
  26.           
  27.         session .save(department);  
  28.         session .save(employee1);  
  29.         session .save(employee2);  
  30.         session.getTransaction().commit();  
  31.         HibernateSessionFactory.closeSession();  
  32.     }  
  33. }  

控制台输出:

department表

employee表


查找:

Many2one.java

  1. /** 
  2.  * 先保存部门在保存雇员 
  3.  * 一般推荐这种方法 
  4.  */  
  5. package www.hbsi.net.many2one;  
  6.   
  7. import org.hibernate.Session;  
  8. import org.junit.Test;  
  9.   
  10. import www.hbsi.net.util.HibernateSessionFactory;  
  11.   
  12. public class Many2one {  
  13.     @Test  
  14.     public void add(){  
  15.         Session session = HibernateSessionFactory.getSession();  
  16.         session.beginTransaction();  
  17.           
  18.         Department department = new Department();  
  19.         department.setName("软件系");  
  20.           
  21.         Employee employee1 = new Employee();  
  22.         employee1.setUsername("Nacy");  
  23.         employee1.setDepartment(department);  
  24.           
  25.         Employee employee2 = new Employee();  
  26.         employee2.setUsername("Tom");  
  27.         employee2.setDepartment(department);  
  28.           
  29.         session .save(department);  
  30.         session .save(employee1);  
  31.         session .save(employee2);  
  32.         session.getTransaction().commit();  
  33.         HibernateSessionFactory.closeSession();  
  34.     }  
  35.       
  36.     /** 
  37.      * 通过雇员ID查找所属部门 
  38.      */  
  39.     @Test  
  40.     public void find() {  
  41.         Session session = HibernateSessionFactory.getSession();  
  42.         session.beginTransaction();  
  43.           
  44.         Employee employee = (Employee) session.get(Employee.class5);  
  45.         System.out.println(employee.getUsername()+"--"+employee.getDepartment().getName());  
  46.           
  47.         session.getTransaction().commit();  
  48.         HibernateSessionFactory.closeSession();  
  49.           
  50.     }  
  51. }  


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【hibernate实例】单项多对一增加查找 的相关文章

随机推荐

  • java new list 对象_Java中List集合对象去重及按属性去重的8种方法

    最近在写一些关于java基础的文章 但是我又不想按照教科书的方式去写知识点的文章 因为意义不大 基础知识太多了 如何将这些知识归纳总结 总结出优缺点或者是使用场景才是对知识的升华 所以我更想把java相关的基础知识进行穿针引线 进行整体上的
  • 微信小游戏的电量监听

    在说小游戏的电量监听事件之前 我想先提一下小程序的电量监听事件 在微信小程序中 是没有电量监听事件的 因为小程序没有全屏 手机端的电量和wifi等信息一直可以看得到 所以小程序里就没有这样的api了 说回小游戏的电量监听 在微信小游戏的ap
  • Gitlab的API调用

    1 概述 Gitlab作为一个开源 强大的分布式版本控制系统 已经成为互联网公司 软件开发公司的主流版本管理工具 使用过Gitlab的都知道 想要提交一段代码 可以通过git push提交到远程仓库 也可以直接在Gitlab平台上修改提交
  • DeFi泡沫、NFT以及市场调整

    DeFi有泡沫吗 有 但谁又没有呢 如果有泡沫 DeFi的泡沫肯定不是最大的那个 截止到蓝狐笔记写稿时 按照Coingecko的统计 DeFi市值大约是135亿美元 XRP市值大约104亿美元 整个加密市场的总市值为3 418亿美元 跟整体
  • 【从0开始学架构笔记】01 基础架构

    文章目录 一 架构的定义 1 系统与子系统 2 模块与组件 3 框架与架构 4 重新定义架构 二 架构设计的目的 三 复杂度来源 高性能 1 单机复杂度 2 集群复杂度 2 1 任务分配 2 2 任务分解 微服务 四 复杂度来源 高可用 1
  • 计算机组成原理复习总结

    计算机组成原理复习总结 一 缩写词解释 CPU 中央处理器 ALU 算术逻辑单元 I O 输入输出接口 RAM 随机存储器 SRAM 静态随机访问存储器 DRAM 动态随机访问存储器 ROM 只读存储器 PROM 用户可编程的只读存储器 E
  • Verilog中模块的实例化

    首先创建一个模块为test 目录为这样 在模块test中写入 module test a b c input a b output c wire d e assign c a b and a1 d a b or a2 e a b rt pi
  • cpu风扇自动调速_电脑主板上CPU_FAN、SYS_FAN、CHA_FAN、CPU_OPT接口知识科普

    我们在电脑组装的过程中 安装过程虽然简单 不过往往都是在接线上遇到问题 经常有装机用户误将CPU散热器的供电线插到了SYS FAN上 虽然风扇可以转动 不过在开机可能会有F1报错 CPU Fan Error 同时也导致了CPU散热器无法智能
  • 为什么我们推荐使用VPC

    最近我在跟一些客户沟通的过程中发现有人对使用VPC Virtual Private Cloud 的优势还不是特别清楚 部分人认为只有那些需要把自己的数据中心与AWS进行连接的企业才需要使用VPC 实际上 我们的确可以通过VPC及其他相关的A
  • 多线程的安全问题一:同步方法与同步代码块

    一 引出线程安全问题 多个线程操作共享数据时 如果线程不完整 则很可能出现线程安全问题 线程执行不确定导致结果不确定 这里有一个三窗口买票程序 共100张票 public class Main2 public static void mai
  • springboot反射自动注入bean

    一 Java通过反射获取对象 执行方法 import java lang reflect Method public class Main public static void main String args throws Excepti
  • 树莓派3B开热点并自动启动

    lz最近项目需要 研究了一下树莓派开热点 试了一下几种方法 发现这一种是最简单 也是比较稳定的一种 现介绍如下 用putty或者vnc对树莓派进行操作 如下图示 putty登录界面 VNC登录界面 创建WiFi热点使用的GitHub上一个开
  • 谷歌云:全面推出 AlloyDB for PostgreSQL 与数据库迁移服务

    本文由Cloud Ace 整理发布 Cloud Ace 是谷歌云全球战略合作伙伴 拥有 300 多名工程师 也是谷歌最高级别合作伙伴 多次获得 Google Cloud 合作伙伴奖 作为谷歌托管服务商 我们提供谷歌云 谷歌地图 谷歌办公套件
  • js数组对象 模糊查找 指定 匹配字段内容

    以下内容仅供参考
  • 时序预测

    时序预测 MATLAB实现NGO BiLSTM北方苍鹰算法优化双向长短期记忆网络时间序列预测 目录 时序预测 MATLAB实现NGO BiLSTM北方苍鹰算法优化双向长短期记忆网络时间序列预测 预测效果 基本介绍 程序设计 参考资料 预测效
  • 抽象方法和抽象类

    目录 一 抽象方法和抽象类 1 区分普通方法和抽象方法 2 区分普通类和抽象类 3 定义一个抽象类 4 使用抽象类描述抽象的事物 5 抽象类和抽象方法的优势 6 抽象类的局限性 一 抽象方法和抽象类 1 区分普通方法和抽象方法 1 在Jav
  • PyEcharts——地图-数据可视化-画图

    目录 安装 实例代码 世界地图 中国地图 省份地图 市级地图 热力分布图geo 画地图的开发包包括以下 geopandas itchat basemap matplotlib以及Levenshtein pygal 官方文档 http pye
  • 服务器爬虫网页数据,爬虫(二)—解析真实网页(猫途鹰)

    from bs4 import BeautifulSoup import requests import time urls https www tripadvisor cn Attractions g187147 Activities c
  • 2 天:我用文字 AI-ChatGPT 写了绘画 AI-Stable Diffusion 跨平台绘画应用

    文本 AI ChatGPT 和绘画 AI Stable Diffusion 平地惊雷 突然进入寻常百姓家 如果时间可以快进 未来的人们对于我们这段时光的历史评价 大概会说 当时的人们在短时间连续经历了这几种情感 从不信 去试试看 到远超预期
  • 【hibernate实例】单项多对一增加查找

    创建部门表department 创建雇员表employee 新建持久化类 Department java package www hbsi net many2one public class Department private Integ