后端常见问题解决
MyBatis
Mybatis Plus时间自动填充
- 实体类的时间字段上
添加注解
@TableField(fill = FieldFill.INSERT)//用于创建时间create_time字段
@TableField(fill = FieldFill.INSERT_UPDATE)//用于修改时间modified_time字段
- 创建一个类实现
MetaObjectHandler接口
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
//第一个参数是实体类中的字段,不是数据库的
this.setFieldValByName("createTime",new Date(),metaObject);
this.setFieldValByName("modifiedTime",new Date(),metaObject);
}
@Override
public void updateFill(MetaObject metaObject) {
this.setFieldValByName("modifiedTime",new Date(),metaObject);
}
}
mybatis的xml因位置的未编译问题
将mybatis的写sql的xml文件放在java目录文件下时,编译时xml文件不会被编译进target文件中


可以看到:target目录下的mapper文件下并没有xml文件夹,并且会报错

解决方法:
- 将xml文件放在
resources资源目录下 - 在
pom和yml/properties配置文件中添加配置,使得xml能被编译
pom
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
yml
mybatis-plus:
mapper-locations: classpath:com/lc/eduservice/mapper/xml/*.xml
Maven
mvn install命令
mvn install:install-file -DgroupId=com.abc -DartifactId=mavenTest -Dversion=1.0 -Dpackaging=jar -Dfile=C:\myfile\test.jar