慕函数7093388
2019-06-03 22:00
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
难受啊
直接debug查userPassDO的值也行,debug用不惯的话,可以直接在UserPassDO.class里写toString()方法,然后打印出来看看值
请问楼主最后怎么解决的嘞?
往user_password表中插入的时候id是没有默认值的,视频里是怎么直接插进去的啊?
你可以试着打印一下
对象看看里面的userid字段是不是空,可能之前建表的时候你没有设初始值,然后就会这个亚子,
接下来看看UserDOMapper.xml里面的插入语句是否写了主键返回获得,把这个获得的主键传给UserModel,然后把这个UserModel传给组装userPassWordDO的方法里,看看行不行
SpringBoot构建电商基础秒杀项目
49513 学习 · 978 问题
相似问题