赞
踩
本文用于检验学习效果,忘记知识就去文末的链接复习
区分设备:IP地址
区分网络:网络地址
网络互联:路由器
主机上进程间通信:端口
http是常用的协议,基于TCP协议
TCP VS UDP
Socket有什么用?
复习
什么是数据库?
常见数据库
常见数据库管理软件
常见配置
一般用MySQL学习
实体
联系
键
范式(具体定义看书)
(逐层递进,减少数据库间的冗余信息和依赖关系)
增查改删CRUD(Create/Retrive/Update/Delete)
SQL数据类型
char(n):可存储固定长度为n的字符串
varchar(n):可存储任意数量字符串
存储数字
存储时间
--创建数据库
CREATE DATABASE 数据库名
--删除数据库
DROP DATABASE 数据库名
--创建表
CREATE TABLE
--修改表
ALTER TABLE
--删除表
DROP TABLE
创建数据库study
CREATE DATABASE study;
删除数据库study
DROP DATABASE study;
创建一张表
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT
);
查询数据
查看USER表中的tHost,tUSer列
SELECT tHost,tUSer FROM USER;
修改数据
alter
如果你有一个名为 students 的表,并且你想在这个表中添加一个名为 age 的整数列,你可以使用以下命令:
ALTER TABLE students
ADD age INT;
CONSTRAINT
列级约束条件
表级约束条件
--插入数据
INSERT INTO
--修改数据
UPDATE 表名 SET 列名=值,... WHERE 条件
--删除数据
DELETE FROM 表名
DELETE FROM 表名 WHERE 条件
-- 指定查询某一列数据
SELECT 列名[,列名] FROM 表名
-- 会以别名显示此列
SELECT 列名 别名 FROM 表名
-- 查询所有的列数据
SELECT * FROM 表名
-- 只查询不重复的值
SELECT DISTINCT 列名 FROM 表名
--添加where字句来限定查询目标
SELECT * FROM 表名 WHERE 条件
--将查询结果排序
SELECT * FROM 表名 WHERE 条件 ORDER BY 列名 ASC|DESC
常用查询条件(WHERE中使用)
in
,not in
like
,not like
and
,or
,not
排序(默认升序)
聚集函数
count([distinct]*)
统计所有的行数(distinct表示去重)count([distinct]列名)
统计某列的值总和sum([distinct]列名)
求一列的和(注意必须是数字类型的)avg([distinct]列名)
求一列的平均值(注意必须是数字类型)max([distinct]列名)
求一列的最大值min([distinct]列名)
求一列的最小值分组/分页查询
GROUP BY
HAVING
LIMIT
--分组
SELECT sum(*) FROM 表名 WHERE 条件 GROUP BY 列名
--分页
SELECT sum(*) FROM 表名 WHERE 条件 GROUP BY 列名 HAVING 约束条件
--限制查询的数量,只取前n个结果
SELECT * FROM 表名 LIMIT 数量
多表查询
--默认笛卡尔积
SELECT * FROM 表1, 表2
SELECT * FROM 表1, 表2 WHERE 条件
--自身连接,要起别名
SELECT * FROM 表名 别名1, 表名 别名2
连接
inner join
:交集left join
:左边都要有,右边缺失值为空right join
嵌套查询
将一个查询的结果作为另一个查询的条件
SELECT * FROM 表名 WHERE 列名 = (SELECT 列名 FROM 表名 WHERE 条件)
--创建用户 CREATE USER 用户名 identified by 密码; --登录 login -u 用户名 -p --授权(授权后才可看数据库) grant all|权限1,权限2...(列1,...) on 数据库.表 to 用户 [with grant option] --创建视图 CREATE VIEW 视图名称(列名) as 子查询语句 [WITH CHECK OPTION]; --删除视图 drop view apptest -- 创建索引 CREATE INDEX 索引名称 ON 表名 (列名) -- 查看表中的索引 show INDEX FROM student --删除索引 drop index 索引名称 on 表名 --创建触发器 CREATE TRIGGER 触发器名称 [BEFORE|AFTER] [INSERT|UPDATE|DELETE] ON 表名/视图名 FOR EACH ROW DELETE FROM student WHERE student.sno = new.sno --查看触发器 SHOW TRIGGERS --删除触发器 DROP TRIGGER 触发器名称 --查看数据库引擎 SHOW ENGINES; begin; #开始事务 ... rollback; #回滚事务 savepoint 回滚点; #添加回滚点 rollback to 回滚点; #回滚到指定回滚点 ... commit; #提交事务 -- 一旦提交,就无法再进行回滚了!
视图(本质就是一个查询结果)
索引(快速查询)
触发器
select
/update
/delete
时,会自动执行我们预先设定的内容,触发器通常用于检查内容的安全性,相比直接添加约束,触发器显得更加灵活。事务
函数&存储过程
JDBC中一些类
操作
批处理(statement.addBatch())
查询结果映射对象
SQL注入攻击
PrepareStatement
执行SQL命令,可解决以上问题
管理事务
con.setAutoCommit(); //关闭自动提交后相当于开启事务。
// 这里是SQL语句
con.commit();或 con.rollback();
使用方法
标签
lombok注解
getter中懒加载有什么用
在编程中,lazy 属性或特性通常用于实现懒加载(lazy loading)模式。
懒加载意味着对象的某些属性或资源的初始化会延迟到它们真正被需要时才进行,而不是在对象创建时立即进行。
这种策略对于优化性能非常有用,特别是在处理计算密集型操作或需要消耗大量资源的操作时。
在 getter 上下文中,lazy 属性可以确保当你第一次访问某个属性时,其背后的计算或初始化操作才会执行,
并且其结果会被缓存起来,以便后续访问时直接返回,而不需要重新计算或初始化。
JDBC还是不够好用,用Mybatis可更方便地操作数据库
知道什么是XML
配置
xxxMapper.java
,与TestMapper.xml相关联修改xml,切换数据库环境
数据源
别名
增删改查
自动映射:首字母小写,后面的驼峰
类中有多个构造方法【容易出问题】
按学号查找信息
插入学生信息
“一对多”
“多对一”
-resultMap
事务
动态SQL
缓存机制
何时清空缓存?
缓存分级
解决缓存机制导致的不一致问题
使用注解开发
测试某个小功能时,没必要重新启动整个项目
使用步骤
JUL日志系统(JDK提供的)
日志级别(高到低)
我们想:开发时输出所有日志,上线后正常输出日志
输出所有日志
可以用文件处理器打印日志
可以添加过滤器,不让某些日志显示
了解Properties配置文件
可用lombok快速开发日志
Mybatis也有日志系统
Maven能管理jar包(手动导入太麻烦)
在IDEA中
IDEA的设置中
C:\Users\用户\AppData\Roaming\JetBrains\IntelliJIdea2023.3\options
如何导入jar包
依赖属性
从本地找依赖
<dependencies>
<dependency>
<groupId>com.example</groupId>
<artifactId>my-local-lib</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/my-local-lib-1.0.jar</systemPath>
</dependency>
</dependencies>
可选依赖
<optional>true</optional>
排除依赖
<exclusions>
<exclusion>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
</exclusion>
</exclusions>
依赖的继承关系
<dependencies>
,会被子项目直接继承<dependencyManagement>
,在子项目中引入后,也可继承(不用写版本号)maven常用命令
clean
:清除target中的文件validate
:验证项目的可用性compile
:编译项目install
:将当前项目安装到本地maven仓库(之后可被其他项目导入)verify
:按顺序执行默认生命周期阶段(validate,compile,package)test
:执行test目录下的所有测试用例package
:把项目打包为jar包(默认不含依赖)
deploy
:发布命令到本地仓库和远程仓库site
:生成当前项目的发布站点Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。