【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它。

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

时间: 2024-09-10 20:53:55

【hibernate框架】核心开发接口-saveOrUpdate方法与delete方法的相关文章

【hibernate框架】核心开发接口-Clear方法与flush方法

1.Clear方法:无论是load还是get,都会首先查找缓存(一级缓存),如果没有,才会去数据库查找,调用clear()方法可以强制清除session缓存. 示例: public void testClear(){ Configuration cfg=new AnnotationConfiguration(); SessionFactory sf=cfg.configure().buildSessionFactory(); Session session=sf.openSession(); s

【hibernate框架】核心开发接口-load和get方法

Load方法,从数据库里取数据,并封装成JAVA对象. 示例: public void testLoad(){ Configuration cfg=new AnnotationConfiguration(); SessionFactory sf=cfg.configure().buildSessionFactory(); Session session=sf.openSession(); session.beginTransaction(); //形参1:class-将取出的数据当做什么对象来存

【hibernate框架】核心开发接口-update方法

1.更新一个Detached(脱管状态)对象,把它重新变成Persistent(持久化状态),然后在数据库里做更新. 示例: public void testUpDate1(){ Configuration cfg=new Configuration(); SessionFactory sf=cfg.configure().buildSessionFactory(); Session session=sf.openSession(); session.beginTransaction(); Te

【hibernate框架】核心开发接口-Configuration接口

Configuration接口: a)AnnotationConfiguration b)进行配置信息的管理 c)用来产生SessionFactory d)可以在configure方法中指定hibernate配置文件 e)只需关注一个方法即:buildSessionFactory() 1.关于Configuration 什么叫做Configuration? new 出来一个Configuration()方法,调它的configure()方法, 默认它会加载hibernate.cfg.xml文件,

HIBERNATE核心开发接口介绍

Gender类 package com.zzk.hibernate.model; public enum Gender { MALE, FEMALE } Student类 package com.zzk.hibernate.model; public class Student { private int id; private String name; private int age; private String sex; private boolean good; public boole

Hibernate框架学习之三:深入映射文件的配置

前言 这里主要是对XML版的Hibernate框架的开发进行说明,Annotation版会在另外的文章中在说明.由于Hibernate是一个全方位的ORM框架,那么要实现从Object到Record的完全过渡,实现的桥梁就是这里要讲的映射文件了.映射文件的内容繁多,主要是以开发中会使用到的为主进行说明.大体说来,映射文件主要是对class的映射,还包括属性,属性有分为主键.普通属性与集合属性,甚至还有复合类型等.每种属性都需要进行不同的配置,官方文档看得有点累,所以这里一并做一个总结. 映射文件

【HIBERNATE框架开发之一】搭建HIBERNATE环境并成功运行第一个项目HELLOHIBERNATE并解决3个常出现的运行问题;

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/hibernate/783.html OK,从这篇开始Himi将与大家一起进入Hibernate框架的学习啦,新手新手的说,希望大家多多指教: 对于Hibernate概述一下: "  Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库. H

网络相册开发(2)——Spring,SPA,Hibernate框架

搭建java代码框架 开发(2)--Spring,SPA,Hibernate框架-spring hibernate框架"> 引入辅助类和基类 PKgen为 PK 生成器 Java代码 package net.sw.util; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.Map; import java.util.concurrent.

网页设计与开发-关于页面框架的东西,除了iframe还有什么方法

问题描述 关于页面框架的东西,除了iframe还有什么方法 比如一个OA系统的管理页面,导航栏是一块,来刷新一块页面的页面 或者指向其他页面,就是c#的母版页的概念 除了这个还有iframe框架,还有其他什么方法实现? 解决方案 dev +ajax 应该也可以实现.ajax刷新指定区域.