JavaWeb 笔记——2

news2024/9/20 9:36:06

JavaWeb 笔记——2

  • 一、Maven
    • 1.1、Maven概述
    • 1.2、Maven简介
    • 1.3、Maven基本使用
    • 1.4、IDEA配置Maven
    • 1.6、依赖管理&依赖范围
  • 二、MyBatis
    • 2.1、MyBatis简介
    • 2.2、MyBatis快速入门
    • 2.3、解决SQL映射文件的警告提示
    • 2.4、Mapper代理开发

一、Maven

1.1、Maven概述

  • Maven是专门用于管理和构建Java项目的工具,它的主要功能有:

    • 提供了一套标准化的项目结构
    • 提供了一套标准化的构建流程(编译,测试,打包,发布…)
    • 提供了一套依赖管理机制
  • 标准化的项目结构
    在这里插入图片描述
    Maven提供了一套标准化的项目结构,所有IDE使用Maven构建的项目结构完全一样,所有IDE创建的Maven项目可以通用

  • 提供了一套标准化的构建流程(编译,测试,打包,发布…)

在这里插入图片描述
Maven提供了一套简单的命令来完成项目构建

  • 提供了一套依赖管理机制
    • 依赖管理其实就是管理你项目所依赖的第三方资源(jar包、插件…)

在这里插入图片描述

1.2、Maven简介

Apache Maven是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档

Maven模型
在这里插入图片描述

  • 项目对象模型(Project Object Model)
  • 依赖管理模型(Dependency)
  • 插件(Plugin)

在这里插入图片描述

  • 仓库分类:

    • 本地仓库:自己计算机上的一个目录
    • 中央仓库:由Maven团队维护的全球唯一的仓库
      • 地址: 中央仓库地址
    • 远程仓库(私服):一般由公司团队搭建的私有仓库
  • 当项目中使用坐标引入对应依赖jar包后,首先会查找本地仓库中是否有对应的jar包:

    • 如果有,则在项目直接引用;
    • 如果没有,则去中央仓库中下载对应的jar包到本地仓库。
  • 还可以搭建远程仓库,将来jar包的查找顺序则变为:

    • 本地仓库→远程仓库→中央仓库

1.3、Maven基本使用

常用命令

  • compile :编译
  • clean:清理
  • test:测试
  • package:打包
  • install:安装

生命周期

  • Maven构建项目生命周期描述的是一次构建过程经历经历了多少个事件
  • Maven对项目构建的生命周期划分为3套
    • clean:清理工作
    • default:核心工作,例如编译,测试,打包,安装等
    • site:产生报告,发布站点等

同一生命周期内,执行后边的命令,前边的所有命令会自动执行
在这里插入图片描述

1.4、IDEA配置Maven

步骤:

  1. 选择IDEA中 设置
  2. 搜索maven
  3. 设置IDEA使用本地安装的Maven,并修改配置文件路径

Maven坐标详解

  • 什么是坐标?
    • Maven 中的坐标是资源的唯一标识
    • 使用坐标来定义项目或引入项目中需要的依赖
  • Maven 坐标主要组成
    • groupld:定义当前Maven项目隶属组织名称(通常是域名反写,例如: com.itheima)
    • artifactld:定义当前Maven项目名称(通常是模块名称,例如order-service、goods-service)
    • version:定义当前项目版本号

IDEA创建Maven项目

  1. 创建模块,选择Maven,点击Next
  2. 填写模块名称,坐标信息,点击finish,创建完成
  3. 编写HelloWorld,并运行

在这里插入图片描述
在这里插入图片描述

IDEA导入Maven项目

  1. 选择右侧Maven面板,点击+号
  2. 选中对应项目的pom.xml文件,双击即可
  3. 如果没有Maven面板,选择
    View → Appearance → Tool Window Bars

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

配置Maven-Hepler插件

  1. 选择IDEA中 File --> Settings
  2. 选择Plugins
  3. 搜索Maven,选择第一个Maven Helper,点击Install安装,弹出面板中点击Accept
  4. 重启IDEA

1.6、依赖管理&依赖范围

依赖管理

  1. 在pom.xml中编写<dependencies>标签
  2. <dependencies>标签中使用<dependency>引入坐标
  3. 定义坐标的 groupld,artifactldversion
  4. 点击刷新按钮,使坐标生效

依赖范围
通过设置坐标的依赖范围(scope),可以设置对应jar包的作用范围:编译环境、测试环境、运行环境
在这里插入图片描述

依赖管理编译classpath测试classpath运行classpath例子
compileYYYlogback
test-Y-Junit
providedYY-servlet-api
runtime-YYjdbc驱动
system YY-存储在本地的jar包
import 引入DependencyManagement
  • <scope> 默认值:compile

二、MyBatis

2.1、MyBatis简介

  • MyBatis是一款优秀的持久层框架用于简化JDBC开发
  • MyBatis本是 Apache的一个开源项目iBatis, 2010年这个项目由apache softwarefoundation迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github
  • 官网: MyBatis官网

