后端常见问题解决
Java
自动类型转换
Java中的自动类型转换是按照从低到高的顺序进行的,即从byte、short、char、int、long、float、double等类型进行转换,如果一个运算符两侧的数据类型不同,则会把低类型的数据转换为高类型的数据,以便进行运算。有时候容易忽略这种小细节
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
dependency中标签的含义
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.26.0-GA</version>
<scope>compile</scope>
<optional>true</optional>
</dependency>
optional,翻译为
可选的
,默认值为false
项目a依赖项目b,项目b依赖项目c(项目a中引入了b的依赖,项目b中引入了项目c的依赖),然后在项目b中,项目c依赖的<optional>
为true
,则在项目a中,如果不显示的引入项目c,则不会引入项目c,即项目a不依赖项目c,不会形成依赖传递,当项目a需要c依赖的时候,就需要在a中显示的引入了,不然就会报错找不到依赖
... is not available. Add ... to your classpath.