Hibernate的CRUD练习

超详细的hibernate实现对MySQL的CRUD 超详细的hibernate实现对MySQL的CRUD 文章目录超详细的hibernate实现对MySQL的CRUD前言一、操作前的准备1.创建maven项目2.导入maven依赖3.创建实体类4.配置数据库5.实体类和数据库的映射6.创建hibernateUtil工具类二.对MySQL的数据查询1.使用get和load按下标索引实现数据的查询2.使用createQuery查询3.使用Criteria查询4.多表查询4.1 one-many(双向一对多)4.2 many-one(单向多对一)4.3 one-m 阅读详情

上一篇中用最原始的方法来获取Session,这一篇用工具类来获取Session对象。
数据库配置:主键自增长,不是自增长的情况下,情况可能会不一样,一般都是自增长。

工具类

package com.utils;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
/**
 * 获取Session工具类
 */
public class HibernateUtils {
    private static SessionFactory sessionFactory = null;

    //只需要加载一次
    static {
        Configuration cfg = new Configuration();
        cfg.configure();
        sessionFactory = cfg.buildSessionFactory();
    }

    //获得session====>获得全新session
    public static Session openSession(){
        Session session = sessionFactory.openSession();
        return session;
    }
}

保存对象

    /**
     * 保存对象
     */
    @Test
    public void run2(){
        Session session = HibernateUtils.openSession();
        Transaction tx = session.beginTransaction();

        User user = new User();
        user.setName("jack");
        user.setPwd("123");
        user.setBirthday(new Date());

        session.save(user);

        tx.commit();
        session.close();
    }

更新对象

    /**
     * 更新对象
     */
    @Test
    public void run3(){
        Session session = HibernateUtils.openSession();
        Transaction tx = session.beginTransaction();

        User user = new User();
        //注意:给User的id进行赋值,才可以进行更新
        user.setId(1L);

        user.setName("小佳");
        user.setPwd("666");
        user.setBirthday(new Date());

        session.update(user);
        tx.commit();
        session.close();
    }

保存或更新对象

   /**
     * 保存或更新对象
     */
    @Test
    public void run4(){
        Session session = HibernateUtils.openSession();
        Transaction tx = session.beginTransaction();

        User user = new User();
        //注意:给User的id进行赋值,才可以进行更新,如果没有赋值,则进行添加
       // user.setId(2L);

        user.setName("小袁");
        user.setPwd("111");
        user.setBirthday(new Date());

        session.saveOrUpdate(user);
        tx.commit();
        session.close();
    }

删除对象

   /**
     * 删除对象
     * 注意:这个测试需要将前面映射配置中的name的 not-null="true"删除
     */
    @Test
    public void run5(){
        Session session = HibernateUtils.openSession();
        Transaction tx = session.beginTransaction();

        User user = new User();
        //注意:底层是根据id值进行删除操作
        user.setId(1L);

        session.delete(user);
        tx.commit();
        session.close();
    }

获取对象

  /**
     * 获取对象
     * get(Class clz, Serialize id):获取对象
     * load(Class clz, Serialize id):获取对象
     */
    @Test
    public void run6(){
        Session session = HibernateUtils.openSession();
        User user = session.get(User.class, 2L);
        System.out.println(user);
        session.close();
    }

    @Test
    public void run7(){
        Session session = HibernateUtils.openSession();
        User user = session.load(User.class, 2L);
        System.out.println(user);
        session.close();
    }

总结(数据库 id自增长的情况下)

保存对象
因为我在Hibernate核心配置文件中配置了主键自动增长所以在测试类中给不给id赋值都没有关系都可以进行保存。
更新对象
必须要给id进行赋值,才可以进行更新,因为底层就是根据id查找到相应数据之后进行更新,所以需要有id。
保存或更新对象
当没有设置id值的时候是保存一个对象,前提是id自动增长。当设置id的时候就是更新操作了,此时设置的id值必须在数据库中有对应的id,否则运行会报错。
删除对象
当对象中只赋值id进行删除的时候,需要在配置中排除一些非空的设置。
获取对象
有两种方式来获取对象,分别是get方法和load方法。这两种方法都可以进行查询,区别后面会写到。

【算能】TPU(张量处理单元)的深度解析 算能(SOPHGO)作为国产AI芯片领域的核心企业,其TPU(张量处理单元)以高能效比与全场景覆盖能力为核心竞争力,专注于边缘计算与行业垂直领域的AI推理加速。 阅读详情

相关推荐

NVIDIA Jetson Xavier NX刷机+ROS安装+深度学习配置

