当前位置: 首页 > news >正文

mybatisplus的总结

 一.通用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也没看

http://www.lqws.cn/news/83809.html

相关文章:

  • Linux配置DockerHub镜像源配置
  • 代码随想录算法训练营第六天| 242.有效的字母异位词 、 349. 两个数组的交集 、 202. 快乐数 、1. 两数之和
  • 【看到哪里写到哪里】C的指针-3(函数指针)
  • TC3xx学习笔记-启动过程详解(一)
  • Arch安装botw-save-state
  • deep forest安装及使用教程
  • 一步一步配置 Ubuntu Server 的 NodeJS 服务器详细实录——4. 配置服务器终端环境 zsh , oh my zsh, vim
  • 基于爬取的典籍数据重新设计前端界面
  • 前端八股之CSS
  • 推荐一款使用html开发桌面应用的工具——mixone
  • 力扣HOT100之多维动态规划:62. 不同路径
  • 力扣HOT100之多维动态规划:64. 最小路径和
  • 量子物理:深入学习量子物理的基本概念与应用
  • Python_day43
  • Linux运维笔记:服务器感染 netools 病毒案例
  • mysql专题上
  • Vue 项目创建教程 (开发前的准备工作保姆级辅助文档)
  • 专注成就技术传奇:一路向前的力量
  • 数学建模期末速成 最短路径
  • Ubuntu22.04 安装 ROS2 Humble
  • Spark-TTS: AI语音合成的“变声大师“
  • ubuntu 添加应用到启动菜单
  • P5684 [CSP-J2019 江西] 非回文串 题解
  • Webpack依赖
  • Android高级开发第四篇 - JNI性能优化技巧和高级调试方法
  • 网络攻防技术三:网络脆弱性分析
  • 高阶数据结构——并查集
  • C语言基础(10)【二维数组 字符数组 字符串相关操作】
  • DAY01:【ML 第三弹】基本概念和建模流程
  • pytorch基本运算-范数