語法錯誤,關于UserPasswordDOMapper的,請大神幫忙看下。。。
2019-06-03 21:56:29.690? WARN 36608 --- [nio-8080-exec-3] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.springframework.jdbc.BadSqlGrammarException:?
### Error updating database.? 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 '' at line 1
### The error may involve com.miaoshaproject.dao.UserPasswordDOMapper.insertSelective-Inline
### The error occurred while setting parameters
### SQL: insert into user_password
### 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 '' at line 1
; bad SQL grammar []; nested exception is 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 '' at line 1]
上面是報的錯
<insert?id="insertSelective"?parameterType="com.miaoshaproject.dataObject.UserPasswordDO"> ??insert?into?user_password ??<trim?prefix="("?suffix=")"?suffixOverrides=","> ????<if?test="id?!=?null"> ??????id, ????</if> ????<if?test="encrptPassword?!=?null"> ??????encrpt_password, ????</if> ????<if?test="userId?!=?null"> ??????user_id, ????</if> ??</trim> ??<trim?prefix="values?("?suffix=")"?suffixOverrides=","> ????<if?test="id?!=?null"> ??????#{id,jdbcType=INTEGER}, ????</if> ????<if?test="encrptPassword?!=?null"> ??????#{encrptPassword,jdbcType=VARCHAR}, ????</if> ????<if?test="userId?!=?null"> ??????#{userId,jdbcType=INTEGER}, ????</if> ??</trim> </insert>
上面是我對應的mappper里面的sql語句
這個是本人創建的數據庫
class?UserPasswordDO?{ ????private?Integer?id; ????private?String?encrptPassword; ????private?Integer?userId; ????public?UserPasswordDO(Integer?id,?String?encrptPassword,?Integer?userId)?{ ????????this.id?=?id; ????????this.encrptPassword?=?encrptPassword; ????????this.userId?=?userId; ????} ????public?UserPasswordDO()?{ ????????super(); ????} ????public?Integer?getId()?{ ????????return?id; ????} ????public?void?setId(Integer?id)?{ ????????this.id?=?id; ????} ????public?String?getEncrptPassword()?{ ????????return?encrptPassword; ????} ????public?void?setEncrptPassword(String?encrptPassword)?{ ????????this.encrptPassword?=?encrptPassword?==?null???null?:?encrptPassword.trim(); ????} ????public?Integer?getUserId()?{ ????????return?userId; ????} ????public?void?setUserId(Integer?userId)?{ ????????this.userId?=?userId; ????} }
這是對應的dataObjext?
難受啊
2019-06-04
直接debug查userPassDO的值也行,debug用不慣的話,可以直接在UserPassDO.class里寫toString()方法,然后打印出來看看值
2019-10-08
請問樓主最后怎么解決的嘞?
2019-06-04
往user_password表中插入的時候id是沒有默認值的,視頻里是怎么直接插進去的???
2019-06-04
你可以試著打印一下
userPasswordDO
對象看看里面的userid字段是不是空,可能之前建表的時候你沒有設初始值,然后就會這個亞子,
接下來看看UserDOMapper.xml里面的插入語句是否寫了主鍵返回獲得,把這個獲得的主鍵傳給UserModel,然后把這個UserModel傳給組裝userPassWordDO的方法里,看看行不行