自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 Redis数据类型

文章目录1. redis的数据类型2. String 字符串类型3. Hash键值类型1. redis的数据类型String -字符串类型Hash -Hash类型,就是对于value里边又是一个键值对。List -列表类型,即数组Set -集合类型,集合中不允许重复Zset - 有序的集合类型2. String 字符串类型这里说的字符串不仅是传统上说的字符,它还可以对应数字。String最大容纳512M字节,建议单个kv不超过100kb,否则在内存中提取的效率将会大大降低。字符串中最

2020-12-30 21:44:12 110

原创 Redis

文章目录1. Redis 的由来2. Redis的介绍3. Redis的特点4. Redis的常用基本配置5. Redis 通用命令1. Redis 的由来由于早期数据都是存储在mysql, oracle数据库都是把数据存储在硬盘上, 硬盘的吞吐和处理速度都是比较慢的。redis是把数据存储在内存中保存的,处理速度有了质的飞跃。2. Redis的介绍Redis是Key-Value型NoSQL数据库。高性能:(最显著的特点)Redis将数据保存在内存中,利用内存的高吞吐能瞬间完成数据的提取或设置工

2020-12-28 21:32:27 78

原创 HTTP和HTTPS的区别

文章目录1. HTTPS简介2. SSL(Security Sockets Layer,安全套接层)HTTP与HTTPS的区别:HTTP真的很安全吗?1. HTTPS简介在HTTPS下增加了一个SLL层或者TLS层,具有了保护交换数据隐私以及完整性。还提供对网上服务器身份认证的功能,是安全版的HTTP。2. SSL(Security Sockets Layer,安全套接层)为网络通信提供安全及数据完整性的一种安全协议。SSL位于TCP和各应用层之间,是操作系统对外提供的API,SSL3.0后更

2020-12-27 16:55:25 205

原创 HTTP相关

文章目录1.HTTP协议2.HTTP相应的步骤:3. 在浏览器地址栏键入URL,按下回车键之后经历的流程:4. HTTP状态码5. GET请求和POST请求的区别Cookie和Session的区别1.HTTP协议HTTP(超文本传输协议)是属于应用层的协议。它是一个基于请求和相应模式的无状态的应用层的协议,常基于TCP的连接方式。HTTP1.1版本中给出一种持续连接的机制。绝大多数的web开发都是构建在HTTP协议上的web应用。HTTP协议的主要特点:支持客户/服务器模式。HTTP协议工作于客户

2020-12-27 11:10:44 101

原创 TCP的滑动窗口

RTT:发送一个数据包到收到对应的ACK,所花费的时间。就是Server发送一个数据包然后对方回应一个ACK的时间,当Server接收到ACK之后,就能计算出从Server发出包到接收到回应的时间。RTO:重传时间间隔。TCP在发送一个数据包之后,会启动一个重传定时器,RTO就是这个定时器的重传时间。如果收到回复的ACK,重传时间就自动失效,如果没有收到回复的ACK,RTO定时器的时间也到了,发送方就重传。由于RTO是本次发送当前数据包所预估的超时时间,那么RTO就需要一个很好的算法来统计,来更好的预

2020-12-25 20:35:14 884

原创 TCP和UDP区别

文章目录1. UDP简介2. TCP和UDP的区别:1. UDP简介UDP不想TCP那样支持错误重传,滑动窗口等控制特点:面向非连接, udp是一个非连接的协议,传输数据之前,源端和终端不建立连接。当它想传输数据时,就简单的抓取来自应用程序的数据,并尽可能快的把它扔到网络上。在发送端,udp传输数据的速率仅仅是受应用程序生成数据的速度,计算机的能力和传输带宽的限制。在接收端,udp把每个消息段放在队列中,应用程序每次从队列中读取一个消息段。不维护连接状态,支持同时向多个客户端传输相同的信息。

2020-12-25 20:04:41 127

