Mybatis - plus :
1.
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: Could not set property 'id' of 'class com.yyl.mybatisplus.domain.Employee' with value '1171594677555757057' Cause: java.lang.IllegalArgumentException: argument type mismatch
原因: 数据库表中主键为 自增策略,且在执行插入时,未给主键赋值。
解决: 更改实体类中主键的类型(使用注解)在相应实体类的属性上(id)添加注解
@TableId(value = "emp_id",type = IdType.AUTO), value:映射表中对应的主键,type:主键策略
2.
org.springframework.jdbc.BadSqlGrammarException:
### Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'db_study.employee' doesn't exist
### The error may involve com.yyl.mybatisplus.dao.EmployeeDao.insert-Inline
### The error occurred while setting parameters
### SQL: INSERT INTO employee ( empName, gender, email ) VALUES ( ?, ?, ? )
### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'db_study.employee' doesn't exist
; bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'db_study.employee' doesn't exist
原因:数据库中的表名为 tab_emp,而实体类为 employee,默认,在mybatis plus中会根据 BaseMapper<T> 中所写泛型的名字作为表名进行查找。
解决:使用 @TableName(value = "tab_emp") ,在相应实体类上加上该注解,value:该实体类在数据库中对应的表名。
3.
org.springframework.jdbc.BadSqlGrammarException:
### Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'empName' in 'field list'
### The error may involve com.yyl.mybatisplus.dao.EmployeeDao.insert-Inline
### The error occurred while setting parameters
### SQL: INSERT INTO tbl_emp ( empName, gender, email ) VALUES ( ?, ?, ? )
### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'empName' in 'field list'
; bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'empName' in 'field list'
原因:数据库中表列为:emp_name,而实体类中为 empName,不匹配。
解决:需要在配置文件中开启 相应的命名转换功能, emp_name --> empName .
<bean id="sqlSessionFactory"
class="com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation"
value="classpath:mybatis-config.xml" />
<property name="typeAliasesPackage"
value="com.yyl.mybatisplus.domain" />
<!-- 注入全局MP策略配置 -->
<property name="globalConfig" ref="globalConfiguration"></property>
</bean>
<!-- mybatis plus 全局策略配置 -->
<bean id="globalConfiguration"
class="com.baomidou.mybatisplus.entity.GlobalConfiguration">
<!-- mybatis-plus 2.3 版本以后 不需要配置,默认为true 命名转换 -->
<property name="dbColumnUnderline" value="true"></property>
<!-- 设置主键策略 - 注解 或xml配置均可 -->
<!-- <property name="idType" value="0"></property> -->
</bean>