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
步骤:
- 选择IDEA中 设置
- 搜索maven
- 设置IDEA使用本地安装的Maven,并修改配置文件路径
Maven坐标详解
- 什么是坐标?
- Maven 中的坐标是资源的唯一标识
- 使用坐标来定义项目或引入项目中需要的依赖
- Maven 坐标主要组成
- groupld:定义当前Maven项目隶属组织名称(通常是域名反写,例如: com.itheima)
- artifactld:定义当前Maven项目名称(通常是模块名称,例如order-service、goods-service)
- version:定义当前项目版本号
IDEA创建Maven项目
- 创建模块,选择Maven,点击Next
- 填写模块名称,坐标信息,点击finish,创建完成
- 编写HelloWorld,并运行
IDEA导入Maven项目
- 选择右侧Maven面板,点击+号
- 选中对应项目的pom.xml文件,双击即可
- 如果没有Maven面板,选择
View → Appearance → Tool Window Bars
配置Maven-Hepler插件
- 选择IDEA中 File --> Settings
- 选择Plugins
- 搜索Maven,选择第一个Maven Helper,点击Install安装,弹出面板中点击Accept
- 重启IDEA
1.6、依赖管理&依赖范围
依赖管理
- 在pom.xml中编写
<dependencies>
标签 - 在
<dependencies>
标签中使用<dependency>
引入坐标 - 定义坐标的
groupld
,artifactld
,version
- 点击刷新按钮,使坐标生效
依赖范围
通过设置坐标的依赖范围(scope),可以设置对应jar包的作用范围:编译环境、测试环境、运行环境
依赖管理 | 编译classpath | 测试classpath | 运行classpath | 例子 |
---|---|---|---|---|
compile | Y | Y | Y | logback |
test | - | Y | - | Junit |
provided | Y | Y | - | servlet-api |
runtime | - | Y | Y | jdbc驱动 |
system | Y | Y | - | 存储在本地的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代理方式要求
- 定义与SQL映射文件同名的Mapper接口,并且将Mapper接口和SQL映射文件放置在同一目录下
- 设置SQL映射文件的namespace属性为Mapper接口全限定名
- 在Mapper接口中定义方法,方法名就是SQL映射文件中sql语句的id,并保持参数类型和返回值类型一致
- 编码
- 通过
SqlSession
的getMapper
方法获取Mapper
接口的代理对象 - 调用对应方法完成sql的执行
- 通过
细节:如果Mapper接口名称和SQL映射文件名称相同,并在同一目录下,则可以使用包扫描的方式简化SQL映射文件的加载