2003京淘项目Day-02 SpringBoot案例

1.SpringBoot 加强

1.1 关于YML文件说明

说明: SpringBoot程序启动时 默认加载application.yml文件.

	# 语法:   1. key-value结构     2.key和value之间使用:(空格)进行分割  #         2.YML配置文件有层级结构 server:   port: 8090   servlet:     context-path: / #项目发布路径信息 默认条件下 /根目录     # tomcat服务器进行发布 默认发布路径地址webapps目录下         # /     ROOT 项目路径     # /jt   JT   项目路径 

1.2 为属性赋值

1.2.1 为什么需要属性赋值

说明: 通过图中可以发现,用户的数据被写死.如果后续需要修改数据,则必须修改代码.属性的耦合性高.不方便维护.
解决方案: 能否利用配置文件动态的为属性赋值.
2003京淘项目Day-02 SpringBoot案例

1.2.2 利用@Value为属性赋值

1.2.2.1编辑YML配置文件

	# 语法:   1. key-value结构     2.key和value之间使用:(空格)进行分割  #         2.YML配置文件有层级结构 server:   port: 8090   servlet:     context-path: / #项目发布路径信息 默认条件下 /根目录     # tomcat服务器进行发布 默认发布路径地址webapps目录下         # /     ROOT 项目路径     # /jt   JT   项目路径      #指定用户配置文件信息 msg:   username: 许三多   age: 10  

