mybatisplus的总结

发布于:2025-06-03 ⋅ 阅读:(26) ⋅ 点赞:(0)

 一.通用Mapper

1.首先创建一个接口与实体类

@Data
@TableName("user")
public class User {

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @TableField("name")
    private String name;

    @TableField("age")
    private Integer age;

    @TableField("email")
    private String email;
}

下面是接口需要继承BaseMapper<User>

@Mapper//也可以在启动类中通过@MapperScan进行扫描
public interface UserMapper extends BaseMapper<User> {
}

2.对数据库进行操作

@Autowired

private UserMapper userMapper;

通过UserMapper对象调用各种方法

第一种是调用Mybatis-plus自动创建的方法

第二种是通过xml文件创建自定义的sql语句

二.通用Service

1.创建Service接口

继承IService<User>,User是对应数据库的表名

public interface UserService extends IService<User> {
}

2.创建Service实现类

继承ServiceImpl<UserMapper,User>,第一个是User对应的mapper,第二 个是对应表名的实体类s

实现对应的service接口 UserService

@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
}

3.通过接口实例调用mybatisplus提供的方法

 @Autowired
    private UserService userService;

在yml中的相关配置

192.168.87.101:3306是主机的域名

lease是数据库名

username是数据库名字

password是数据库密码

最后别忘记springboot与mybatisplus不兼容问题

以及lombok的@Data不起作用的问题

总结;如果是自己手写sql则是通过通用Mapper实现

三.条件构造器

 1.QueryWrapper<表名> UpdateWrapper<表名>

例如:QueryWrapper<User>

 QueryWrapper<User> queryWrapper1 = new QueryWrapper<>();
        queryWrapper1.eq("name", "Tom");

eq代表相等的条件,

第一个参数代表表中的字段,第二个代表该字段要等于的值

还有很多方法就不一一描述了

2.LambadaQueryWrapper<表名>

其实跟上面的条件构造器一样,只不过获取字段是根据实体类的属性获取

 //查询name=Tom的所有用户tt
        LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<>();
        lambdaQueryWrapper.eq(User::getName, "Tom");

然后将构造器放在查询语句的括号内作为条件进行查询

List<User> list = userService.list(lambdaQueryWrapper);

四.分页插件

需要增加一个配置类,否则无法使用

@Configuration
public class MPConfiguration {

    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
}

注意;如果不写该配置,那么就无法实现分页查询逻辑

curren 当前页

size 每页的数据条数

total查询数据列表的总记录数

@Autowired

        private FeeKeyMapper feekeyMapper;//

IPage<FeeKey> page = new Page<FeeKey>(2, 2);//创建分页查询对象,第一个参数是current,第二个是size
IPage<FeeKey> feeKeyIPage = feekeyMapper.selectPage(page, null);//
feeKeyIPage.getRecords().forEach(System.out::println);//打印出查询的对象

五.MyBatis插件,用于快速生成EntityMapperMapper.xmlServiceServiceImpl等代码,使用户更专注于业务。

1.安装插件

2.配置数据库连接

3.生成代码

4.配置包名类名等

注意;建议自己搜B站的相关教程,这里并不全面

六.对象存储服务*minio(免费)-可以使用阿里云的oss代替

总结;该项目主要是让我通过定义好的接口书写sql,技术不难,比较繁琐,redis几乎没有用到,用的最多的是mp,SpringMVC等,后面的nginx也没看


网站公告

今日签到

点亮在社区的每一天
去签到