mybatis insert的时候中获取自动增长列的 时候报的错
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis insert的时候中获取自动增长列的 时候报的错相关的知识,希望对你有一定的参考价值。
org.springframework.jdbc.UncategorizedSQLException: Error getting generated key or setting result to parameter object. Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 必须执行该语句才能获得结果。
; uncategorized SQLException for SQL []; SQL state [null]; error code [0]; 必须执行该语句才能获得结果。; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 必须执行该语句才能获得结果。
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:71)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:346)
at $Proxy17.insert(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:231)
at tq365.dao.baidu.BaiduAdGroupDao.addAdGroupToChoosenCamp(BaiduAdGroupDao.java:87)
at tq365.service.baidu.BaiduAdGroupService.aopAddAdGroupToChoosenCamp(BaiduAdGroupService.java:116)
服务器重新启动一下就不会有这个问题了!估计不是代码问题!郁闷!!!!跪求原因!
用这个就oK了 参考技术B 映射语句和实体类贴出来看下呀,追问
呵呵,不是映射问题!映射这里没有写,它也会自动匹配的,(实体于字段要一致)
是因为mybatis的批量添加的事务没有结束前自增长列是不会返回的!
excutorType有多种的我们一般的默认的是单条sql与数据库交互的
(网上看了下这种批量处理的事务最好手动的写!)
SQL获取刚插入的记录的自动增长列ID的值
假设表结构如下:
CREATE TABLE TestTable
(
id int identity,
CreatedDate datetime
)
SQL2005获得新增行的自动增长列的语句如下:
insert into TestTable (CreatedDate) output inserted.id values (getdate())
SQL2000获得新增行的自动增长列的语句如下:
insert into TestTable (CreatedDate) values (getdate())
select @@IDENTITY
在C#中使用ExecuteScalar()方法获得第一行第一列的值(即自增id):
object val = cmd.ExecuteScalar();
以上是关于mybatis insert的时候中获取自动增长列的 时候报的错的主要内容,如果未能解决你的问题,请参考以下文章
Mysql中怎样得到最新insert的一行数据的自动增长列?