1.2.2.2利用注解取值

	@RestController public class MsgController { 	 	//有时可能会通过配置文件的形式为属性动态的赋值. 	 	/** 	 * @Value 表示从spring容器中动态获取数据. 	 * 通过spel表达式动态取值 	 */ 	@Value("${msg.username}") 	private String  username;	//用户名 	@Value("${msg.age}") 	private Integer age;		//年龄 	 	 	@RequestMapping("/getMsg") 	public String getMsg() { 		 		return "返回值结果:"+username+":"+age; 	} 	 } 

1.2.3批量为属性赋值

1.2.3.1需求说明

由于springBoot整合第三方框架时,可能会遇到多个属性赋值的问题.如果通过@Value的方式赋值,则代码比较繁琐.能否优化???

1.2.3.2导入jar包

	<!--添加属性注入依赖 --> 		<dependency> 			<groupId>org.springframework.boot</groupId> 			<artifactId>spring-boot-configuration-processor</artifactId> 			<optional>true</optional> 		</dependency> 

1.2.3.3实现属性赋值

	package com.jt.controller;  import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;  @RestController @ConfigurationProperties(prefix = "msg") public class MsgController { 	 	//有时可能会通过配置文件的形式为属性动态的赋值. 	 	/** 	 * @Value 表示从spring容器中动态获取数据. 	 * 通过spel表达式动态取值 	@Value("${msg.username}") 	private String  username;	//用户名 	@Value("${msg.age}") 	private Integer age;		//年龄 	*/ 	 	/** 	 * 批量为属性赋值,必须配合set方法才能赋值 	 */ 	private String  username;	//用户名 	private Integer age;	 	 	 	public String getUsername() { 		return username; 	}  	public void setUsername(String username) { 		this.username = username; 	}  	public Integer getAge() { 		return age; 	}  	public void setAge(Integer age) { 		this.age = age; 	}   	@RequestMapping("/getMsg") 	public String getMsg() { 		 		return "返回值结果:"+username+":"+age; 	} 	 }  

1.3 指定配置文件为属性赋值

1.3.1 关于YML配置文件说明

YML配置文件一般都保存的是第三方框架的整合配置,如果需要进行业务配置时,最好的方式应该指定pro文件.

1.3.2定义pro文件

#key=value    #pro文件都是字符串信息 所以不需要添加""号 msg.username2=奥特曼 msg.age2=18  

1.3.3实现属性赋值

	package com.jt.controller;  import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.PropertySource; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;  @RestController //默认条件下 使用ISO-8859-1的编码格式,所以中文乱码 @PropertySource (value = "classpath:/properties/msg.properties", 		encoding="UTF-8") public class MsgController2 { 	 	/** 	 * 1.之前通过yml配置文件赋值 	 * 2.现在通过pro文件方式赋值 	 */ 	 	@Value("${msg.username2}") 	private String username; 	@Value("${msg.age2}") 	private Integer age; 	 	@RequestMapping("/getMsg2") 	public String getMsg2() { 		 		return username + ":" + age; 	} 	 }  

1.4 热部署工具

说明:当程序代码修改之后,tomcat服务器可以自动的部署

	<!--支持热部署 --> <dependency> 	<groupId>org.springframework.boot</groupId> 	<artifactId>spring-boot-devtools</artifactId> </dependency>  

1.5 YML配置文件环境切换

1.5.1 需求说明

开发程序时,可能会在生成环境下和测试环境中不停地切换. 如果频繁的修改YML配置文件,则可能导致错误.
可以使用YML中环境切换解决该问题.
环境配置的要求: 环境中配置的内容必须”一致的”

1.5.2YML配置文件说明

	# 语法:   1. key-value结构     2.key和value之间使用:(空格)进行分割  #         2.YML配置文件有层级结构  #指定默认的环境策略 spring:   profiles:     active: test ---  spring:   profiles: prod server:   port: 8090   servlet:     context-path: / #项目发布路径信息 默认条件下 /根目录     # tomcat服务器进行发布 默认发布路径地址webapps目录下         # /     ROOT 项目路径     # /jt   JT   项目路径      #指定用户配置文件信息 msg:   username: 许三多   age: 10     ---  #表示配置文件环境的分割 spring:   profiles: test server:   port: 8080   servlet:     context-path: /test #项目发布路径信息 默认条件下 /根目录      msg:   username: 许三多   age: 10      

1.6 引入lombok

1.6.1引入jar包

	<!--引入插件lombok 自动的set/get/构造方法插件 --> 		<dependency> 			<groupId>org.projectlombok</groupId> 			<artifactId>lombok</artifactId> 		</dependency> 

1.6.2安装lombok

2003京淘项目Day-02 SpringBoot案例

1.6.3 校验

2003京淘项目Day-02 SpringBoot案例

1.6.4 lombok案例

2003京淘项目Day-02 SpringBoot案例

1.7 知识小节

1.7.1配置文件写法

1.YML文件写法 层级关系 空格 连接符:号 注意缩进.
2.pro文件 本身都是字符串不需要添加””号 注意字符集编码iso-8859-1 转化为utf-8 重新编辑.

1.7.2为属性赋值

目的:动态配置属性信息.
方式2:
取值前提: 先赋值,再取值
1.@value spel表达式
2@ConfigurationProperties(prefix = “msg”) 一般配合@data注解.
指定配置文件进行加载. @PropertySource(“classpath:/xxxxxxxx.properties”)

1.7.3环境切换

  1. 通过—实现配置文件分割
  2. spring.profiles: prod 定义环境名称
  3. spring.profiles.active: prod 指定默认的环境 注意缩进!!!

1.7.4lombok环境插件配置

面试题:
lombok:可以自动的生成get/set等方法.但是使用lombok时需要安装插件!!!
问题:如果要在Linux系统中运行java项目.是否需要安装lombok插件??? 不需要!!!
答: lombok在程序编译期有效,当程序由.java文件编译为.class文件时,lombok插件开始工作.动态生成了get/set等方法. 而Linux中运行的项目直接.jar包文件里边包含了.class类型文件.所以不需要lombok插件再次编译即可运行.

2.导入数据库

2.1导入jtdb的sql文件

2.1.1 文件位置

2003京淘项目Day-02 SpringBoot案例

2.1.2编辑sqlYog

2003京淘项目Day-02 SpringBoot案例

2.1.3导入数据库

说明:利用sqlYog的方式导入sql.
2003京淘项目Day-02 SpringBoot案例
2003京淘项目Day-02 SpringBoot案例
导入之后,刷新数据库信息

2.1.4手动导入数据库(了解)

说明:进入数据库客户端.
命令: mysql -u root -p root
导入指令: source D:jtdb.sql;
2003京淘项目Day-02 SpringBoot案例

3.git地址

https://gitee.com/liulaoshi666/JT2002.git

4.SpringBoot整合Mybatis

4.1创建项目

4.1.1 创建项目

说明:通过maven形式创建项目
2003京淘项目Day-02 SpringBoot案例

4.1.2 编辑项目名称

2003京淘项目Day-02 SpringBoot案例

4.1.3 添加继承/依赖/插件

说明:编辑pom.xml文件 添加上述操作.

	<!--parent标签作用:管理所有被springBoot整合之后的jar包的版本定义 springBoot特点: 开箱即用 引入jar包就可以添加相对应的功能.  		定义了当前springBoot2.3.1所有的相关依赖的版本号信息. --> 	<parent> 		<groupId>org.springframework.boot</groupId> 		<artifactId>spring-boot-starter-parent</artifactId> 		<version>2.3.1.RELEASE</version> 		<relativePath /> <!-- lookup parent from repository --> 	</parent>  	<properties> 		<java.version>1.8</java.version> 		<!--指定插件版本 --> 		<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version> 		<!--跳过测试类打包 --> 		<skipTests>true</skipTests> 	</properties>  	<dependencies> 		<!--在webjar包的内部关联整合了所有的springMVC的jar包信息. 所以只需要引入一个jar包,则可以关联整合所有的有关mvc的依赖包信息 --> 		<dependency> 			<groupId>org.springframework.boot</groupId> 			<artifactId>spring-boot-starter-web</artifactId> 		</dependency>  		<dependency> 			<groupId>org.springframework.boot</groupId> 			<artifactId>spring-boot-starter-test</artifactId> 			<scope>test</scope> 			<exclusions> 				<exclusion> 					<groupId>org.junit.vintage</groupId> 					<artifactId>junit-vintage-engine</artifactId> 				</exclusion> 			</exclusions> 		</dependency>  		<!--添加属性注入依赖 --> 		<dependency> 			<groupId>org.springframework.boot</groupId> 			<artifactId>spring-boot-configuration-processor</artifactId> 			<optional>true</optional> 		</dependency>  		<!--支持热部署 --> 		<dependency> 			<groupId>org.springframework.boot</groupId> 			<artifactId>spring-boot-devtools</artifactId> 		</dependency>  		<!--引入插件lombok 自动的set/get/构造方法插件 --> 		<dependency> 			<groupId>org.projectlombok</groupId> 			<artifactId>lombok</artifactId> 		</dependency>  	</dependencies>  	<!--负责项目打包 更新 maven操作相关的配置 必须添加 --> 	<build> 		<plugins> 			<plugin> 				<groupId>org.springframework.boot</groupId> 				<artifactId>spring-boot-maven-plugin</artifactId> 			</plugin> 		</plugins> 	</build>  

4.1.4 更新项目

2003京淘项目Day-02 SpringBoot案例

4.2 SpringBoot整合Mybatis

4.2.1 添加jar包文件

	<!--引入数据库驱动 --> 		<dependency> 			<groupId>mysql</groupId> 			<artifactId>mysql-connector-java</artifactId> 			<scope>runtime</scope> 		</dependency>  		<!--springBoot数据库连接 --> 		<dependency> 			<groupId>org.springframework.boot</groupId> 			<artifactId>spring-boot-starter-jdbc</artifactId> 		</dependency>    		<!--spring整合mybatis 暂时 --> 		<dependency> 			<groupId>org.mybatis.spring.boot</groupId> 			<artifactId>mybatis-spring-boot-starter</artifactId> 			<version>1.3.2</version> 		</dependency> 

4.2.2 关于配置文件说明

spring:   datasource:     driver-class-name: com.mysql.cj.jdbc.Driver     url: jdbc:mysql://127.0.0.1:3306/jtdb?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true     username: root     password: root 

serverTimezone=GMT%2B8 东8区
useUnicode=true&characterEncoding=utf8 使用指定的字符集编码
&autoReconnect=true 数据库连接断开之后,是否自动重连
&allowMultiQueries=true 是否允许批量操作sql语句. 一般查询居多 允许

4.2.3编辑YML配置文件

	server:   port: 8090   servlet:     context-path: / spring:   datasource:     driver-class-name: com.mysql.cj.jdbc.Driver     url: jdbc:mysql://127.0.0.1:3306/jtdb?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true     username: root     password: root  mybatis:   #定义别名包   type-aliases-package: com.jt.pojo   #添加映射文件   mapper-locations: classpath:/mybatis/mappers/*.xml   #开启驼峰映射   configuration:     map-underscore-to-camel-case: true        

4.2.4编辑UserMapper映射文件

	<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper   PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"   "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.jt.mapper.UserMapper"> 	<!-- 		resultType="包名.类名"  如果配置了别名包则可以自动的拼接. 	 	  --> 	<!-- <select id="findAll" resultType="User"> 		select * from user 	</select> 	 		关于驼峰映射说明: 		字段信息: 				user_id , user_age , user_name 		对象属性: 				userId	, userAge ,userName 		如果需要实现属性与字段的映射,则必须开启驼峰规则. 		字段信息~~~user_id~~~~~去掉_线~~~~~之后首字母大写~~~~userId 		改名字可以与对象的属性映射. 		注意事项:  如果一旦开启驼峰规则映射,则必须按照要求执行. 			字段:user_id  不能映射  属性:user_id 	  --> 	 	 	 </mapper> 

4.2.5测试代码

	package com.jt.test;  import java.util.List;  import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest;  import com.jt.mapper.UserMapper; import com.jt.pojo.User;  @SpringBootTest	 //springBoot测试注解  开启了spring容器 public class TestMybatis { 	 	@Autowired 	private UserMapper userMapper; 	 	@Test 	public void findAll() { 		 		List<User> userList = userMapper.findAll(); 		System.out.println(userList); 	} 	 }  

5 MybatisPlus(MP)

5.1 MybatisPlus 介绍

MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
2003京淘项目Day-02 SpringBoot案例

5.2 MP的特性

无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求
支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错
支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 – Sequence),可自由配置,完美解决主键问题
支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作
支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere )
内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用
内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询
分页插件支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库
内置性能分析插件:可输出 Sql 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询
内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作

