2023/9/20总结

2023-09-21 15:47:59

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

更多推荐

什么是高阶成分(HOC)?解释 React 中 render() 的目的?

高阶成分(HOC)是一种基于React的组合特性而形成的设计模式。HOC是自定义组件,在其中包裹了另一个组件。他们可以接受任何动态提供的子组件,但不会修改或复制其输入组件中的任何行为。您可以说HOC是"纯"组件1。HOC通过对组件逻辑的重用,让组件逻辑可复用、可测试、可维护,从而提高开发效率1。在React中,rend

利用爬虫技术自动化采集汽车之家的车型参数数据

导语汽车之家是一个专业的汽车网站,提供了丰富的汽车信息,包括车型参数、图片、视频、评测、报价等。如果我们想要获取这些信息,我们可以通过浏览器手动访问网站,或者利用爬虫技术自动化采集数据。本文将介绍如何使用Python编写一个简单的爬虫程序,实现对汽车之家的车型参数数据的自动化采集,并使用亿牛云爬虫代理服务来提高爬虫的稳

Java AOP Framework概述

JavaAOPFramework概述1.AspectJ1.1使用AspectJ进行切面编程2.SpringAOP2.1使用SpringAOP进行切面编程2.2如何决定使用哪种动态代理2.3如何通过配置指定代理方式2.4SpringAOP和AspectJ的关系3.SpringBootAOP4.扩展4.1AspectJ织入

面向面试知识--MySQL数据库与索引

面向面试知识–MySQL数据库与索引优化难点与面试点什么是MySQL索引?索引的MySQL官方定义:索引是帮助MySQL快速获取数据的数据结构。动力节点原文:MysQL官方对于索引的定义:索引是帮助MySQL高效获取数据的数据结构。MysQL在存储数据之外,数据库系统中还维护着满足特定查找算法的数据结构,这些数据结构以

HarmonyOS Codelab 优秀样例——溪村小镇(ArkTS)

一、介绍溪村小镇是一款展示溪流背坡村园区风貌的应用,包括园区内的导航功能,小火车行车状态查看,以及各区域的风景展览介绍,主要用于展示HarmonyOS的ArkUI能力和动画效果。具体包括如下功能:打开应用时进入启动页,启动页轮播展示溪村小镇风景图,之后进入应用首页。在首页的“地图浏览”标签页,可以拖动和缩放查看地图,并

Kubernetes Ingress:灵活的集群外部网络访问的利器

《KubernetesIngress:集群外部访问的利器-打造灵活的集群网络》前提条件您已经拥有一个Kubernetes集群,并且可以访问该集群。您已经安装了kubectl命令行工具。版本选择安装前需要选择兼容你Kubernetes的版本,不能会失败ingress由两部分组成:IngressController:负责处

【踩坑日记】springboot MultipartFile上传,@Async异步执行时报错:java,io.FileNotFoundException

项目场景:springboot项目中使用MultipartFile上传文件导入时,文件内容过大会导致页面等待时间较长,所以考虑使用上传文件时用@Async异步处理数据的方式来解决页面等待问题。问题描述给处理MultipartFile文件的方法添加@Async注解后,上传文件时出现异常,找不到临时文件异常如下:(org.

RISC-V Reader 笔记(七)RV64,特权架构,未来可选扩展

RV64比起RV32,其实扩展不多。主要是添加了一系列字,双字为单位的操作。各个ISA3264比较x86:变量都存在寄存器里,不像32存在内存里,因此指令数少很多,但是因此添加了很多新操作码来操作更多的寄存器,因此指令长度变长了(添加前缀来区分),代码体积大很多。arm:有一系列和arm32类似的问题,:分支指令使用的

重庆思庄技术分享——linux du 命令

linuxdu命令inuxdu(英文全拼:diskusage)命令用于显示目录或文件的大小。du会显示指定的目录或文件所占用的磁盘空间。语法du[-abcDhHklmsSx][-L<符号连接>][-X<文件>][--block-size][--exclude=<目录或文件>][--max-depth=<目录层数>][-

Nodejs 第十六章(ffmpeg)

FFmpeg是一个开源的跨平台多媒体处理工具,可以用于处理音频、视频和多媒体流。它提供了一组强大的命令行工具和库,可以进行视频转码、视频剪辑、音频提取、音视频合并、流媒体传输等操作。FFmpeg的主要功能和特性:格式转换:FFmpeg可以将一个媒体文件从一种格式转换为另一种格式,支持几乎所有常见的音频和视频格式,包括M

Linux arm64 pte相关宏

文章目录一、pte和pfn1.1pte_pfn1.2pfn_pte二、其他宏参考资料一、pte和pfn//linux-5.4.18/arch/arm64/include/asm/pgtable.h#definepte_pfn(pte)(__pte_to_phys(pte)>>PAGE_SHIFT)#definepfn_

热文推荐