Spring MyBatis
MyBatis
MyBatis是一款优秀的持久层框架,用于简化JDBC的开发
官网:MyBatis 3
快速入门引入MyBatis依赖可以在创建SpringBoot项目时,勾选相关依赖:
注意:由于是与MySQL数据库进行操作,所以别忘了添加MySQL驱动依赖(其他数据库同理)
也可以在pom.xml中引入依赖:
12345678910<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>3.0.5</version></dependency><dependency> <groupId>com.mysql</groupId> <artifactId>mysql-connector-j</artifactId> ...
AOP面向切面编程
AOP介绍
AOP:Aspect Oriented Programming(面向切面编程),可以简单理解为面向特定方法编程
场景:
统计业务方法的执行耗时
记录系统的日志操作
事务管理(底层就是AOP,Spring对其封装成了@Transactional)
权限控制
优势:
较少重复代码
代码无侵入
提高开发效率
维护方便
AOP基础
需求:统计所有业务层方法的执行耗时
导入依赖:在pom.xml中引入AOP的依赖
1234<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId><dependency>
编写AOP程序:针对特定的方法根据业务需要进行编程
12345678910111213141516@Aspect@Component@Slf4jpublic class RecordTimeAspect { @Around(& ...
Linux项目部署
认识Linux
Linux是一套免费使用和自由传播的操作系统
分类
系统
特点
桌面操作系统
Windows
用户数量最多
Mac OS
操作体验好,偏向办公
Linux
用户数量少
移动设备操作系统
Android
基于Linux、开源,主要用于智能手机、平板、智能电视
IOS
苹果公司开发、不开源,用于苹果公司的产品
HarmonyOS
华为公司开发、开源,目前用于华为公司的产品
服务器操作系统
Unix
安全、稳定、付费
Linux
安全、稳定、免费、占有率高
Windows Server
付费、占有率低
Linux概述Linux系统分为内核版和发行版
内核版
由Linux核心团队开发、维护
免费、开源
负责控制硬件
发行版
基于Linux内核版进行扩展
由各个Linux厂商开发、维护
有收费版本和免费版本
Linux系统发行版:
Ubuntu:以桌面应用为主,免费
RedHat:面向企业用户,收费
Centos:RedHat的社区版,免费
Fedora:功能完备、快速更新,免费
openSUSE:对个 ...
Java异常处理
异常的介绍和体系结构异常介绍
指的是程序在编译或执行过程中,出现的非正常的情况(错误)
ArrayIndexOutOfBoundsException:索引越界异常
ClassCaseException:类型转换异常
NullPointerException:空指针异常
注意:语法错误,不是异常
异常体系Java中所有的异常和错误的父类是Throwable,它的两个子类为Error和Exception
Error:
严重级别问题
常见的有栈内存溢出(StackOverflowError),堆内存溢出(OutOfMemoryError)
Exception:
RuntimeException及其子类:运行时异常
数组索引越界异常、空指针异常、类型转换异常都属于运行时异常
编译阶段没有错误,运行时可能会出现错误。这种错误通常都是程序员代码不严谨造成的
除RuntimeException之外的所有异常:编译时异常
编译阶段就出现的错误。主要起到提醒作用
异常的默认处理流程示例:
1234567891011121314151617181920package com.norl ...
Java网络编程
网络编程概念
可以让设备中的程序与网络上其他设备中的程序进行数据交互的技术(实现网络通信)
基本的通信架构分为两种:CS架构(Client客户端/Server服务端)、BS架构(Browser浏览器/Server服务端)
无论是CS架构还是BS架构,都必须依赖网络编程
Java中提供了java.net.*包用于进行网络编程
网络编程三要素三要素为:IP地址、端口、协议
IP地址:设备在网络中的地址,是设备在网络中的唯一标识
端口:应用程序在设备中的唯一标识
协议:连接和数据在网络中传输的规则
IP地址
IP(Internet Protocol):全称“互联网那个协议地址”,是分配给上网设备的唯一标识
目前,被广泛采用的IP地址形式有两种:IPv4、IPv6
IPv4:是Internet Protocol Version 4的缩写,它使用32位地址,通常以点分十进制表示,如192.168.100.200
IPv6:是Internet Protocol Version 6的缩写,它使用128为地址。IPv6分为8段,每段每四位编码成一个十六进制表示,每段之间用冒 ...
Java面向对象编程
面向对象介绍面向对象:并不是一个技术,而是一种编程的指导思想
以什么形式组织代码,以什么思路解决问题
为什么要学习面向对象?
因为生活中,我们要解决问题时,就是采用这种指导思想去解决的
所以,我们写程序去解决问题时,如果也能采用这种指导思想
就会使编程变得非常简单,程序也便于理解
面向对象,重点学什么?
学习自己如何设计对象
学习已有的对象如何使用
总结:面向对象是一种思想,这种思想可以让我们写代码的思路更贴切于生活
类和对象
Java中想要创建对象,必须先要有类的存在
类指的是一组相关属性和行为的集合,可以将其理解为是一张对象的设计图
Java中需要根据类,创建对象
一个类,可以创建出多个对象
类的组成类的组成有两部分:属性和行为
属性又称成员变量:跟之前定义变量的格式一样,只不过位置需要放在方法外面。它用于描述事物的名词
行为又称成员方法:跟之前定义方法的格式一样,只不过需要去掉static关键字。它用于描述事物的动词
创建和使用对象
创建对象格式:类名 对象名 = new 类名();
成员变量的使用格式:对象名.变量名;
成员方法的使用格式:对象名.方法名(实际参数);
...
Java集合
集合基础
集合是一种容器,用来装数据的,类似于数组
数组定义完成并启动后,长度就固定了
集合大小可变,开发中使用频率更多
ArrayList长度可变原理:
当创建ArrayList集合容器的时候,底层会存在一个长度为10个大小的空数组
当存储的数据长度超过了10,会扩容原数组1.5倍大小的新数组
将原数组数据,拷贝到新数组中
将新元素添加到新数组
集合和数组的使用选择:
数组:存储的元素个数固定不变
集合:存储的元素个数经常发生改变
创建集合
空参构造创建集合格式:
123456ArrayList list new ArrayList();list.add(1);list.add(12.3);list.add('a');list.add("abc");list.add(false);
以上方式创建的集合可以存储任意类型的数据,但是这会导致集合中类型混乱,如果没有特殊需求,不推荐使用这种方式
通过泛型指定集合中元素类型:
123456ArrayList<String> list = new ArrayList<& ...
Java基础
注释
单行注释:
1// 单行注释,只注释一行
多行注释:
1234/* 多行注释 多行注释*/
文档注释:
1234/** 文档注释 文档注释*/
关键字和字面量
关键字指的是被Java赋予了特定含义的英文单词
关键词用户不能随意使用
字面量这个知识要求学会数据在程序中的书写格式
字符、字符串在程序中的书写格式要求:字符使用单引号,且单引号内只能有一个字符;字符串使用双引号,对数量没有要求
变量变量的定义格式:数据类型 变量名称 = 变量值
示例:
12345678910111213public class VariableDemo { public static void main(String[] args) { String name = "张三"; int age = 25; float height = 1.86f; boolean isMarried = false; System.out.println("姓名:" ...
Java高级
枚举枚举是Java中一种特殊类型,一般用来做信息的标记和分类
在不是枚举的情况下,也可以实现信息的标记和分类:
123456789101112131415161718192021222324252627282930package _enum;public class EnumDemo01 { public static void main(String[] args) { useSeason(Season.AUTUMN); } public static void useSeason(String string) { switch (string) { case Season.SPRING -> System.out.println("春天"); case Season.SUMMER -> System.out.println("夏天"); case Season.AUTUM ...
Java常用API
APIAPI(Application Programming Interface):应用程序编程接口。就是别人写好的一些类,给程序员直接拿去调用即可
解决问题
Java中的API有很多,这些API不用去死记硬背,需要使用的时候查询API文档即可
在线地址(JDK11汉化版本):https://www.runoob.com/manual/jdk11api/index.html
官方API地址(无汉化,全版本):https://docs.oracle.com/en/java/javase/21/docs/api/index.html
当查询API文档还是没弄清如何使用,直接在搜索引擎中查询也能解决问题
String类特点:
Java程序中所有字符串文字(例如”abc”)都是String类的对象
String是不可改变的,它们的值在创建后无法更改。想要更改,需要使用新的对象替换
12String s = "abc";s = "cba"; // 替换新对象
String虽然不可改变,但是可以被共享操作
123String s1 = "ab ...
