如果数据库设置了自增长主键,没在项目中配置,插入记录是有问题的
目前我用的是sqlserver 2012
1、需要在表配置文件中的插入sql中配置自增长主键(useGeneratedKeys=”true” keyProperty=”id”),如下:
<insert id="insert" parameterType="com.model.AdmRole" useGeneratedKeys="true" keyProperty="id">
还有如果sql语句配置中有下面(selectKey ),要把它删了,要不会报错:
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
VALUES IDENTITY_VAL_LOCAL()
</selectKey>
2、如果没有用mapper.xml配置文件,那么就要mapper接口中的方法名上注解(@SelectKey(statement = “select @@IDENTITY”,keyProperty = “id”,before = false,resultType = Integer.class)),如下:
@InsertProvider(type=AdmFuncSqlProvider.class, method="insertSelective")
@SelectKey(statement = "select @@IDENTITY",keyProperty = "id",before = false,resultType = Integer.class)
int insertSelective(AdmFunc record);