mybatis-plus自动填充是如何匹配类属性createTime和字段名create_time

阿旭。 2020-12-26 04:21:38
@Data
public class User {
private Long id; //坑 不要把Long写成long了
private String name;
private Integer age;
private String email;
@TableField(fill = FieldFill.INSERT)
private Date createTime;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
}

@Slf4j
@Component
public class CustomMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
log.info("start insert fill....");
this.setFieldValByName("createTime", new Date(), metaObject);
this.setFieldValByName("updateTime", new Date(), metaObject);
}

@Override
public void updateFill(MetaObject metaObject) {
log.info("start update fill....");
this.setFieldValByName("updateTime",new Date(),metaObject);
}
}
   @Test
public void testInsert(){
User user = new User();
user.setAge(18);
user.setName("yx");
user.setEmail("yx@qq.com");
int result = userMapper.insert(user);
System.out.println("影响行数:"+result);
System.out.println("id:"+user);
}

Creating a new SqlSession
SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@f2276c9] was not registered for synchronization because synchronization is not active
2020-12-26 15:51:32.964 INFO 8336 --- [ main] com.myd.handler.CustomMetaObjectHandler : start insert fill....
2020-12-26 15:51:32.970 INFO 8336 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
2020-12-26 15:51:33.159 INFO 8336 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
JDBC Connection [HikariProxyConnection@1343838143 wrapping com.mysql.cj.jdbc.ConnectionImpl@5d1d9d73] will not be managed by Spring
==> Preparing: INSERT INTO user ( id, name, age, email, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ? )
==> Parameters: 1342739812944273410(Long), yx(String), 18(Integer), yx@qq.com(String), 2020-12-26 15:51:32.964(Timestamp), 2020-12-26 15:51:32.964(Timestamp)
<== Updates: 1
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@f2276c9]
影响行数:1
id:User(id=1342739812944273410, name=yx, age=18, email=yx@qq.com, createTime=Sat Dec 26 15:51:32 CST 2020, updateTime=Sat Dec 26 15:51:32 CST 2020)
2020-12-26 15:51:33.226 INFO 8336 --- [extShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated...
2020-12-26 15:51:33.232 INFO 8336 --- [extShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.

mybatis-plus 执行的插入语句中是怎么知道我的数据库里的字段是create_time,update_time的,又是怎么认定user类的createTime属性与数据库字段名create_time匹配?求大神解答
...全文
6325 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
咦哟~~~ 2020-12-28
  • 打赏
  • 举报
回复
驼峰命名规则,例如create_time 对应实体类字段就会匹配 createTime 同样的道理 createTime 将驼峰转为下划线的话 就是 create_time
是赵敢敢啊 2020-12-28
  • 打赏
  • 举报
回复
把下划线的转换成驼峰的然后嗲用setter 赋值
viewgroup 2020-12-28
  • 打赏
  • 举报
回复
引用 1 楼 情非彼岸花 的回复:
驼峰命名规则,例如create_time 对应实体类字段就会匹配 createTime 同样的道理 createTime 将驼峰转为下划线的话 就是 create_time

一楼说的对,mybatis-plus 会将Java类的驼峰命名的属性与数据库中_命名的属性去匹配的。

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