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

2023/9/20总结

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  我在后面学习的时候 发现根本听不懂  跟不上

http://www.lryc.cn/news/172122.html

相关文章:

  • 【Git】git 分支或指定文件回退到指定版本
  • Java 消息策略的实现 - Kafak 是怎么设计的
  • c++opencv RotatedRect 旋转矩形角度转换和顶点顺序转换
  • Flink-CDC 抽取SQLServer问题总结
  • Linux 系统目录结构 终端
  • Layui + Flask | 实现注册、登录功能(案例篇)(08)
  • GitLab数据迁移后出现500错误
  • 音乐随行,公网畅享,群辉Audiostation给你带来听歌新体验!
  • 机器学习入门:从算法到实际应用
  • 【Vue.js】vue-cli搭建SPA项目并实现路由与嵌套路由---详细讲解
  • Node.js 调用 fluent-ffmpeg
  • scrapy框架--
  • 算法通关村第十五关——从40亿个数中产生一个不存在的数的处理方法
  • 软件项目开发的流程及关键点
  • 全球变暖问题(floodfill 处理联通块问题)
  • 由于找不到vcruntime140_1.dll怎么修复,详细修复步骤分享
  • 算法 三数之和-(双指针)
  • AB实验总结
  • sklearn包中对于分类问题,如何计算accuracy和roc_auc_score?
  • python温度转换程序
  • Vue2中10种组件通信方式和实践技巧
  • Flutter flutter.minSdkVersion的实际文件位置
  • python生成PDF报告
  • 在visual studio里安装Python并创建python工程
  • AIGC(生成式AI)试用 6 -- 从简单到复杂
  • 竞赛 基于深度学习的人脸识别系统
  • uniapp:APP开发,后台保活
  • vue2 项目中嵌入视频
  • 第二章 进程与线程 十二、进程同步与进程互斥
  • Linux内核链表(list)移植到任意平台