后端常见问题解决

Lucas / 2023-05-09 / 原文

MyBatis

Mybatis Plus时间自动填充

  1. 实体类的时间字段上添加注解
@TableField(fill = FieldFill.INSERT)//用于创建时间create_time字段
@TableField(fill = FieldFill.INSERT_UPDATE)//用于修改时间modified_time字段
  1. 创建一个类实现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文件中
image.png
image.png
可以看到:target目录下的mapper文件下并没有xml文件夹,并且会报错
image.png
解决方法:

  1. 将xml文件放在resources资源目录下
  2. pomyml/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