5.3 历史背景

问题1: 现在操作的数据库任然采用 sql语句的方式进行编辑. 操作sql的方式实质就是面对过程的操作方式.
需求: 由于传统的sql 开发效率低,并且无论多么简单的sql都需要程序员自己编辑.很繁琐(无趣).
想法: 能否以面向对象的方式操作数据库!!!

5.4 JPA说明

JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中
Sun引入新的JPA ORM规范出于两个原因:其一,简化现有Java EE和Java SE应用开发工作;其二,Sun希望整合ORM技术,实现天下归一。

核心理念: 以面向对象的方式操作数据库.

5.5 MybatisPlus实现原理

核心:
1. 表与对象建立关联关系
对象名称 ———> 表名
对象的属性 ——-> 数据表中的字段.
2. 采用第三方接口 规范所有的单表操作规则.(封装思想)
3. 将CURD接口方法,必须按照sql的规范转化为指定的sql语句.

理论依据:
userMapper.insert(user); //程序员只写到这里.
sql: insert into 表名(字段名…) values (属性值…);
按照用户的调用发方法,动态拼接sql.之后交给Mybatis去执行.
拼接sql:
insert into user表(字段A,字段B,字段C…) values (属性值A,属性B,属性C…);

5.6 MP入门案例

5.6.1 导入jar包

	<project xmlns="http://maven.apache.org/POM/4.0.0" 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 	<modelVersion>4.0.0</modelVersion> 	<groupId>com.jt</groupId> 	<artifactId>springBootDemo2</artifactId> 	<version>0.0.1-SNAPSHOT</version>  	<!--parent标签作用:管理所有被springBoot整合之后的jar包的版本定义 springBoot特点: 开箱即用 引入jar包就可以添加相对应的功能.  		定义了当前springBoot2.3.1所有的相关依赖的版本号信息. --> 	<parent> 		<groupId>org.springframework.boot</groupId> 		<artifactId>spring-boot-starter-parent</artifactId> 		<version>2.3.1.RELEASE</version> 		<relativePath /> <!-- lookup parent from repository --> 	</parent>  	<properties> 		<java.version>1.8</java.version> 		<!--指定插件版本 --> 		<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version> 		<!--跳过测试类打包 --> 		<skipTests>true</skipTests> 	</properties>  	<dependencies> 		<!--在webjar包的内部关联整合了所有的springMVC的jar包信息. 所以只需要引入一个jar包,则可以关联整合所有的有关mvc的依赖包信息 --> 		<dependency> 			<groupId>org.springframework.boot</groupId> 			<artifactId>spring-boot-starter-web</artifactId> 		</dependency>  		<dependency> 			<groupId>org.springframework.boot</groupId> 			<artifactId>spring-boot-starter-test</artifactId> 			<scope>test</scope> 			<exclusions> 				<exclusion> 					<groupId>org.junit.vintage</groupId> 					<artifactId>junit-vintage-engine</artifactId> 				</exclusion> 			</exclusions> 		</dependency>  		<!--添加属性注入依赖 --> 		<dependency> 			<groupId>org.springframework.boot</groupId> 			<artifactId>spring-boot-configuration-processor</artifactId> 			<optional>true</optional> 		</dependency>  		<!--支持热部署 --> 		<dependency> 			<groupId>org.springframework.boot</groupId> 			<artifactId>spring-boot-devtools</artifactId> 		</dependency>  		<!--引入插件lombok 自动的set/get/构造方法插件 --> 		<dependency> 			<groupId>org.projectlombok</groupId> 			<artifactId>lombok</artifactId> 		</dependency>  		<!--引入数据库驱动 --> 		<dependency> 			<groupId>mysql</groupId> 			<artifactId>mysql-connector-java</artifactId> 			<scope>runtime</scope> 		</dependency>  		<!--springBoot数据库连接 --> 		<dependency> 			<groupId>org.springframework.boot</groupId> 			<artifactId>spring-boot-starter-jdbc</artifactId> 		</dependency>  		<!--spring整合mybatis-plus --> 		<dependency> 			<groupId>com.baomidou</groupId> 			<artifactId>mybatis-plus-boot-starter</artifactId> 			<version>3.2.0</version> 		</dependency> 	</dependencies>  	<!--负责项目打包 更新 maven操作相关的配置 必须添加 --> 	<build> 		<plugins> 			<plugin> 				<groupId>org.springframework.boot</groupId> 				<artifactId>spring-boot-maven-plugin</artifactId> 			</plugin> 		</plugins> 	</build>  </project> 

