語法錯誤,關于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的方法里,看看行不行