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

网站设计服务有哪些/网页seo

网站设计服务有哪些,网页seo,展示型网站源码,视频格式转换网页版MyBatisPlus标准数据层开发2,标准数据层开发2.1 标准CRUD使用2.2 新增2.3 删除2.4 修改2.5 根据ID查询2.6 查询所有2.7 Lombok概念使用步骤步骤1:添加lombok依赖步骤2:安装Lombok的插件步骤3:模型类上添加注解2.8 分页功能步骤1:调用方法传入参数获取返回值步骤2:设…

MyBatisPlus标准数据层开发

  • 2,标准数据层开发
    • 2.1 标准CRUD使用
    • 2.2 新增
    • 2.3 删除
    • 2.4 修改
    • 2.5 根据ID查询
    • 2.6 查询所有
    • 2.7 Lombok
      • 概念
      • 使用步骤
        • 步骤1:添加lombok依赖
        • 步骤2:安装Lombok的插件
        • 步骤3:模型类上添加注解
    • 2.8 分页功能
      • 步骤1:调用方法传入参数获取返回值
      • 步骤2:设置分页拦截器
      • 步骤3:运行测试程序

目标

  • 掌握MyBatisPlus中的分页及条件查询构建

2,标准数据层开发

在这一节中我们重点学习的是数据层标准的CRUD(增删改查)的实现与分页功能。代码比较多,我们一个个来学习。


2.1 标准CRUD使用

对于标准的CRUD功能都有哪些以及MP都提供了哪些方法可以使用呢?

我们先来看张图:

对于这张图的方法,我们挨个来演示下:

首先说下,案例中的环境就是咱们入门案例的内容,第一个先来完成新增功能


2.2 新增

在进行新增之前,我们可以分析下新增的方法:

int insert (T t)
  • T:泛型,新增用来保存新增数据

  • int:返回值,新增成功后返回1,没有新增成功返回的是0

在测试类中进行新增操作:

@SpringBootTest
class Mybatisplus01QuickstartApplicationTests {@Autowiredprivate UserDao userDao;@Testvoid testSave() {User user = new User();user.setName("黑马程序员");user.setPassword("itheima");user.setAge(12);user.setTel("4006184000");userDao.insert(user);}
}

执行测试后,数据库表中就会添加一条数据。

但是数据中的主键ID,有点长,那这个主键ID是如何来的?我们更想要的是主键自增,应该是5才对,这个是我们后面要学习的主键ID生成策略,这块的这个问题,我们暂时先放放。


2.3 删除

在进行删除之前,我们可以分析下删除的方法:

int deleteById (Serializable id)
  • Serializable:参数类型

    • 思考:参数类型为什么是一个序列化类?

      从这张图可以看出,

      • String和Number是Serializable的子类,
      • Number又是Float,Double,Integer等类的父类,
      • 能作为主键的数据类型都已经是Serializable的子类,
      • MP使用Serializable作为参数类型,就好比我们可以用Object接收任何数据类型一样。
  • int:返回值类型,数据删除成功返回1,未删除数据返回0。

在测试类中进行新增操作:

 @SpringBootTest
class Mybatisplus01QuickstartApplicationTests {@Autowiredprivate UserDao userDao;@Testvoid testDelete() {userDao.deleteById(1401856123725713409L);}
}

2.4 修改

在进行修改之前,我们可以分析下修改的方法:

int updateById(T t);
  • T:泛型,需要修改的数据内容,注意因为是根据ID进行修改,所以传入的对象中需要有ID属性值

  • int:返回值,修改成功后返回1,未修改数据返回0

在测试类中进行新增操作:

@SpringBootTest
class Mybatisplus01QuickstartApplicationTests {@Autowiredprivate UserDao userDao;@Testvoid testUpdate() {User user = new User();user.setId(1L);user.setName("Tom888");user.setPassword("tom888");userDao.updateById(user);}
}

**说明:**修改的时候,只修改实体对象中有值的字段。


2.5 根据ID查询

在进行根据ID查询之前,我们可以分析下根据ID查询的方法:

T selectById (Serializable id)
  • Serializable:参数类型,主键ID的值
  • T:根据ID查询只会返回一条数据

在测试类中进行新增操作:

@SpringBootTest
class Mybatisplus01QuickstartApplicationTests {@Autowiredprivate UserDao userDao;@Testvoid testGetById() {User user = userDao.selectById(2L);System.out.println(user);}
}

2.6 查询所有

在进行查询所有之前,我们可以分析下查询所有的方法:

List<T> selectList(Wrapper<T> queryWrapper)
  • Wrapper:用来构建条件查询的条件,目前我们没有可直接传为Null
  • List:因为查询的是所有,所以返回的数据是一个集合

在测试类中进行新增操作:

@SpringBootTest
class Mybatisplus01QuickstartApplicationTests {@Autowiredprivate UserDao userDao;@Testvoid testGetAll() {List<User> userList = userDao.selectList(null);System.out.println(userList);}
}

我们所调用的方法都是来自于DAO接口继承的BaseMapper类中。里面的方法有很多,我们后面会慢慢去学习里面的内容。


2.7 Lombok

代码写到这,我们会发现DAO接口类的编写现在变成最简单的了,里面什么都不用写。反过来看看模型类的编写都需要哪些内容:

  • 私有属性
  • setter…getter…方法
  • toString方法
  • 构造函数

虽然这些内容不难,同时也都是通过IDEA工具生成的,但是过程还是必须得走一遍,那么对于模型类的编写有没有什么优化方法?就是我们接下来要学习的Lombok。


概念

  • Lombok,一个Java类库,提供了一组注解,简化POJO实体类开发。

使用步骤


步骤1:添加lombok依赖

