首页
学习
活动
专区
圈层
工具
发布

Hibernate学习---用Session实现CURD

我们使用Hibernate的目的是什么?对数据库进行操作,所有接下来我们就用Hibernate来进行CURD。...前边我们已经分析过了Configuration,SessionFactory和Session,接下来我们就利用Session对象来进行增删改查: 在进行增删改查之前我们先对SessionFactory和...主要内容区别: 1,persist把一个瞬态的实例持久化,但是并"不保证"标识符(identifier主键对应的属性)被立刻填入到持久化实例中,标识符的填入可能被推迟到flush的时候。...这里我们只需要知道load这个方法存在并且查询不到时会抛出错误就好了,具体的细节我们后面慢慢讨论。 saveOrUpdate: 这个操作当存在id时执行update,当不存在id时执行save。...注意:当增改删在同一个事务的时候,hibernate默认执行顺序是增改删但是可以通过刷新Session缓存来进行分割,对想要先执行的操作进行优先处理。

89860
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    为什么catch了异常,但事务还是回滚了?

    前几天我发了这篇文章《我来出个题:这个事务会不会回滚?》...其中还有直接发给我测试案例,来证明我的答案是错的。 今天,我们就来一起看看test4这个争议很大的问题。...如果您是刚打开这篇文章,不了解我们在讨论啥,那可以先点击查看之前的这篇《我来出个题:这个事务会不会回滚?》...为什么没回滚 先来说说,那些写了代码验证"不会回滚"的情况,把这些错误答案的原因先说清楚,然后再细说test4会回滚的情况。...从异常栈中找到最近的一个错误,点开看看。 错误行数在532行tx.commit(),习惯性的加上断点,这样下一次进来的时候可以看看当前情况下的各种参数情况。

    2.1K30

    SSH 学习杂记

    Struts+Spring+Hibernate 作为一种当今流行的开发模式,我很荣幸地在一周左右的时间里,疯狂地边学边琢磨了一番,甚有感触。...Struts+Spring+Hibernate和整合(SSH) 表示层:Struts 业务层:Spring 持久层:Hibernate 这个内容我完成得不是很好。...遇到的问题: 不知道为什么使用 Eclipse 建立 Hibernate 框架时,Eclipse 无法发现已经存在的这个 spring 配置文件,害我手动添加。...另一方面,我配置的 SSH 还是用到了 hibernate.cfg.xml,将这个文件和 applicationContext.xml 关联起来,而一些更官方的说法应该是没有 hibernate.cfg.xml...在 Spring 中配置 Hibernate 相关的一些 bean 的时候,都出现了 “Servlet action is not available” 的错误,原因不明。

    74510

    Java项目经验——程序员成长的钥匙

    variable、heap、method area、stack、GC(垃圾回收)、override、overload、对象转型(casting)、多态、this、supe ----异常处理:理解编译期错误和运行期错误的区别...为什么在web.xml中配置的StrutsPrepareAndExecuteFilter要过滤所有的请求? 请你给我谈谈ValueStack? Struts2是如何实现MVC设计模式的?...Hibernate: 请你谈谈你对OR映射的理解? 很多人说Hibernate不适合大项目,性能有问题,你是如何理解的? Hibernate为什么一定要定义一个数据库标识?...为什么Hibernate建议你的实体类实现hashCode和equals方法? 谈谈你对Hibernate实体类中的数据库标识与数据库主键之间关系的认识?...我有一个微信公众号,经常会分享一些Java技术相关的干货。如果你喜欢我的分享,可以用微信搜索“Java团长”或者“javatuanzhang”关注。

    2.6K01

    项目经验-你的Java生存之道

    variable、heap、method area、stack、GC(垃圾回收)、override、overload、对象转型(casting)、多态、this、super ----异常处理:理解编译期错误和运行期错误的区别...为什么在web.xml中配置的StrutsPrepareAndExecuteFilter要过滤所有的请求? 请你给我谈谈ValueStack? Struts2是如何实现MVC设计模式的?...Hibernate: 请你谈谈你对OR映射的理解? 很多人说Hibernate不适合大项目,性能有问题,你是如何理解的? Hibernate为什么一定要定义一个数据库标识?...为什么Hibernate建议你的实体类实现hashCode和equals方法? 谈谈你对Hibernate实体类中的数据库标识与数据库主键之间关系的认识?...当你真正到公司里面从事了几年开发之后,你就会同意我的说法!

    1.4K70

    Java项目经验——程序员成长的关键

    instance variable、heap、method area、stack、GC(垃圾回收)、override、overload、对象转型(casting)、多态、this、super 异常处理:理解编译期错误和运行期错误的区别...为什么在web.xml中配置的StrutsPrepareAndExecuteFilter要过滤所有的请求? 请你给我谈谈ValueStack? Struts2是如何实现MVC设计模式的?...Hibernate: 请你谈谈你对OR映射的理解? 很多人说Hibernate不适合大项目,性能有问题,你是如何理解的? Hibernate为什么一定要定义一个数据库标识?...为什么Hibernate建议你的实体类实现hashCode和equals方法? 谈谈你对Hibernate实体类中的数据库标识与数据库主键之间关系的认识?...当你真正到公司里面从事了几年开发之后,你就会同意我的说法!

    66200

    项目经验-你的Java生存之道

    variable、heap、method area、stack、GC(垃圾回收)、override、overload、对象转型(casting)、多态、this、super ----异常处理:理解编译期错误和运行期错误的区别...为什么在web.xml中配置的StrutsPrepareAndExecuteFilter要过滤所有的请求? 请你给我谈谈ValueStack? Struts2是如何实现MVC设计模式的?...Hibernate: 请你谈谈你对OR映射的理解? 很多人说Hibernate不适合大项目,性能有问题,你是如何理解的? Hibernate为什么一定要定义一个数据库标识?...为什么Hibernate建议你的实体类实现hashCode和equals方法? 谈谈你对Hibernate实体类中的数据库标识与数据库主键之间关系的认识?...当你真正到公司里面从事了几年开发之后,你就会同意我的说法!

    90840

    Java项目经验——程序员成长的钥匙

    variable、heap、method area、stack、GC(垃圾回收)、override、overload、对象转型(casting)、多态、this、super ----异常处理:理解编译期错误和运行期错误的区别...为什么在web.xml中配置的StrutsPrepareAndExecuteFilter要过滤所有的请求? 请你给我谈谈ValueStack? Struts2是如何实现MVC设计模式的?...Hibernate: 请你谈谈你对OR映射的理解? 很多人说Hibernate不适合大项目,性能有问题,你是如何理解的? Hibernate为什么一定要定义一个数据库标识?...为什么Hibernate建议你的实体类实现hashCode和equals方法? 谈谈你对Hibernate实体类中的数据库标识与数据库主键之间关系的认识?...当你真正到公司里面从事了几年开发之后,你就会同意我的说法!

    80020

    AppFuse项目笔记(1)

    这主要是因为我没有对这些web层框架使用XDoclet,同时也是由于使用Ant工具作为安装工具的局限性所致。自动生成代码的工具我称之为 AppGen ,我在 Part I 中讲解如何使用它。...;-) 下面我将用文字来告诉你在实际的开发过程中我是如何做的。 让我们从在AppFuse项目结构中创建一个新的对象,一个DAO和一个测试用例来开始。...现在我们已经有了一个创建好的 POJO ,我们需要在里面加上 XDoclet 标签以便由它生成 Hibernate 映射文件。...首先,我们加入一个 @hibernate.class 标签,这个标签告诉 Hibernate 这个对象将映射哪一张表: /** * @hibernate.class table="person" */...注意所有这些@hibernate.* 标签应该放置在你的POJO对象的 getter方法的 Javadocs 位置。

    1.8K50

    Java程序员面试题集(86-115)

    要决定请求交给哪一个Action来处理有两种方式:1利用配置文件:可以在配置文件中通过标签配置和请求对应的Action类以及要调用的方法;2利用约定:Struts2中可以使用约定(convention...只有在偏离这一约定时,例如将该表命名为products_sold,才需写有关这个名字的配置。如果您所用工具的约定与你的期待相符,便可省去配置;反之,你可以配置来达到你所期待的方式。...答:Hibernate的对象有三种状态:瞬态、持久态和游离态。...图 Hibernate实体状态转换图 临时状态:当new一个实体对象后,这个对象处于临时状态,即这个对象只是一个保存临时数据的内存区域,如果没有变量引用这个对象,则会被JVM的垃圾回收机制回收。...可以在实体类上通过@ManyToMany注解配置多对多关联或者通过映射文件中的和标签配置多对多关联,但是通常情况下,可以将多对多关联转换成两个多对一关联来实现多对多关联映射

    2.2K70

    WP SEO 技巧:正确使用标签

    今天我们将讨论页面的实际代码,我们将略谈两点: Header 标签 Meta 标签 Header 标签 首先,让我们先介绍点背景知识,什么是标签和为什么他们很重要。...所以你会怎么在你的页面中强调这些标签呢?我用一些 PHP 代码来在页面上放置这些标签。H 后面数字最低的 H 标签是最重要的,所以要使得 H1 标签变得最重要。...在我的页面的头部,我使用像下面的代码来产生 H1 标签。 Google Inside."; } ?>当我使用这些代码的时候,我在主页(只有主页)把我的 blog 题目放在 H1 标签内。...Meta 标签变得非常老了,但是我觉得他们依然是非常有用的。 很多 blogs 只是简单让搜索引擎指出应该放置什么到描述中,但是我觉得能够控制访问者在搜索引擎结构见到东西是非常重要。...对于个翻译或者这个SEO主题有什么意见,请给我留言 ----

    32410

    Multisim14.2仿真使用汇总

    ----------------------------- 3)显示节点 ​------------------------------ 4)元件外形设置 一般不要修改,使用时会不习惯。...4、放置标题栏 1)放置标题栏 我的标题栏下载地址:Multisim标题栏。...------------------------------ 2)编辑标题栏 5、增加描述框 二、原理图录入与探针 1、探针的置放 Ctrl+R旋转电子元件方向,放置电压与电流探针,功率探针必须放置在器件上...4、瞬态分析 修改T1,增加PR1电压探针: 仿真设置如下: 可以看出瞬态仿真与示波器的区别,示波器未使用捕获时,不能显示瞬态发生的情况。...是通用模型,我下载的 spice) (2)解压的文件后有个 xxx.LIB 文件需要更名为 xxx.cir 。

    4.4K42

    Mybatis面试题

    Mybatis动态sql可以让我们在Xml映射文件内,以标签的形式编写动态sql,完成逻辑判断和动态拼接sql的功能。...为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里? 为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里?...在Mybatis中,每一个、、、标签,都会被解析为一个MappedStatement对象。...作用范围:Executor的这些特点,都严格限制在SqlSession生命周期范围内。 MyBatis与Hibernate有哪些不同? MyBatis与Hibernate有哪些不同?...但是Hibernate的缺点是学习门槛高,要精通门槛更高,而且怎么设计O/R映射,在性能和对象模型之间如何权衡,以及怎样用好Hibernate需要具有很强的经验和能力才行。

    3.1K40

    『互联网架构』软件架构-mybatis体系结构(16)

    官方参考文档这个文档很详细:http://www.mybatis.org/mybatis-3/zh/index.html ?...获取链接,通过DriverManager.getConnection 构建sql语句,可能这个sql语句,增删改查都有可能 设置参数,跟jdbc数据库是一一对应的 执行sql,通过execute 获取返回结果...根本就不需要写sql语句了,后来开始普及hibernate。 hibernate hibernate 是一个完完整整的ORM框架,包含基本的查询,插入,修改,删除。...虽然好,但是也有弊端的,最不方便的地方,状态的把握(游离态,持久化态,瞬态数据态),特别是模型比较复杂的时候什么一对一,一对多,多对一,多对多,很容易绕晕,还有HQL语句,这些语句都是hibernate...trim (where, set) 标签 foreach 标签 PS:其实mybatis,我比较习惯自动生成对应的xml,里面只有简单的增删查改,所有的业务逻辑不在表里面进行处理包括关联查询,都在service

    2K21

    day55_BOS项目_07

    因为这个代理类实现了这个接口(StaffService),即我们用接口(父类)来引用子类的对象,亦即多态(父类引用子类)。 说白了,我跟你父亲有关系,跟你没半毛钱关系。...之前,我(Action)是被动接收者,你们注入你们的代理对象进来给我使用,通过你们的代理进行事务管理等操作。...,设置错误提示信息,并跳转至登录页面             // this.addActionError("验证码错误"); // 在Struts2中,所有的消息提示都是基于国际化的。             ...6.2、方法注解权限控制(重点) 第一步:在spring配置文件中开启shiro的注解支持 问题一:要强制使用cglib为Action创建代理对象,为什么呢? ?...6.3、页面标签权限控制(shiro标签库) 第一步:在jsp页面中引入shiro的标签 <%@ taglib uri="http://shiro.apache.org/tags" prefix="shiro

    51310

    spring security3.2配置—权限管理

    大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。 之前已经在我的博客中发过security的执行流程图了,大家能够先去看看那个图再看这篇。...里我凝视掉了 auto-config=”true” 这个配置比較重要的,假设你不配置,security可能不会启动,我为什么又把它凝视掉了,是由于当你配置了自己主动义的登录页面,就不用这个了,这个的作用可能是在项目启动时...-- spring security 过滤器, 这个的位置顺序和spring的监听器启动位置没有什么关系,能够放在spring监听器的前面,也能够放置在后面。...-- hibernate的session启动过滤器,在url请求action时启动 ,不配置这个,url请求时无法启动hibernate的session--> ...//这种方法在url请求时才会调用,server启动时不会运行这种方法,前提是须要在标签内设置 标签 /* * 參数说明: * 1、configAttributes

    67410

    初识Hibernate之理解持久化类

    比如我想要插入一条记录到数据表中,我就可以new一个持久化对象并为其各个属性(对应于数据表的字段)赋值,然后映射到数据表中。...而持久化对象主要有以下三个不同状态: 瞬态:对象刚刚被new创建出来,只是一个普通的类对象。...持久化:持久化对象与一个Hibernate Session相关联,在这个状态下,对象的所有属性值的改动,都是可以在事务结束时提交到数据库中的 脱管:原本处于持久状态的对象因为其对应的Session被关闭...我们首先创建了一个user的持久化对象,此时该对象只是一个普通Java对象并不具备持久化能力,这个状态就是瞬态。...接着我们调用save方法,这个方法就会将user对象当前各个属性的值映射到数据库中,并且在save方法调用后,user这个对象此时的状态就变成了持久化状态。

    1.2K80

    实战:应用对持久数据访问| 从开发角度看应用架构9

    而ORM的实现,通过JPA的标准,底层使用Hibernate等技术。...大魏这个类,在被生成对象时,会从数据库表中读数据,然后可能会对数据修改,修改的这些数据,会存到持久性上下文中(运行在内存中),在默写情况下,会被存回数据库表中(例如提交)。...当实体被序列化或在事务结束时会发生这种情况。 这种状态被称为实体的分离状态。 ?...merge()方法为处于新状态或瞬态状态的实体在数据库表中插入新行。 合并操作之后,实体处于受管理状态。...JPA提供程序在启动时使用JNDI查找服务按名称查找数据源。 4可以在属性元素中设置其他标准或特定于供应商的属性。 hibernate.Dialect属性指定使用哪个数据库。

    2K30
    领券