代码https://github.com/hitgub123/java_vscode/tree/master/springbootvue1/main
启动项目时报错Cannot load driver class: org.postgresql.Driver,
这个在主模块的pom里添加org.postgresql的依赖,右键reload project
maven报错Missing artifact hikari-cp:hikari-cp:jar:2.13.0和
The container 'Maven Dependencies' references non existing library 'C:\Users****hikari-cp-2.13.0.jar'
发现该路径下没有hikari-cp-2.13.0.jar,运行mvn install报错
Could not resolve dependencies for project https://repo.maven.apache.org/maven2*****
修改C:\Users\81802\.m2\settings.xml,如果没有从maven安装目录\conf里复制一个,
<mirros>里最前面加上
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
后,重新mvn intall即可。(mvn intall需要在有pom文件的路径下cmd执行)
下载后很多文件后依旧报错Missing artifact hikari-cp:hikari-cp:jar:2.13.0等,
把版本改成2.6.0。估计是新版本没有被收录
lombok常用注解:
@Data:@getter + @setter + @tostirng + @hashcode + @equals
@AllArgsConstructor: 全参数构造器
@NoArgsConstructor: 无参构造器
@Accessors(chain=true) : 链式,可这样user.setAge(666).setName("fff")
setting.json里加上"editor.codeActionsOnSave": { "source.organizeImports": true },
按ctrl+s后删除未使用到的import、多import归类整理、排序等
mybatisplus:
entity:
类名上加@TableName("users"),表示将此类和哪张表关联。非必须
类名上加@Accessors(chain=true),可以使用链式写法,user.setAge(666).setName("fff");
属性名上加@TableField("age"),表示将此属性与表的哪个字段关联
属性名上加@TableField(exist = false),表示该属性不为数据库表字段,如果表里没有此字段必须添加
在表的自增主键对应的属性上加@TableId(value = "id", type = IdType.AUTO),
否则mybatisplus在插入数据时候会自动生成一个UUID
mapper:
如下加上@Mapper注解和继承BaseMapper<User>接口,默认实现了有很多增删改查和分页的功能
@Mapper
public interface UserMapper extends BaseMapper<User> {}
想写其他的sql,需要在resources下与Mapper.java同路径的文件夹里创建Mapper.xml,
比如userMapper.java在src\main\java\slq\me\module1\mapper,
UserMapper.xml就创建在src\main\resources\slq\me\module1\mapper。
如果在application.properties里配置mybatis-plus.type-aliases-package=slq.me.module1.entity,
UserMapper.xml里slq.me.module1.entity.User就可以使用别名User。
mybatis特殊符号转义:
想拼接 select * from users where age >= #{age},
ok:<![CDATA[ select * from users where age >= #{age} ]]>
ok:select * from users where age <![CDATA[>=]]> #{age}
ng:select * from users where age <![CDATA[>]]>= #{age}
mybatisplus使用selectPage后未分页,需要加上如下配置类:
@EnableTransactionManagement
@Configuration
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return interceptor;
}
}