求助Sping、hibernate中的save方法

「已注销」 2013-03-05 11:37:57
自己写了一个注册页面,在dao中使用save方法怎样去判断是否insert成功,如果用boolean怎么去用
...全文
292 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Intboy 2013-03-05
  • 打赏
  • 举报
回复
引用 2 楼 tiantian1412 的回复:
Returns: the generated identifier 调用save方法之后返回被插入数据的主键
here+1
  • 打赏
  • 举报
回复
执行DAO方法之后返回pkey值就行。
架构师梦 2013-03-05
  • 打赏
  • 举报
回复
Returns: the generated identifier 调用save方法之后返回被插入数据的主键
zhaoli2315 2013-03-05
  • 打赏
  • 举报
回复
最好的办法是到数据库里面看看有没有你插入的记录
「已注销」 2013-03-05
  • 打赏
  • 举报
回复
我知道了, try{ this.getSession().save(registerUserDto); flg = true; }catch(Exception e){ e.printStackTrace(); flg = false; } 它不会抛异常, 不过它会在Action中抛异常。
求知路漫漫 2013-03-05
  • 打赏
  • 举报
回复
不知道楼主的主键是不是数字且自动增长。是的话,插入成功后就会返回一个大于0的主键id。你可以根据这个判断
haibang2011 2013-03-05
  • 打赏
  • 举报
回复
HibernateTemplate中就有sava()方法 HibernateTemplate 提供非常多的常用方法来完成基本的操作,比如通常的增加、删除、修改、查询等操作, Spring 2.0 更增加对命名 SQL 查询的支持,也增加对分页的支持。大部分情况下,使用 Hibernate 的常规用法,就可完成大多数 DAO 对象的 CRUD 操作。下面是 HibernateTemplate 的常用方法简介: q void delete(Object entity) :删除指定持久化实例 q deleteAll(Collection entities) :删除集合内全部持久化类实例 q find(String queryString) :根据 HQL 查询字符串来返回实例集合 q findByNamedQuery(String queryName) :根据命名查询返回实例集合 q get(Class entityClass, Serializable id) :根据主键加载特定持久化类的实例 q save(Object entity) :保存新的实例 q saveOrUpdate(Object entity) :根据实例状态,选择保存或者更新 q update(Object entity) :更新实例的状态,要求 entity 是持久状态 q setMaxResults(int maxResults) :设置分页的大小
xwqfudimo 2013-03-05
  • 打赏
  • 举报
回复
后台发出sql语句不报异常,基本就插入成功,不需要检查
andy_swc 2013-03-05
  • 打赏
  • 举报
回复
public boolean save(entity obj){ boolean b=false; try{ this.getHibernateTemplate().save(obj); b=true; }catch(Exception e){ e.XXXX; } return b; }
「已注销」 2013-03-05
  • 打赏
  • 举报
回复
boolean flg = false; try{ this.getSession().save(registerUserDto); flg = true; }catch(Exception e){ e.printStackTrace(); flg = false; } return flg; 不管是否成功为什么不走catch里面的东西。
proteinboy 2013-03-05
  • 打赏
  • 举报
回复
引用 5 楼 aiwuyuanqing 的回复:
this.getSession.save(user); 它返回的是Serialiazble, 如果成功会返回一个主键,但是失败的时候也返回一个主键
根据返回的主键进行查询,如果查询到数据则插入成功,否则插入失败!
架构师梦 2013-03-05
  • 打赏
  • 举报
回复
引用 5 楼 aiwuyuanqing 的回复:
this.getSession.save(user); 它返回的是Serialiazble, 如果成功会返回一个主键,但是失败的时候也返回一个主键
这个我倒没注意,文档里面也没有说明。 但如果真是这样的话: 1. 如果用的主键是自增长: 在执行插入之前获取主键最大值oldLastPrimaryKey,然后执行save返回主键再跟之前获得的oldLastPrimaryKey进行对比,如果大于oldLastPrimaryKey就表示插入成功,否则失败。 2. 如果用的主键是随机生成的: 在执行插入之前获取表中的count,然后执行save,然后再获取表中的count,对比下,如果大于原来的count就说明插入成功,否则失败。 感觉有点繁琐- -。。。而且并发问题还要注意
「已注销」 2013-03-05
  • 打赏
  • 举报
回复
this.getSession.save(user); 它返回的是Serialiazble, 如果成功会返回一个主键,但是失败的时候也返回一个主键
YOLO高分设计资源源码,详情请查看资源内容使用说明 YOLO高分设计资源源码,详情请查看资源内容使用说明 YOLO高分设计资源源码,详情请查看资源内容使用说明 YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