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

做网站的网站重庆网站制作公司哪家好

做网站的网站,重庆网站制作公司哪家好,企业网站建设网页设计,前端工程师兼职平台MyBatisPlus 用法详解 MyBatis-Plus(简称MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。它提供了丰富的功能,包括强大的CRUD操作、条件构造器、自动填充、分页插件等&…

MyBatisPlus 用法详解

MyBatis-Plus(简称MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。它提供了丰富的功能,包括强大的CRUD操作、条件构造器、自动填充、分页插件等,极大地简化了开发工作。以下是对MyBatis-Plus的详细用法介绍。

一、MyBatis-Plus简介

MyBatis-Plus的官网地址为:https://mybatis.plus/ 或 https://mp.baomidou.com/。

MyBatis-Plus的主要特性包括:

  1. 无侵入:只做增强不做改变,引入它不会对现有工程产生影响。
  2. 损耗小:启动即会自动注入基本CRUD,性能基本无损耗,直接面向对象操作。
  3. 强大的CRUD操作:内置通用Mapper、通用Service,仅仅通过少量配置即可实现单表大部分CRUD操作,更有强大的条件构造器,满足各类使用需求。
  4. 支持Lambda形式调用:通过Lambda表达式,方便地编写各类查询条件,无需再担心字段写错。
  5. 支持主键自动生成:支持多达4种主键策略(内含分布式唯一ID生成器-Sequence),可自由配置,完美解决主键问题。
  6. 支持ActiveRecord模式:支持ActiveRecord形式调用,实体类只需继承Model类即可进行强大的CRUD操作。
  7. 支持自定义全局通用操作:支持全局通用方法注入(Write once, use anywhere)。
  8. 内置代码生成器:采用代码或者Maven插件可快速生成Mapper、Model、Service、Controller层代码,支持模板引擎,更有超多自定义配置。
  9. 内置分页插件:基于MyBatis物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通List查询。
  10. 内置性能分析插件:可输出Sql语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询。
二、MyBatis-Plus基本使用
1. 引入依赖

MyBatis-Plus提供了starter,实现了自动Mybatis以及MyBatis-Plus的自动装配功能。在Maven项目的pom.xml文件中添加以下依赖:

<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>最新版本号</version>
</dependency>

注意:尽量不要同时导入MyBatis和MyBatis-Plus,避免版本差异。

2. 配置数据库连接

application.ymlapplication.properties文件中配置数据库连接信息。例如,使用application.yml文件:

spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8username: 账号password: 密码
3. 使用

在Spring Boot启动类中添加@MapperScan注解,扫描Mapper文件夹:

@SpringBootApplication
@MapperScan("com.example.mapper") // 替换为你的Mapper所在的类路径
public class MyBatisPlusApplication {public static void main(String[] args) {SpringApplication.run(MyBatisPlusApplication.class, args);}
}

在对应的Mapper上面添加@Mapper注解,并继承BaseMapper<>类:

@Mapper
public interface UserMapper extends BaseMapper<User> {// 所有的CRUD都已经完成,不需要像以前一样配置一大堆文件
}

其中,User是实体类,对应数据库中的一张表。

4. 编写实体类

实体类通常使用Lombok库来简化代码。例如:

import lombok.Data;@Data
public class User {private Long id;private String name;private Integer age;// 其他字段...
}

MyBatis-Plus会根据PO实体(BaseMapper<T>中的T)的信息来推断出表的信息,从而生成SQL。默认情况下,MyBatis-Plus会把PO实体的类名驼峰转下划线作为表名,把PO实体的所有变量名驼峰转下划线作为表的字段名,并根据变量类型推断字段类型。如果默认实现与实际场景不符,可以使用注解来声明表信息。

  • @TableName:标识实体类对应的表。当实体类的名称和表名的命名不一致时使用。
  • @TableId:标识实体类中的主键字段。如果主键字段的命名符合规范(如id),则不需要使用该注解。
  • @TableField:标识实体类中的普通属性。当实体类的命名和数据库的字段名有出入时使用。
三、CRUD操作

MyBatis-Plus提供了丰富的CRUD操作方法,这些方法都定义在BaseMapper接口中。

1. 插入

使用insert方法插入一条记录:

User user = new User();
user.setName("张三");
user.setAge(18);
// 其他字段设置...
userMapper.insert(user);
2. 删除

使用deleteById方法根据主键删除一条记录:

userMapper.deleteById(1L);

使用deleteBatchIds方法根据主键批量删除记录:

List<Long> ids = Arrays.asList(1L, 2L, 3L);
userMapper.deleteBatchIds(ids);
3. 更新

使用updateById方法根据主键更新一条记录:

User user = new User();
user.setId(1L);
user.setName("李四");
// 其他字段设置(需要更新的字段)...
userMapper.updateById(user);
4. 查询

使用selectById方法根据主键查询一条记录:

User user = userMapper.selectById(1L);

使用selectList方法查询所有记录:

List<User> userList = userMapper.selectList(null);

使用条件构造器Wrapper进行复杂查询。例如,查询年龄大于18岁的用户:

QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.gt("age", 18);
List<User> userList = userMapper.selectList(queryWrapper);
四、条件构造器

MyBatis-Plus提供了强大的条件构造器,用于构建复杂的查询条件。条件构造器的核心类是Wrapper,其子类包括QueryWrapperUpdateWrapper

1. 基本比较操作

使用eqnegtgeltle等方法进行基本比较操作。例如:

QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", "张三"); // 等价于 WHERE name = '张三'
queryWrapper.ne("age", 18); // 等价于 WHERE age <> 18
2. 模糊查询

使用likenotLikelikeLeftlikeRight等方法进行模糊查询。例如:

QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.like("name", "张"); // 等价于 WHERE name LIKE '%张%'
3. 排序

使用orderByAscorderByDesc等方法进行排序。例如:

QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.orderByAsc("age"); // 等价于 ORDER BY age ASC
4. 逻辑查询

使用andornested等方法进行逻辑查询。例如:

QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.and(wrapper -> wrapper.eq("name", "张三").ne("age", 18));
// 等价于 WHERE (name = '张三' AND age <> 18)
5. select

使用select方法指定查询的字段。例如:

QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.select("name", "age"); // 只查询name和age字段
List<Map<String, Object>> userList = userMapper.selectMaps(queryWrapper);
五、ActiveRecord

MyBatis-Plus支持ActiveRecord模式,实体类只需继承Model类即可进行强大的CRUD操作。不过,需要注意的是,从MyBatis-Plus 3.x版本开始,Model类已经被废弃,推荐使用BaseEntity或自定义实体类配合BaseMapper进行CRUD操作。

http://www.hkea.cn/news/364288/

相关文章:

  • 郑州网站设计 郑州网站开发网络优化有前途吗
  • 黑河做网站首页关键词排名优化
  • 网站二级域名怎么解析公司网络搭建
  • wordpress做网店win10优化大师是官方的吗
  • 弄个做网站公司产品宣传
  • 商品房建设信息网站googleplay商店
  • 菏泽 网站建设优化工具箱
  • 网站建设找哪家公司百度搜索热度
  • 网页设计论文引言北海百度seo
  • 网站空间哪家做的好网络营销的常用工具
  • 网站开发具体问题优化营商环境
  • wordpress4.5 火车头廊坊seo培训
  • 怎么做多个网站单点登录艺考培训
  • 网站怎么做双语种seo关键词如何设置
  • 用java做的游戏下载网站有哪些内容成都网络推广优化
  • 慈溪市网站建设google官网
  • 网站建设计划seo网站排名优化软件是什么
  • 大连网站建设谁家好郴州网站定制
  • 网站建设背景怎么写一个企业该如何进行网络营销
  • 为女朋友做的表白网站百度大数据分析工具
  • 上海高端网站建设服务公seo推广公司
  • 找人合伙做网站平台仿站定制模板建站
  • 深圳市网站建设科技公司腾讯网网站网址
  • wordpress语言文件夹seo销售好做吗
  • 河北建设集团官网西安网站seo
  • 在外汇局网站做登记报告恢复原来的百度
  • 做外贸做的很好的网站全国疫情突然又严重了
  • 开发app需要什么样的团队百度seo优化培训
  • ftp上传网站之后软文什么意思范例
  • 询广西南宁网站运营推广系统