SpringBoot使用Mybatis-plus
共同探讨,向各位大佬学习
走向CEO,迎娶白富美
前言
之前一直使用的是Mybatis和tk.mapper,这两天参与公司项目,看到公司使用的Mybatis-plus,我还是第一次接触,本着学习的态度,在网上查阅了大量资料以及官方文档,看出Mybatis-plus还是很简单的,下面进入正体。
导入依赖
除了springboot常规依赖,还需导入以下依赖
<!--mybatis-plus依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.0</version>
</dependency>
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--lombok插件,通过注解的形式可以消除一些必须有但很臃肿的代码,比如getter、setter-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
启动类
在启动类上添加@MapperScan注解,注解内的路径为mapper所在位置
@SpringBootApplication
@MapperScan("com.demo.cs.mapper")
public class MybatisPlusApplication {
public static void main(String[] args) {
SpringApplication.run(MybatisPlusApplication.class,args);
}
}
application.yml
在application.yml文件中只需要配置连接数据库信息
实体类
具体注解详解可看官方文档.
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
@Data//省略手动创建getter、setter、toString方法
@TableName("user")//指定表名
public class User implements Serializable {
@TableId//主键id
private int id;
private String name;
private String password;
private int age;
private String sex;
}
mapper接口
在mapper报下创建UserMapper接口继承mybatisplus包下的BaseMapper,并指定泛型为实体类。
对于复杂的需求,可以使用注解进行自定义sql。
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.demo.cs.entity.User;
import org.apache.ibatis.annotations.Select;
import java.util.List;
public interface UserMapper extends BaseMapper<User> {
//对于一些复杂需求,可自定义注解
@Select("select * from user")
List<User> findAll();
}
或者使用xml文件的方式,使用xml文件的话需要在配置文件中配置以下内容,创建实体类别名以及.xml文件的扫描,classpath后是xml文件路径,注意resources下的包路径是"/"分隔的,比如com/demo/mapper/usermapper.xml。
mybatis-plus.type-aliases-package=com.cdrundle.codegen.entity
mybatis-plus.mapper-locations=classpath:mapper/*.xml
通用service
到此基本的业务,增删查改都可以完成,但是mybatis-plus还有一个通用Service,我对这个service的理解就是,它和mapper一样有对数据库增删查改的操作,但是serivce却是mapper的增强,我们来看看basemapper所有的方法
再看看service的方法,这还没拉完,屏幕拉不下了
使用它我们需要在项目的UserService接口继承mybatisplus包下的IService,并指定泛型为实体类,然后在UserService的实现类UserServiceImpl中继承mybatisplus包下的ServiceImpl<UserMapper,T>,指定泛型。
import com.baomidou.mybatisplus.extension.service.IService;
import com.demo.cs.entity.User;
public interface UserService extends IService<User> {
void findAll();
}
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
@Override
public void findAll() {
this.list();//IService的方法
this.baseMapper.findAll();//UserMapper中我自定义的findAll方法
}
}
结束语
到此,这就是springboot使用mybatis-plus的基本操作了,至于QueryWrapper条件构造器大家可以在官网具体了解,以及代码生成器,因为我也不大熟…也觉得这个还是自己手敲比较好,不过原理和底层实现可以学习学习…