.NVIDIA Jetson Xavier NX 完整说明流程 V1.0.0 – by Holden Date : 2021-03-19 文章目录.NVIDIA Jetson Xavier NX 完整说明流程1. Jetson Xavier NX简介2. Jetson Xavier NX刷机介绍2.1 工具准备工作2.2 下载镜像以及烧录工具2.3 烧录原生镜像到TF卡2.4 开机启动2.5 组件配置4. 镜像克隆制作5. 镜像重烧写6. NX调控命令 1. Jetson Xavier NX简介 ​ NVI

李老板Holden的博客 7618

基于Hibernate实现CRUD

一个简单的练习项目:基于Hibernate实现CRUD 共有两个表,Teacher表、College表。单向的多对一映射关系。以下是我的代码实现。 1.项目的目录结构: 2.HibernateUtil.java: //SessionFaction单态模式 public class HibernateUtil { private static SessionFactory sf=null; private static Configuration cfg=null; static {//在

qq_42962315的博客 1408

iPad秒变Mac副屏的隐藏技巧:用BetterDisplay实现无线竖屏+90度锁定

本文详细介绍了如何利用BetterDisplay软件突破苹果原生“随航”(Sidecar)功能的限制,将iPad无线设置为Mac的竖屏副屏,并实现90度方向锁定。通过创建虚拟显示器、配置分辨率与旋转参数,并校准鼠标指针,用户可以高效利用iPad的纵向空间进行文档阅读、编码等工作,显著提升多屏协作效率。

weixin_29266647的博客 603

使用Hibernate进行CRUD操作

CRUD操作 1、使用hibernate把数据库模型和java对象进行ORM映射,通过配置文件或者注解完成。 2、程序通过hibernate提供的API进行CRUD, C操作对应hibernate方法为save();(添加) R操作对应hibernate方法为get();(查询) U操作对应hibernate方法为update();(修改) D操作对应hibernate方法为delete()。(删...

每天就学一点点的博客 1541

从零到一:RK3588平台上的星闪模块驱动移植全解析

本文详细解析了在RK3588平台上移植UB37星闪模块驱动的完整流程,涵盖内核配置、设备树适配、驱动编译、功能测试等关键步骤。通过实践指导,帮助开发者掌握星闪技术在嵌入式系统中的集成与应用,提升无线通信模块的开发效率。

qsc90123456的博客 337

关于Kswapd的理解(一)

关于Kswapd的理解(一) 之前跟踪了MemAvailable的计算方式,其中watermark的计算花了很多精力,在学习的过程中看到一些资料中说watermark是给swapd使用的,于是乎,研究一下看看咯 本部分主要记录两个方面: 对于kswapd这个东西,从初学者(我)的角度出发会考虑哪些内容? 跟踪kswapd 初始化结构部分; 1. KSwapd机制 上图是还没有跟踪kswapd code的时候,对自己提出的一些疑问和自身的理解,主要是如下内容: kswapd 机制用来做什么:内存不足时

And乔的博客 2715

Hibernate4 CRUD示例

最近研发的项目需要使用Hibernate,很久没有使用Hibernate了,

1034

Backtrader官方中文文档:第四章Concepts基本概念

官方Concepts章节:https://backtrader.com/docu/concepts/

汇渊科技 2602

SpringMVC+Hibernate CRUD Application

I am going to create today a complete End-to-End SpringMVC 3, Hibernate 3 CRUD tutorial which uses MySQL as a database to store records. This will be a simple Bookstore application where user can Cr

记录成长过程中的点滴 1271

SAP ABAP 接口管理服务(ZIF)开源项目介绍

接口管理服务(ZIF)开源项目基于 SAP ABAP系统,是一款对标SAP PI/PO 的轻量接口管理产品。他通过独立开发包部署在ABAP系统中,包含接口注册、接口管理、日志服务及其他配套功能,拥有丰富的技术沉淀并通过市场检验,目前已被多家企业应用在SAP ERP系统中。

SAP李斌,本人承诺所有原创文章均不使用任何AI生成技术,请大家放心阅读。 1740

基于 Arduino 的鱼缸水质检测控制系统设计

本系统通过多传感器实时采集鱼缸水质参数(pH 值、温度、溶解氧、浊度),经 Arduino 主控芯片处理后,驱动执行模块自动调节水质,并通过显示模块实时展示数据。系统具备阈值报警、自动换水、温度调节、增氧等功能,适用于家庭或小型水族箱的水质智能管理。本设计提供了低成本、易扩展的鱼缸水质管理方案,适用于家庭水族箱或小型水产养殖场景,可根据实际需求调整传感器类型和控制逻辑。注:本设计如有疑问需要解惑可直接私信本人,看我个人简介。

weixin_42300449的博客 1086

Hibernate 的 CRUD 案例快速入门

Hibernate 是一款优秀的持久化框架及优秀的 ORM 框架之一。它通过使用 Java 反射、xml解析、代理模式等等技术对 JDBC 原有的繁琐的操作步骤进行了简化封装,使得之前 JDBC 代码可能需要几十行代码才能完成的功能,只需几行代码就能搞定。而且开发人员即使不需要熟悉 SQL 也能完成对数据库完成 CRUD 操作。它可以自动生成SQL语句,自动执行。完全可以使用面向对象的思想完成对数据库的操作。所以使用 Hibernate 框架可以大大简化了代码和提高了开发的效率。

zp8126的专栏 1408

二极管钳位电路、限幅电路和检波电路Multisim电路仿真

本文系统介绍了二极管钳位、限幅和检波三种基础电路的工作原理及Multisim仿真验证。钳位电路通过电容-二极管配合实现波形整体平移,将波峰或波谷固定在指定电压;限幅电路利用二极管导通特性削除信号超出设定阈值的部分;检波电路则通过半波整流和电容滤波从调幅波中提取音频信号。三种电路均通过Multisim仿真验证了理论分析结果,展示了二极管在信号处理中的关键作用。这些基础电路广泛应用于信号调理、电平保护和通信解调等领域。

XU157303764的博客 1120

【Hibernate】——CRUD操作

前言     在进入Hibernate的学习之后,接触了CRUD操作这个概念,开始不知道,觉得没啥,后面又遇到了,百度了一下,CRUD是指在计算机处理是的增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete)几个单词的首字母简写。主要被用在描述软件系统中数据库或者持久层的基本操作功能。 Create public void testSa