持久层

  • 负责将数据到保存到数据库的那一层代码
  • JavaEE三层架构:表现层、业务层、持久层

框架

  • 框架就是一个半成品软件,是一套可重用的、通用的、软件基础代码模型
  • 在框架的基础之上构建软件编写更加高效、规范、通用、可扩展

在这里插入图片描述
在这里插入图片描述

2.2、MyBatis快速入门

在这里插入图片描述

  • 相关操作在MyBatis文件夹中

2.3、解决SQL映射文件的警告提示

  • 产生原因:Idea和数据库没有建立连接,不识别表信息
  • 解决方式:在Idea中配置MySQL数据库连接

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

2.4、Mapper代理开发

  • 目的
    • 解决原生方式中的硬编码
    • 简化后期执行SQL

使用Mapper代理方式要求

  1. 定义与SQL映射文件同名的Mapper接口,并且将Mapper接口和SQL映射文件放置在同一目录下
  2. 设置SQL映射文件的namespace属性为Mapper接口全限定名
  3. 在Mapper接口中定义方法,方法名就是SQL映射文件中sql语句的id,并保持参数类型和返回值类型一致
  4. 编码
    1. 通过SqlSessiongetMapper方法获取Mapper接口的代理对象
    2. 调用对应方法完成sql的执行

细节:如果Mapper接口名称和SQL映射文件名称相同,并在同一目录下,则可以使用包扫描的方式简化SQL映射文件的加载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/705113.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

时序预测 | MATLAB实现PSO-LSTM(粒子群优化长短期记忆神经网络)时间序列预测

时序预测 | MATLAB实现PSO-LSTM(粒子群优化长短期记忆神经网络)时间序列预测 目录 时序预测 | MATLAB实现PSO-LSTM(粒子群优化长短期记忆神经网络)时间序列预测预测效果基本介绍模型介绍PSO模型LSTM模型PSO-LSTM模型 程序设计参考资料致谢 预测效果 基本介绍 Matlab基于PSO-LST…

高压线路距离保护程序逻辑原理(四)

四、距离I段快速动作程序逻辑框图 距离保护的故障处理程序主要有三个组成部分&#xff1a;手合及I段快速跳闸部分&#xff1b;I、II段延时动作部分&#xff1b;跳闸及后加速部分。后者在第二章的保护故障处理程序中作为各类保护共有的程序分析过。这里只分析I段的程序逻辑框图…

360手机刷机 360手机Xposed框架安装 360手机EdXposed、LSP 360手机xposed模块

360手机刷机 360手机Xposed框架安装 360手机EdXposed、LSP 360手机xposed模块 参考&#xff1a;360手机-360刷机360刷机包twrp、root 360刷机包360手机刷机&#xff1a;360rom.github.io 【前言】 手机须Twrp或root后&#xff0c;才可使用与操作Xposed安装后&#xff0c;重启…

① RESTful API

1.API&#xff08;Application Programming Interface&#xff09; API就是一个接口&#xff1b;例如玩某一款游戏&#xff0c;你不必知道游戏具体的实现细节&#xff0c;只需要知道点哪个键是哪个技能就够了&#xff0c;而这个键之所以能实现玩家与游戏的交互&#xff0c;是因…

在个人电脑上部署ChatGLM2-6B中文对话大模型

简介 ChatGLM2-6B 是清华大学开源的一款支持中英双语的对话语言模型。经过了 1.4T 中英标识符的预训练与人类偏好对齐训练&#xff0c;具有62 亿参数的 ChatGLM2-6B 已经能生成相当符合人类偏好的回答。结合模型量化技术&#xff0c;用户可以在消费级的显卡上进行本地部署&…

亚马逊点击广告有什么好处?

亚马逊点击广告可以带来以下几个好处&#xff1a; 1、增加曝光和可见性&#xff1a;亚马逊点击广告可以将你的产品展示给更多潜在的购买者。通过有针对性的广告活动&#xff0c;你可以提高产品的曝光度&#xff0c;使更多的人看到你的产品。 2、提高点击率和流量&#xff1a;…

Python 代码打包

这里写目录标题 1. pyc打包及重调用2. Cython打包及重调用 1. pyc打包及重调用 该打包方式仅为入门级&#xff0c;反编译后为源代码&#xff0c;毫无安全性 指令转换 python -m py_compile /path/**.py 代码统一转换 单个py文件打包 import py_compile py_file ["/home/…

基于STM32设计的青少年学习监控系统(华为云IOT)

一、设计需求 1.1 项目背景 近几年,我国儿童青少年的近视发生率越来越高,生活中总会看到许多小小年纪就戴着眼镜的小朋友。家长对孩子的用眼时间没有约束,电子产品对孩子眼睛的影响,写字姿势,有的孩子写字时握笔太低,以致整个人趴在桌子上等都是造成孩子近视的重要因素…