原创 谈TCP的四次挥手

文章目录1. 四次挥手2. 为什么会有TIME_WAIT状态?3. 为什么需要四次挥手才能断开连接?4.服务器出现大量CLOSE_WAIT状态的原因"挥手"是为了终止连接,TCP四次挥手的流程如下:1. 四次挥手终止tcp连接就是指断开一个tcp连接时,需要客户端和服务端总共发出四个包,以确认连接的断开。在socket编程中,这个过程由客户端或服务端任一方执行close来触发。第一次挥手:client发送一个FIN,用来关闭client到Server的数据传送,client进入FIN_WAIT_1状

2020-12-25 19:35:42 191

原创 TCP三次握手

文章目录1. TCP2.TCP Flags3. tcp的三次握手4. 为什么需要三次握手才能建立起连接呢?5. 首次握手的隐患--SYN超时1. TCPIP协议是无连接的通信协议,它不会占用两个正在通信的计算机之间的通信线路。这样ip就降低了对网络线路的需求,每条线路可以同时满足许多不同计算机之间的通信需要。通过ip,消息。source port,destination port各占两个字节tcp和udp数据包都是不包含ip地址信息的,因为那是ip层上的事情,但是tcp和udp均会有源端口和目的端口。

2020-12-25 16:09:46 801

原创 OSI网络七层协议详解

文章目录1. 物理层2. 数据链路层3. 网络层4. 传输层5. 会话层6. 表示层7. 应用层8. OSI的“实现” :TCP/IP七层OSI七层1. 物理层我们首先要解决两台物理机之间的通信需求,具体也就是机器A向机器B发送比特流,机器B能收到这些比特流,这便是物理层要做的事情。物理层主要定义了物理设备的标准,如网线的类型,光纤的接口类型,各种传输介质的传输速率等。他的主要作用是传输比特流及二进制数据。将这些数据流转化为电流强弱进行传输。到达目的机器后,再转化为0101的机器码。也就是我们常说的

2020-12-25 13:19:52 3273 1

原创 linux用户与用户组

文章目录1. 用户与用户组常用命令2. 文件权限代码表3. chmod命令4. sudo获取超级管理员权限5. 防火墙设置1. 用户与用户组常用命令命令用途useradd创建新用户passwd修改密码usermod修改用户信息/分配组(覆盖原组)groupadd创建新的用户组chown更改文件的属主或属组chmod更改文件的访问权限newgrp切换用户当前组usermod -g 一次性为指定用户赋一个组usermod -G

2020-12-25 10:30:01 194

原创 linux系统常用命令大全

文章目录1.系统目录2. linux文件操作命令3. vim重要快捷键4. 常用文本工具5. tar常用可选项6. yum与rpm的关系7. yum常用命令8. 编译方式安装应用程序9. linux系统管理命令应用服务化systemctl常用命令1.系统目录绝对路径用途/根目录/bin常用的二进制命令所在目录,例如ls,cp,makedir…/bootlinux内核与系统引导程序目录/dev设备文件的目录,比如声卡,磁盘,光驱…/etcyum,rpm

2020-12-24 09:38:26 208

原创 RBAC基于角色的访问控制

文章目录1. RBAC(Role-Based Access Control)的作用:1. RBAC(Role-Based Access Control)的作用:基于角色权限控制(RBAC)是面向企业安全策略的访问控制方式。RBAC核心思想是将控制访问的资源(系统中可以使用的功能,上传下达的文件,URL网址)与角色(Role)进行绑定。系统的用户(user)与角色(Role)再进行绑定,用户便拥有对应的权限...

2020-12-17 14:26:20 199

原创 MyBatis之注解

利用注解简化配置1.常用的注解注解可以替代掉原有的XML的各种标签,在程序中利用注解进行开发, 简化程序的配置过程。注解对应XML说明@Insert<insert>新增SQL@Update<update>更新SQL@Delet<delete>删除SQL@Select<select>查询SQL@Param–参数映射@Results<resultMap>结果映射@

