学习笔记 2021.12.11
JavaWeb
一些概念和前情提要相关
什么是Javaweb
用java技术来解决相关Web互联网领域的技术栈。
整体的javaweb的结构:

即可以理解成javaweb包括了上面的三个部分。大概的需要去学习和了解的东西如下:

其中JDBC在这次过程中就先略去了,了解到常规情况下使用是很少的。
至于前断暂时只去了解与后台相关的部分,根据适用度来说是可以去了解下的。
事务及其相关内容
简单理解,事务就是一组数据库的操作命令。就是把多个指令作为以一个整体来提交。此时必须要么同时成功,要么同时失败。
基本的执行步骤包括:
-
开启事务
-
出异常就回滚事务
-
提交事务

总结就是把多个操作合成一个叫事务的东西,然后在其执行成功后commit确保数据,要是其中一个出错了就rollback返回修改前的样子。
事务的四大特征:

这个在mysql下篇中再去具体的了解和熟悉。
Maven
一个专门用于管理和构建java项目的工具,主要功能包括提供一套标准化的项目结构。
此时的结果就是各个开发环境使用同样的项目结构后,使得项目能在不同IDE环境下的都能够使用。
其基本结构如下:

可以发现测试代码和源代码是分开了的。
同时maven也提供了一套标准化的构建流程,即可以更方便的执行编译、打包等之类的操作。并且能够有一套依赖管理机制。即处理不同的jar包能够特别方便的实现。在pom文件中配置就可以了。
maven简介
apache maven是一个项目管理和构建的工具!是一个工具。
maven模型:

其中,项目对象模型就是理解成文件下的各个文件就好,插件就是用于实现构建流程的东西,然后仓库中即存在着大量的jar包用于使用时的调用。
其中仓库也包括了几种仓库

一般仓库的访问顺序也是先访问本地仓库,没有的话再去访问中央仓库并将需要的资源下到自己的本地仓库这么一个过程。
maven的安装
环境变量的配置
配置本地仓库
配置阿里云私服
maven的基本使用
常用命令
-
compile :编译
-
clean:清理
-
test:测试
-
package:打包
-
install:安装
maven的声明周期
Maven 构建项目生命周期描述的是一次构建过程经历经历了多少个事件
Maven 对项目构建的生命周期划分为3套:
-
clean :清理工作。
-
default :核心工作,例如编译,测试,打包,安装等。
-
site : 产生报告,发布站点等。这套声明周期一般不会使用。
同一套生命周期内,执行后边的命令,前面的所有命令会自动执行。例如默认(default)生命周期如下:
当我们执行 install(安装)命令时,它会先执行 compile命令,再执行 test 命令,再执行 package 命令,最后执行 install 命令。
当我们执行 package (打包)命令时,它会先执行 compile 命令,再执行 test 命令,最后执行 package 命令。
默认的生命周期也有对应的很多命令,其他的一般都不会使用。
idea下的maven使用
maven坐标
什么是坐标?
-
Maven 中的坐标是==资源的唯一标识==
-
使用坐标来定义项目或引入项目中需要的依赖
Maven 坐标主要组成
-
groupId:定义当前Maven项目隶属组织名称(通常是域名反写,例如:com.itheima)
-
artifactId:定义当前Maven项目名称(通常是模块名称,例如 order-service、goods-service)
-
version:定义当前项目版本号
如下图就是使用坐标表示一个项目:

==注意:==
上面所说的资源可以是插件、依赖、当前项目。
我们的项目如果被其他的项目依赖时,也是需要坐标来引入的。
maven的创建
就是在structre中的modules中选择maven进行创建然后注意下上面的那些信息的填写即可。
maven项目的导入
通过点击侧边栏,然后添加对应maven项目的pom文件即可添加项目了。

maven插件maven helper
作用即是可以方便的进行基本使用和调试之类的操作

依赖管理
即就是导入各种jar包的操作,有需求的话可以上网找对应的dependency语句粘贴进去即可。注意代码写完后要点刷新才能够让jar包完整的下载进去。

即这样的格式。
或者在ale+insert中直接查找已有的添加jar包即可。

依赖范围
通过设置坐标的依赖范围(scope),可以设置 对应jar包的作用范围:编译环境、测试环境、运行环境。
如下图所示给 junit 依赖通过 scope 标签指定依赖的作用范围。 那么这个依赖就只能作用在测试环境,其他环境下不能使用。
那么 scope 都可以有哪些取值呢?
| 依赖范围 | 编译classpath | 测试classpath | 运行classpath | 例子 |
|---|---|---|---|---|
| compile | Y | Y | Y | logback |
| test | - | Y | - | Junit |
| provided | Y | Y | - | servlet-api |
| runtime | - | Y | Y | jdbc驱动 |
| system | Y | Y | - | 存储在本地的jar包 |
-
compile :作用于编译环境、测试环境、运行环境。
-
test : 作用于测试环境。典型的就是Junit坐标,以后使用Junit时,都会将scope指定为该值
-
provided :作用于编译环境、测试环境。我们后面会学习
servlet-api,在使用它时,必须将scope设置为该值,不然运行时就会报错 -
runtime : 作用于测试环境、运行环境。jdbc驱动一般将
scope设置为该值,当然不设置也没有任何问题
注意:
如果引入坐标不指定
scope标签时,默认就是 compile 值。以后大部分jar包都是使用默认值。
MyBatis
Mybatis概念
MyBatis 是一款优秀的持久层框架,用于简化 JDBC 开发
MyBatis 本是 Apache 的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。
持久层:
-
负责将数据到保存到数据库的那一层代码。
-
JavaEE三层架构:表现层、业务层、持久层
为什么要使用mybatis
就是为了解决jdbc存在的问题,作用就是为了去操作数据库
-
硬编码可以配置到==配置文件==
-
操作繁琐的地方mybatis都==自动完成==
mybatis的快速入门
需求:查询user表中所有的数据
再去了解下注册登陆的时候driver的信息和url的信息,然后在全部实现过后把每步的逻辑弄清楚下。
浙公网安备 33010602011771号