说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

springMVC+Mytatis ,在同一个service方法中先插入一些数据再进行查询,查询不到刚插入的数据。

编辑:说三道四文库 发布时间:2018-04-26 05:24
HTML文档下载 WORD文档下载 PDF文档下载
插入数据后如果要查询到,需要插入数据的过程中开启事务,插入完成之后关闭事务,这样在接下来的操作当中查询到刚刚插入的数据,建议:
建立一个controller,两个service(插入\查询数据),插入数据的service开启事务
在controller中先调用插入方法,最后调用查询方法即可查询到

mybaties不会再插入前自动开启事务,插入后关闭事务吗,还有就是如果这个查询的service方法想重复插入调用的话怎么办
你的事务是代码控制还是注解.

你的问题我理解的不是很清楚。你插入和查询是在同一个方法中还是前后调用?你的mybatis的mapping怎么写?

通常:insert一个对象后,我们需要一个主键值来判断是否成功.mapping如下:

<insert id="insertAuthor">
  insert into Author (id,username,password,email,bio)
  values (#{id},#{username},#{password},#{email},#{bio})
</insert>

方法声明如下

public void save(Author author) ;


配置了主键策略,在insertAuthor执行后,可以从author中得到刚插入的相应主键
如果是前后方法调用链,可以从上下文知道哪个author的信息呀?不需要再去查一次呀。我觉得的你并没有理解o/r框架的使用
插入时参数用和数据库对应的实体类,insert的时候通过selectkey把插入的主键返回,那个实体类中就有主键了
查询的是表的全部字段
事务是用XML控制的
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