你若盛开,清风自来 564

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Hibernate框架的CRUD操作

Hibernate框架的CRUD操作 一、Hibernate框架的基础代码 //第一步 加载Hibernate核心配置文件 //到src下找到名称是hibernate.cfg.xml的核心配置文件 //在hibernate里面封装对象 Configuration cfg = newConfiguration().configure(); //第二步 创建sessionFactory对象 //读取h...

秒怂_z 291

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

使用hibernate进行CRUD

一. 查询操作 Criteria  – 查询JavaBean. – session.createCriteria(JavaBean.class); Query      - 用于执行HQL – session.createQuery(HQL); SQLQuery  - 用于执行原生的SQL. – session.createSQLQuery(SQL); 条件查询    - Restrict

技术人生 1473

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

hibernate-CRUD

CRUD是指在做计算处理时的增加(Create)、读取(Retrieve)(重新得到数据)、更新(Update)和删除(Delete)几个单词的首字母简写。主要被用在描述软件系统中数据库或者持久层的基本操作功能。 简单理解为数据库的增删查改操作。 下面是自己写的一个hibernate工具类,实现CRUD操作,很实用。 import java.io.Serializable; imp

唛唛丶Information Technology 517

hibernate之CRUD

使用Hibernate设计通用接口实现对Java对象进行增查改删(CRUD)的工作; 具体要求:实现CRUD接口具有通用性;可以在已有项 目中增加相应接口; 实体类: User.java package com.entity; import java.util.HashSet; import java.util.Set; public class User { private int uid; private String uname; private int uage; private Strin

maryverynice_的博客 282

Hibernate的CRUD以及junit测试

Hibernate的CRUD以及junit测试 Hibernate的CRUD以及junit测试 1:第一步创建动态工程引包,省略。 2:第二步,创建数据库和数据表,省略。 3:第三步,创建实体类,如User.java,源码如下所示:   对于实体类,一般实现构造方法,而构造方法一般实现三个:     一个无参构造方法;     一个有参...

HiterCoder 232

hibernate学习之Crud

封装Util获取session工厂 采用单例模式(保证外部调用的方法中不包含new操作,new操作只执行一次,比如让它随着类的加载而执行) public class HibernateUtil { //静态域,随着类的加载而加载;类的所有实例共享一个sqlSessionFactory,一个对象对其修改则所有对象的该域都被修改。常量,调用对象构造器初始化后不能更改...

海恩的博客 98

Java Hibernate 之 CRUD 操作

CRUD是指在做计算处理时的增加(Create)、读取(Retrieve)(重新得到数据)、更新(Update)和删除(Delete)几个单词的首字母简写. 下面列举实例来讲解这几个操作: 实体类: package com.oumyye.model; public class Student { private long id; private String na

Kei's Blog 362
上一篇: Hibernate快速入门
mi_javaEE
博客等级 码龄9年 0粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值