<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><!--<version>1.18.12</version>-->
</dependency>

**注意:**版本可以不用写,因为SpringBoot中已经管理了lombok的版本。


步骤2:安装Lombok的插件

新版本IDEA已经内置了该插件,如果删除setter和getter方法程序有报红,则需要安装插件

如果在IDEA中找不到lombok插件,可以访问如下网站

https://plugins.jetbrains.com/plugin/6317-lombok/versions

根据自己IDEA的版本下载对应的lombok插件,下载成功后,在IDEA中采用离线安装的方式进行安装。

步骤3:模型类上添加注解

Lombok常见的注解有:

  • @Setter:为模型类的属性提供setter方法
  • @Getter:为模型类的属性提供getter方法
  • @ToString:为模型类的属性提供toString方法
  • @EqualsAndHashCode:为模型类的属性提供equals和hashcode方法
  • @Data:是个组合注解,包含上面的注解的功能
  • @NoArgsConstructor:提供一个无参构造函数
  • @AllArgsConstructor:提供一个包含所有参数的构造函数

Lombok的注解还有很多,上面标红的三个是比较常用的,其他的大家后期用到了,再去补充学习。

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {private Long id;private String name;private String password;private Integer age;private String tel;
}

说明:

Lombok只是简化模型类的编写,我们之前的方法也能用,比如有人会问:我如果只想要有name和password的构造函数,该如何编写?

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {private Long id;private String name;private String password;private Integer age;private String tel;public User(String name, String password) {this.name = name;this.password = password;}
}

这种方式是被允许的。


2.8 分页功能

基础的增删改查就已经学习完了,刚才我们在分析基础开发的时候,有一个分页功能还没有实现,在MP中如何实现分页功能,就是咱们接下来要学习的内容。

分页查询使用的方法是:

IPage<T> selectPage(IPage<T> page, Wrapper<T> queryWrapper)
  • IPage:用来构建分页查询条件
  • Wrapper:用来构建条件查询的条件,目前我们没有可直接传为Null
  • IPage:返回值,你会发现构建分页条件和方法的返回值都是IPage

IPage是一个接口,我们需要找到它的实现类来构建它,具体的实现类,可以进入到IPage类中按ctrl+h,会找到其有一个实现类为Page


步骤1:调用方法传入参数获取返回值

@SpringBootTest
class Mybatisplus01QuickstartApplicationTests {@Autowiredprivate UserDao userDao;//分页查询@Testvoid testSelectPage(){//1 创建IPage分页对象,设置分页参数,1为当前页码,3为每页显示的记录数IPage<User> page=new Page<>(1,3);//2 执行分页查询userDao.selectPage(page,null);//3 获取分页结果System.out.println("当前页码值:"+page.getCurrent());System.out.println("每页显示数:"+page.getSize());System.out.println("一共多少页:"+page.getPages());System.out.println("一共多少条数据:"+page.getTotal());System.out.println("数据:"+page.getRecords());}
}

步骤2:设置分页拦截器

这个拦截器MP已经为我们提供好了,我们只需要将其配置成Spring管理的bean对象即可。

@Configuration
public class MybatisPlusConfig {@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor(){//1 创建MybatisPlusInterceptor拦截器对象MybatisPlusInterceptor mpInterceptor=new MybatisPlusInterceptor();//2 添加分页拦截器mpInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());return mpInterceptor;}
}

**说明:**上面的代码记不住咋办呢?

这些内容在MP的官方文档中有详细的说明,我们可以查看官方文档类配置


步骤3:运行测试程序

如果想查看MP执行的SQL语句,可以修改application.yml配置文件,

mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印SQL日志到控制台

打开日志后,就可以在控制台打印出对应的SQL语句,开启日志功能性能就会受到影响,调试完后记得关闭。


学习笔记 from 黑马程序员

By – Suki 2023/4/7

http://www.jinmujx.cn/news/387.html

相关文章:

  • 网站开发 项目计划/免费推广网站地址大全
  • 盐城市亭湖区建设局网站/博客可以做seo吗
  • 10个值得推荐的免费设计网站/怎么让网站快速收录
  • photoshop在线修图/东莞seo管理
  • 门户网站样式/百度提问在线回答问题
  • 网站联系我们的地图怎么做的/seo收费标准
  • 北京网站建设交易/肇庆seo优化
  • 网站 色调/世界搜索引擎大全
  • 南充网站建设工作室/互联网推广有哪些方式
  • 工业和信息化部icp网站备案系统/百度查询入口
  • 游戏推广网站如何做的/一件代发48个货源网站
  • 淘宝客怎么建设网站/实时新闻
  • 姜堰 万邦建设集团网站/seosem是什么职位
  • 信融网站建设网站开发/百度推广代运营公司
  • 做网站傻瓜/汕头企业网络推广
  • 手机网站建设方案书/网店推广渠道有哪些
  • 微信云网站用什么做/长沙网站托管优化
  • 做网站和网页区别/seo黑帽教学网
  • 在那个网站可买做鞋子的羊毛/免费网站代理访问
  • 深圳网络专科网站建设/百度推广需要多少钱
  • 天津智能网站建设费用/公司网址
  • 百度怎么做自己的网站/百度知道问答平台
  • 网站名称是什么/网站优化网络推广seo
  • 佛山网站建设科技公司/手机助手
  • 网站制作公司网站建设/chrome官网下载
  • 淘宝导航里的链接网站怎么做/百度建站
  • 网站建设系统开发需要多少钱/如何提高seo关键词排名
  • php的网站/新闻头条新闻
  • 昆明网站建设培训/宁德市政府
  • 网站建设制作设计营销公司四川/宁波seo网络推广优质团队