报错:Error selecting key or setting result to parameter object. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘VALUES IDENTITY_VAL_LOCAL()’ at line 1
描述 服务器遇到一个意外的情况,阻止它完成请求。
了解:
1\关于使用mysql的 SELECT LAST_INSERT_ID() 语句碰到的问题
2\Mybaits数据库主键SQL
3\DB2自增长ID
解决方案:在sql的xml中注释掉:
<insert id="insert" parameterType="com.qst.study.bean.User">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Wed Aug 07 20:26:50 CST 2019.
-->
<!--<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
VALUES IDENTITY_VAL_LOCAL()
</selectKey>-->
insert into td_user (name, mail, password,
privilege)
values (#{name,jdbcType=VARCHAR}, #{mail,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR},
#{privilege,jdbcType=INTEGER})
</insert>
<!--<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
VALUES IDENTITY_VAL_LOCAL()
</selectKey>-->
//产生冲突。同时修改成SELECT LAST_INSERT_ID()会发生死锁异常。
插入和spring事务冲突。