maven
maven本质是 一个项目管理工具 将项目开发 和 管理过程 抽象成 一个项目对象模型(POM)
POM (Project Object Model) 项目对象模型
作用
- 项目构建 提供标准的自动化 项目构建 方式
- 依赖管理 方便快捷的管理项目依赖的资源 (jar包),避免资源间的版本冲突问题
- 统一开发结构 提供标准的、统一的项目结构
安装
Maven – Download Apache Maven
download 目录下
解压
复制路径,很重要!!!
配置环境变量
在path点击新建
代表安装成功
仓库
用于存储资源 包含各种jar包
- 本地仓库 自己电脑上存储资源的仓库 连接远程仓库获取资源
- 远程仓库 非本机电脑上的仓库 存储所有资源的仓库
- 中央仓库 Maven 团队维护 存储所有资源的仓库
私服
部门/公司氛围内存储资源的仓库,从中央仓库获取资源
私服的作用
- 保存具有版权的资源 包含购买或自主研发的jar
- 中央仓库的jar都是开源的 不能存储具有版权的资源
- 一定氛围内共享资源,仅对内部开发 不对外共享
坐标
Maven 中坐标用于 描述仓库中资源的位置
mybatis-plus
是Mybatis 的增强工具 在Mybatis的基础上只做增强不做改变
下面这个教程是可以的
使用IDEA配置Mybatis-Plus框架_idea mybatisplus_Yy330*的博客-CSDN博客
出现上这个代表创建成功
mybatis-plus 会自动生成 mysql 语句
mybatis-plus 常见注解
@TableName
创建实体类的时候记得和数据库的表 名字要对应 不对应的话 需要使用 @TableName注解来 标识实体类对应的表
@TableId
如果你的主键不叫 id 还想被识别的话 把这个注解加载实体类的 成员变量 上
IdType
有几种类型
- AUTO 自动增长id
- NONE 无状态 未设置主键类型
- INPUT insert 前自己 设置主键值
- ASSIGN_ID 分配 ID 主键类型为 Number (long 和 Integer 或者 String )使用接口 IndentifierGenerator 的 方法 nextId (ASSIGN_ID默认实现类为雪花算法)
- ASSIN_UUID 分配UUID
@TableField
字段注解 如果 成员变量名称和 数据库字段类型不一样 使用这个,或者 跟数据库的关键字冲突 也可以使用这个解决
MyBatisPlus 常见配置
MyBatisPlus 的配置项继承了MyBatis原生配置和一些自己特有的配置
MyBatisPlus一些规范
- 类的命名 时驼峰转下划线 作为表名
- 名为 id 的字段 作为主键
- 变量名驼峰转下划线作为表的字段名
- 根据变量类型推断 数据库字段类型
条件构造器
MyBatisPlus 支持各种 复杂的where条件 可以满足日常开发的所有需求
基于QueryWrapper的查询
基于UpdateWrapper的更新
基于LambdaQueryWrapper的查询
在这里先说说 java 方法引用运算符 或者 双冒号 运算符
方法引用运算符 用于在类的帮助下 直接引用 方法来调用方法 我们可以使用方法引用运算符 代替 lambda 表达式 因为它的行为 与 lambda 表达式相同
lambda 表达式 和 方法引用运算符之间的唯一区别是,它不是 为 方法 提供 委托,而是 通过 名称 直接引用方法 目标引用放在运算符 :: 之前 方法名写在它之后
句法:
class name::method name
lambda 表达式 和 方法引用 运算符 都是使用方法调用 现有方法的方法,通过更好的可读性
下面之所以用 :: 是因为如果遇到修改了 实体类 里面的 变量名称 会导致出错 这样就不用担心
自定义SQL
利用MyBatisPlus 的 Wrapper 来构建 复杂的where 条件 然后自己定义 SQL 语句中剩下的部分
基于Wrapper 构建的where条件
在mapper方法参数中用 Param注解 声明 wrapper 变量名称 ,必须是 ew
自定义SQL 并使用 Wrapper 条件
基于Wrapper的多表关联查询
越往后面学习 发现我这样安排是不对的 应该先学习springboot 我在后面学习的时候 发现根本听不懂 跟不上