5.6.2 配置User对象

	package com.jt.pojo;  import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName;  import lombok.Data; import lombok.experimental.Accessors;  @Data @Accessors(chain = true) @TableName   //与表进行关联  如果名称一致,则可以省略不写. public class User { 	//属性一般都与表字段对应 	@TableId(type = IdType.AUTO)	//主键自增标识. 	private Integer id; 	//@TableField(value = "name")	//如果属性名称与字段名称一致(包含驼峰规则) 可以省略不写 	private String name; 	private Integer age; 	private String sex; }  

5.6.3 继承BaseMapper接口

2003京淘项目Day-02 SpringBoot案例

5.6.4 修改YML配置文件

2003京淘项目Day-02 SpringBoot案例

5.6.5 MP入门案例

	@SpringBootTest	 //springBoot测试注解  开启了spring容器 public class TestMybatis { 	 	@Autowired 	private UserMapper userMapper; 	 	/** 	 * 以MP方式操作数据库,则以后单表操作不写sql. 	 */ 	@Test 	public void findAll() { 		 		List<User> userList = userMapper.selectList(null); 		System.out.println(userList); 	} 	 } 

5.6.6 开启日志

	server:   port: 8090   servlet:     context-path: / spring:   datasource:     #数据库驱动 高版本   com.mysql.cj.jdbc.Driver        #低版本                       com.mysql.jdbc.Driver        #driver-class-name: com.mysql.cj.jdbc.Driver     url: jdbc:mysql://127.0.0.1:3306/jtdb?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true     username: root     password: root  #引入mybatisplus配置 mybatis-plus:   #定义别名包   type-aliases-package: com.jt.pojo   #添加映射文件   mapper-locations: classpath:/mybatis/mappers/*.xml   #开启驼峰映射   configuration:     map-underscore-to-camel-case: true  #添加日志 logging:   level:     #mybatis指定mapper接口   以debug的形式展现日志.     com.jt.mapper: debug  

