问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

spring提供的hibernate模板类HibernateTemplate,中save等方法是怎么提交事务的?

发布网友 发布时间:2022-04-14 11:53

我来回答

3个回答

热心网友 时间:2022-04-14 13:22

setAutoCommit 默认是true 说明save方法是自动提交的
还有这个方法是java.sql.Connection借口提供的 不是hibernate的
方法说明如下:
void setAutoCommit(boolean autoCommit)
throws SQLException将此连接的自动提交模式设置为给定状态。如果连接处于自动提交模式下,则它的所有 SQL 语句将被执行并作为单个事务提交。否则,它的 SQL 语句将聚集到事务中,直到调用 commit 方法或 rollback 方法为止。默认情况下,新连接处于自动提交模式。
提交发生在语句完成时。语句完成的时间取决于 SQL 语句的类型:

对于 DML 语句(比如 Insert、Update 或 Delete)和 DDL 语句,语句在执行完毕时完成。
对于 Select 语句,语句在关联结果集关闭时完成。
对于 CallableStatement 对象或者返回多个结果的语句,语句在所有关联结果集关闭并且已获得所有更新计数和输出参数时完成。
注:如果在事务和自动提交模式更改期间调用此方法,则提交该事务。如果调用 setAutoCommit 而自动提交模式未更改,则该调用无操作(no-op)。

参数:
autoCommit - 为 true 表示启用自动提交模式;为 false 表示禁用自动提交模式
抛出:
SQLException - 如果发生数据库访问错误,在参与分布式事务的同时调用 setAutoCommit(true),或者在关闭的连接上调用此方法

还有save方法是在org.hibernate.Session这个接口里
save
Serializable save(Object object)
throws HibernateExceptionPersist the given transient instance, first assigning a generated identifier. (Or using the current value of the identifier property if the assigned generator is used.) This operation cascades to associated instances if the association is mapped with cascade="save-update".

Parameters:
object - a transient instance of a persistent class
Returns:
the generated identifier
Throws:
HibernateException

热心网友 时间:2022-04-14 14:40

使用HibernateTemplate执行execute(new HibernateCallback())方法,从HibernateCallback中得到session,
在此session中做多个操作,并希望这些操作位于同一个事务中。
如果这样写:
public static void main(String ss[]) {
CtxUtil.getBaseManager().getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException, SQLException {
// 保存stu1
Student stu1 = new Student();
stu1.setName("aaaa");// 在数据库中,name字段不允许为null
session.save(stu1);
session.flush();//实际上,如果不是程序员"手痒"来调用这个flush(),HibernateTemplate中session的事务处理
还是很方便的
Student stu2 = new Student();
session.save(stu2);// 没有设置name字段,预期会报出例外
session.flush();
return null;
}
});
}

热心网友 时间:2022-04-14 16:15

这是针对事务的,auto commit就是自动提交事务
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
人民币贬值对人民有什么影响 长春市办理设立个人律师事务所需要什么材料? 学生签证的延期都需要以下材料: 米3手机套彩绘小米3彩膜 骑马与砍杀光明与黑暗泡菜编队方法 陈染相关作品介绍 万紫千红是指什么生肖,精准已答落实 十二生肖谁是万紫千红 手机里带的网络电视怎么联接到笔记本电脑上看呢? ...手机,电脑连上网了,智能电视能连上看电视吗,怎样能看智能电视_百度... 黑暗战斗暴龙兽的进化 在你看来自学画画可以有所成就吗? 说明文与生俱来的根本特性是? 在数码宝贝中,暴龙兽系的的数码宝贝有不少,到底什么才是暴龙兽系的纯正进化路线呢? 狱警.用英文怎么说? prison的用法什么时候加the什么时候不加t 越狱用英语怎么说 越狱的英文怎么读?? prison;prisoner;scout ; 这英语用谐音怎么读? ? 一个手机号码注册了两个之前那个微信怎么找回来? 电脑被传奇管理封了怎么办 说的是封的电脑机器码 怎么改 求高手 越狱的英文怎么读? 季如风送给沐之晴的手表是什么牌子的什么型号? prisoner 这个英语单词怎么念 怎么解除传奇禁止的IP 手表是真的吗迪赛? 囹圄怎么读 迪赛DZ4525表带宽度 传奇私服IP被封了怎么办 “囹圄”怎么读? dwg文件怎么转换成excel 超恶魔兽进化路线 黑战斗暴龙兽X的进化流程 如何将.dwg格式文件转换成.xls格式文件? 战斗暴龙兽进化是什么 战斗暴龙兽原始进化什么? cad图纸数据怎么转换excel 商标注册需要提供什么材料? 成都市最新落户口政策是什么 大量越南女孩涌入东莞,她们到底怎样维持生计? 偷渡过来的越南姑娘,能娶为妻吗?后果会怎样?。 大量的越南姑娘涌入中国,表面上是来旅游,实际上另有目的,对吗? 都说最好不要娶越南姑娘是因为什么原因? 越南姑娘“以瘦为美”,为什么越南人都这么瘦? 越南姑娘身穿奥戴勒紧胸膛,越南人为什么都这么瘦? 许多越南女子嫁到中国之后都会跑掉,这是怎么回事? 越南姑娘嫁到到中国需要办理什么证件 越南姑娘为何想嫁中国而非美国? 越南姑娘来中国旅游,不到两天就被“吓”回国,这是为什么? 越南女孩在中国的哪些地方最多