【hibernate框架】核心开发接口-saveOrUpdate方法与delete方法

简介:

1.saveOrUpdate方法剖析

saveOrUpdate方法:分情况看是save还是update。


示例:

public void testSaveOrUpdate(){
	Teacher t=new Teacher();
	t.setName("t21");
	t.setTitle("低级");
	t.setBrithday(new Date());
	t.setZhicheng(ZhiCheng.C);
	
	Configuration cfg=new Configuration();
	SessionFactory sf=cfg.configure().buildSessionFactory();
	
	Session session=sf.openSession();
	session.beginTransaction();
	session.saveOrUpdate(t);
	//这次是在数据库中添加了一个(即执行了save方法)
	session.getTransaction().commit();
	
	t.setTitle("高级");
	
	Session session2=sf.getCurrentSession();
	session2.beginTransaction();
	session2.saveOrUpdate(t);
	//这次是在数据库中修改了刚刚的数据(即执行了update方法)
	session2.getTransaction().commit();
}


输出的Sql语句:
Hibernate: 
    insert 
    into
        _teacher
        (brithday, name, _title, zhicheng) 
    values
        (?, ?, ?, ?)
Hibernate: 
    update
        _teacher 
    set
        brithday=?,
        _title=?,
        zhicheng=? 
    where
        id=?

可以看出是先insert了teacher对象,之后update了数据库的teacher记录


2.delete方法

从表中删除相应的对象。

例子:删除表中id为4的对象

Teacher t=new Teacher();
t.setId(4);
t.setName("t11");
t.setTitle("中级");
t.setBrithday(new Date());
t.setZhicheng(ZhiCheng.A);
		
Configuration cfg=new Configuration();
SessionFactory sf=cfg.configure().buildSessionFactory();
		
Session session=sf.openSession();
session.beginTransaction();
session.delete(t);
session.getTransaction().commit();
session.close();
sf.close();


必须有相应的ID,在缓存中和数据库中有才可以delete它。

这个不难,主要你自己取多做测试就行了

相关文章
|
5天前
|
Java 数据库连接 数据库
探索JPA生态:Hibernate与其他ORM框架的对比分析
【6月更文挑战第25天】**JPA标准下的Hibernate是流行的ORM实现,提供丰富功能如二级缓存和延迟加载,但其学习曲线较陡,性能优化复杂。相比如MyBatis,Hibernate的JPQL更面向对象,MyBatis则接近SQL。选择ORM需考虑项目需求和个人偏好。**
|
10天前
|
Java 数据库连接
杨老师课堂之JavaEE三大框架Hibernate入门第一课
杨老师课堂之JavaEE三大框架Hibernate入门第一课
8 0
|
2月前
|
SQL Java 数据库连接
Java从入门到精通:3.1.2深入学习Java EE技术——Hibernate与MyBatis等ORM框架的掌握
Java从入门到精通:3.1.2深入学习Java EE技术——Hibernate与MyBatis等ORM框架的掌握
|
2月前
|
SQL 缓存 Java
Java一分钟之-Hibernate:ORM框架实践
【5月更文挑战第15天】Hibernate是Java的ORM框架,简化数据库操作。本文列举并解决了一些常见问题: 1. 配置SessionFactory,检查数据库连接和JDBC驱动。 2. 实体类需标记主键,属性映射应匹配数据库列。 3. 使用事务管理Session,记得关闭。 4. CRUD操作时注意对象状态和查询结果转换。 5. 使用正确HQL语法,防止SQL注入。 6. 根据需求配置缓存。 7. 懒加载需在事务内处理,避免`LazyInitializationException`。理解和避免这些问题能提升开发效率。
43 0
|
2月前
|
SQL Java 关系型数据库
数据库访问:什么是Hibernate框架?
【4月更文挑战第15天】Hibernate是开源ORM框架,将Java对象与数据库表映射,简化对象-关系映射,提升开发效率和性能。它自动化处理数据操作,支持多种数据库,自动生成SQL,提供配置选项和高级特性,减少手动SQL编写,便于切换数据库。
39 2
|
2月前
|
SQL 缓存 Java
框架分析(9)-Hibernate
框架分析(9)-Hibernate
|
12月前
|
SQL XML 存储
Hibernate框架【五】——基本映射——多对多映射
Hibernate框架【五】——基本映射——多对多映射
145 0
|
10月前
|
Java 数据库连接
简述使用Hibernate框架的几个步骤
简述使用Hibernate框架的几个步骤
44 0
|
SQL XML 缓存
认识 ORM 框架 Hibernate,为什么 2022 年了还在谈论它?
前言 Hibernate 作为一种全自动 ORM 框架,在几年前常与 Spring、Struts2 一起使用,并称 SSH,作为主流的企业级应用框架。伴随着 MyBatis 的诞生,以及 Hibernate 本身的一些缺陷,如今 Hibernate 已经慢慢淡出了大家的视野。
528 0
认识 ORM 框架 Hibernate,为什么 2022 年了还在谈论它?
|
11月前
|
SQL Java 关系型数据库
Hibernate框架概述
Hibernate框架概述
89 0