日志展现情况:
2003京淘项目Day-02 SpringBoot案例

5.7 MybatisPlus API说明

5.7.1查询测试

	/** 	 * 1.新增 	 */ 	@Test 	public void insert() { 		User user = new User(); 		user.setName("MybatisPlus入门") 			.setAge(18) 			.setSex("女"); 		userMapper.insert(user); 		System.out.println("入库成功!!!"); 	} 	 	/** 	 * 案例:查询Id=53的用户信息 	 * 参数充当where条件 	 */ 	@Test 	public void select01() { 		 		User user = userMapper.selectById(53); 		System.out.println(user); 	} 	 	/** 	 * 案例:查询name="孙尚香" sex=女性  用户. 	 * queryWrapper:条件构造器    拼接where条件 	 * 逻辑运算符    =  eq, > gt , < lt 	 * 			  >= ge, <= le 	 */ 	@Test 	public void select02() { 		//1.利用对象封装参数,实现数据查询   		//注意事项:利用对象只能实现 "="号操作 		User user = new User(); 		user.setName("孙尚香") 			.setSex("女"); 		//根据对象中不为null的元素拼接where条件,默认条件下使用and连接符 		QueryWrapper<User> queryWrapper = new QueryWrapper<>(user); 		List<User> userList = userMapper.selectList(queryWrapper); 		System.out.println(userList); 		 		//2.方法2  利用条件构造器构建where条件 		QueryWrapper<User> queryWrapper2 = new QueryWrapper<User>(); 		queryWrapper2.eq("name", "孙尚香") 					 .eq("sex", "女"); 		List<User> userList2 = userMapper.selectList(queryWrapper2); 		System.out.println(userList2); 		 	}  	/** 	 * 查询用户age<18岁 或者 age >100岁 	 */ 	@Test 	public void select03() { 		QueryWrapper<User> queryWrapper = new QueryWrapper<User>(); 		queryWrapper.lt("age", 18) 					.or() 					.gt("age", 100);  		List<User> userList = userMapper.selectList(queryWrapper);  		System.out.println(userList); 	} 	 	/** 	 * 查询id= 1,3,6的用户 	 */ 	@Test 	public void select04() { 		//1.api进行封装 		List<Integer> list = new ArrayList<>(); 		list.add(1); 		list.add(3); 		list.add(6); 		List<User> userList	= userMapper.selectBatchIds(list); 		//2.条件构造器进行封装 		QueryWrapper<User> queryWrapper = new QueryWrapper<User>(); 		queryWrapper.in("id", 1,3,4,5); 		userMapper.selectList(queryWrapper); 		 	} 	 	@Test 	public void select05() { 		 		QueryWrapper<User> queryWrapper = new QueryWrapper<User>(); 		queryWrapper.between("字段", "值1", "值2"); 		queryWrapper.like("name","精"); //包含精字    %精% 		queryWrapper.likeRight("name","精"); //以精开头     精% 		//queryWrapper.groupBy(column)    //分组查询!!! 	} 	 	//作业:利用MP知识:将常规sql进行实现. 	 

6.作业

将MP的常规操作掌握.

区块链毕设网(www.qklbishe.com)全网最靠谱的原创区块链毕设代做网站
部分资料来自网络,侵权联系删除!
资源收费仅为搬运整理打赏费用,用户自愿支付 !
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台 » 2003京淘项目Day-02 SpringBoot案例

提供最优质的资源集合

立即查看 了解详情