2020-12-10 17:05:55 260

原创 MyBatis之批处理

1. 批量插入操作goods.xml文件<insert id="batchInsert" parameterType="java.util.List"><!-- foreach 是专门对parameterType传入中的list集合进行遍历的--> INSERT INTO t_goods(title, sub_title, original_cost, current_price, discount, is_free_delivery, categ

2020-12-10 15:35:18 628

原创 MyBatis配置C3P0连接池

创建C3P0DataSourceFactory类package com.mybatis.datasource;import com.mchange.v2.c3p0.ComboPooledDataSource;import org.apache.ibatis.datasource.unpooled.UnpooledDataSourceFactory;/** * C3P0与MyBatis兼容使用的数据源共创类 */public class C3P0DataSourceFactory exten

2020-12-07 21:50:20 121

原创 不同数据库的分页实现原理

文章目录1. MySQL分页2. Oracle3. SQLServer 20003. SQLServer 2012+1. MySQL分页select * from table limit 10, 2010代表起始行号,20代表从起始行号开始向后多少条数据2. Oracleselect t3. *from(select t2.* , rownum as row_num from(select * form table order by id asc)t2 where rownum<=20

2020-12-07 21:26:01 323 1

原创 MyBatis之OneToMany对象关联查询

1 对多关联查询创建t_goods_detail.xml文件<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="goodsDetail"> <s

2020-12-07 19:23:38 934

原创 MyBatis之二级缓存

文章目录Mybatis的二级缓存二级缓存运行规则二级缓存字段详细解释Mybatis的二级缓存一级缓存默认开启,缓存范围SqlSession会话耳机缓存手动开启,属于范围Mapper Namespace二级缓存运行规则1.二级开启后,默认所有查询操作均使用缓存2.写操作commit提交时,对该namespace缓存强制清空,这么做是为了保证数据的一致性。3. 配置useCache=false可以不用缓存4. 配置flushCache=true代表强制清空缓存一级缓存测试@Test

2020-12-07 15:18:37 811

原创 Mybatis之预防SQL注入攻击

文章目录1. 什么是SQL注入攻击2. MyBatis两种传值方式3. ${} 方式的问题4. #{} 方式1. 什么是SQL注入攻击sql注入是指攻击者利用SQL漏洞,绕过系统约束,越权获取数据的攻击方式2. MyBatis两种传值方式${} 文本替换,未经任何处理对SQL文本替换#{} 预编译传值,使用预编译传值可以预防SQL注入3. ${} 方式的问题goods.xml文件中<select id="selectByTitle" parameterType="java.u

2020-12-06 15:59:29 226 3

原创 Mybatis之更新与删除操作

####1. 更新操作<update id="update" parameterType="com.mybatis.entity.Goods"> UPDATE t_goods SET title = #{title}, sub_title = #{subTitle}, original_cost = #{originalCost}, current_price = #

2020-12-06 15:24:49 253

原创 MyBatis之selectKey与useGeneratedKeys的区别

文章目录selectKey属性用法useGeneratedKeys属性用法二者的区别1 --显示与隐示二者的区别2 --应用场景不同在Oracle中selectKey的用法总结selectKey属性用法<insert id="insert" parameterType="com.mybatis.entity.Goods"> insert into t_goods(title, sub_title, original_cost, current_price, discount,

2020-12-06 14:47:13 663

原创 MyBatis之数据插入操作

在goods.xml中添加insert标签<insert id="insert" parameterType="com.mybatis.entity.Goods"> insert into t_goods(title, sub_title, original_cost, current_price, discount, is_free_delivery, category_Id) values(#{title}, #{subTitle}, #{originalC

2020-12-06 14:12:32 1165

原创 MyBatis之ResultMap结果映射

多表联合查询时,返回结果可能是多个表,所以采用ResultMap对结果进行接收,resultMap使用时,需要先重新建立一个类,包含输出结果的类,如GoodsDTO类, 里边既有Goods类的数据,也有Category类的数据package com.mybatis.dto;import com.mybatis.entity.Category;import com.mybatis.entity.Goods;// Data Transfer Object 数据传输对象public class G

2020-12-06 10:13:03 211

原创 MyBatis之获取多表关联查询结果

在goods.xml文件中增加<!-- 利用LinkedHashMap保存对表关联结果 MyBatis会将每一条记录包装为LinkedHashMap对象 Key是字段名,value是对应字段的值,字段类型根据表结构进行自动判断 优点:易于扩展,易于使用 缺点:太过灵活,无法进行编译时检查 --> <select id="selectGoodsMap" resultType

2020-12-05 21:46:10 229

原创 MyBatis之参数传递

文章目录1. MyBatis之单参数传递2. MyBatis之多参数传递1. MyBatis之单参数传递在goods.xml文件中的goods下的空间下在增加一个select块<select id="selectById" parameterType="Integer" resultType="com.mybatis.entity.Goods"> select * from t_goods where goods_Id = #{value} </select&

2020-12-05 21:15:16 106

原创 MyBatis之初始化工具类和数据查询步骤

1. 初始化工具类MyBatisUtilsSqlSessionFactory:SqlSessionFactory是MyBatis的核心对象用于初始化MyBatis,创建SqlSession对象保证SqlSessionFactory在应用中全局唯一/** * MyBatisUtils 工具类,创建全局唯一的SqlSessionFactory对象 */public class MyBatisUtils { // 利用static(静态) 属于类不属于对象,且全局唯一 priv

2020-12-05 20:44:06 216 1

原创 MyBatis之环境配置

文章目录1. mybatis-config.xml2. SqlSessionFactory3. SqlSession1. mybatis-config.xml首先MyBatis配置文件的名称为:mybatis-config.xmlMyBatis采用XML格式配置数据库环境信息MyBatis环境配置标签为<environment>environment 包含数据库驱动、URL、用户名与密码<?xml version="1.0" encoding="UTF-8" ?>&

2020-12-05 20:43:27 245

原创 MyBatis之入门介绍

文章目录1. 什么是MyBatis2. MyBatis开发流程1. 什么是MyBatisMyBatis是最优秀的持久层框架:将内存中的数据保存到数据库中,以防止重启后数据丢失.MyBatis使用XML将SQL与程序解耦,便于维护:用XML文件保存应用程序中使用到的SQL语句,SQL是单独被维护和管理的。通过MyBatis提供的方法来完成与SQL的交互工作。有问题时只需要打开XML文件进行修改MyBatis学习简单,执行高效,是JDBC的延伸:2. MyBatis开发流程引入MyBatis依赖

2020-12-05 14:33:17 79

原创 流式处理Stream

文章目录1. Stream 常用方法2. Stream流的五种创建方式3. Stream的常用方法实例1. Stream 常用方法接口用途forEach循环遍历mapmap方法用于映射每个元素到对应的结果filterfilter方法用于获取指定数量的流limitlimit方法用于获取指定数量的流sortedsorted方法用于对流进行排序CollectorsCollectors 类实现将流转换成集合和聚合元素2. Stream流的五种创

2020-12-05 13:03:46 191

原创 java函数式编程

文章目录1. 函数式编程与面向对象编程比较2. Predicate接口3. consumer接口4. Function接口1. 函数式编程与面向对象编程比较面向对象编程函数式编程设计思路面向对象面向过程开发侧重侧重过程,重分析,重设计侧重结果,快速实现可读性结构复杂, 相对较差更适合人眼阅读,可读性更好代码量多少并发性问题设计不当,会出现线程安全问题不会出现线程安全问题健壮性好差使用场景中大型项目,多人协作工程小型应用

2020-12-04 16:25:47 64

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除