c++ freetype 解析可变字体(Variable font)

什么是可变字体 上一篇文章说了 传送门也懒的贴了&#xff0c; 自己去翻吧 前言 我这里不会贴完整的代码 也不会说的那么细&#xff0c;主要提供一些关键点和方法 正文 ‘name’ 表table 解析 TrueType 字体的解析 字体里面有很多的表table 我们需要的family和style 都在这…

C++在线五子棋对战(网页版)项目:websocket协议

目标&#xff1a;认识理解websocket协议、websocket切换过程和websocket协议格式。认识和学会使用websocketpp库常用接口。了解websocketpp库搭建服务器流程&#xff0c;认识和学会使用websocketpp库bin接口&#xff0c;最后使用websocketpp库搭建服务器。 初识websocket WebS…

OJ# 384 敲七

题目描述 ​ 有 N 个人在玩一种“敲7”游戏&#xff0c;游戏的规则是这样的&#xff1a;第 x 个人从 t 开始报数&#xff0c;然后按顺序报数&#xff0c; 当某人报的数是 7 的倍数或数字中含有 7 时&#xff0c;便被淘汰&#xff0c;剩下的人继续报数&#xff0c;直到只剩下一…

【CesiumJS入门】(6)修改3D Tiles(tileset)的位置及高度

前言 在之前一篇博客中【CesiumJS入门】&#xff08;4&#xff09;加载3D Tiles并获取tileset&#xff0c;我们成功得加载了3D Tiles数据集&#xff0c;本篇中&#xff0c;将会向大伙儿介绍tileset位置的修改与恢复&#xff1a; 直接上代码了 /** Date: 2023-06-28 19:35:03*…

操作系统OS(二)进程和线程

进程 所谓进程&#xff0c;简单来说是计算机中的各种任务。 进程是程序的一次执行&#xff0c;是操作系统进行资源分配和调度的基本单位。 进程结构PCB 进程结构&#xff1a; 控制块PCB&#xff1a;进程唯一标识 程序段&#xff1a;同一个应用程序的多个进程 数据段&#xf…

Pytorch中的Exponential Moving Average(EMA)

EMA介绍 EMA&#xff0c;指数移动平均&#xff0c;常用于更新模型参数、梯度等。 EMA的优点是能提升模型的鲁棒性&#xff08;融合了之前的模型权重信息&#xff09; 代码示例 下面以yolov7/utils/torch_utils.py代码为例&#xff1a; class ModelEMA:""" …

ELK报错no handler found for uri and method [PUT] 原因

执行后提示no handler found for uri and method post&#xff0c;最新版8.2的问题&#xff1f; 原因&#xff1a; index.mapping.single_type: true在索引上 设置将启用按索引的单一类型行为&#xff0c;该行为将在6.0后强制执行。 原 {type} 要改为 _doc&#xff0c;格式如…

优炫软件自主研发再结硕果,共享存储SRAC集群数据库重磅发布

新一轮科技革命重塑全球经济结构&#xff0c;关键核心技术是产业发展的基石&#xff0c;数据库、芯片、操作系统是我国数字技术领域三大卡脖子难题。数据库向下发挥硬件算力&#xff0c;向上使能应用系统&#xff0c;是各行各业业务系统运行的基础&#xff0c;是软件行业皇冠上…

光口的作用及应用场景

在光通信中&#xff0c;交换机是一个非常重要的设备&#xff0c;它的作用是将来自不同设备的数据包进行收发和交换。之前发布的文章我们有了解到交换机的光口是如何配置的&#xff0c;本期文章我们将详细讨论交换机的光口的作用及应用场景。 一、光口的主要作用 交换机的光口…

适合团队人数少,预算低的四种办公室类型

如果团队人数少且预算低&#xff0c;以下是一些在深圳比较适合租赁的办公室类型&#xff1a; 1. 联合办公空间&#xff1a;联合办公空间是一种灵活的办公模式&#xff0c;通常提供共享的办公环境和设施&#xff0c;如会议室、休息区、打印机等。这种模式的办公室租金通常较低&…

Linux下Master-Master Replication Manager for MySQL 双主故障切换

简述&#xff1a; Master-Master Replication Manager for MySQL&#xff08;MMRM&#xff09;是一种用于MySQL数据库的主-主复制管理工具。它允许在多个MySQL主机之间建立双向的主-主复制关系&#xff0c;实现数据的同步和高可用性。 工作原理是通过在每个MySQL主机上配置双…

javascript 剪贴板数据

本篇文章将介绍在 JavaScript 中检测粘贴事件上的剪贴板数据。 JavaScript 剪贴板数据 当用户通过浏览器 UI 启动粘贴操作时&#xff0c;将引发粘贴事件。 当光标位于可编辑上下文中时&#xff0c;默认操作是将剪贴板的内容粘贴到光标位置的文档中。 此事件的处理程序可以通过…