- 博客(87)
- 资源 (2)
- 收藏
- 关注
原创 BOM的学习
1. 什么是BOMBOM(Browser Object Model)即浏览器对象模型,它提供了独立于内容而与浏览器窗口进行交互的对象,其核心对象是 window。BOM 由一系列相关的对象构成,并且每个对象都提供了很多方法与属性。BOM 缺乏标准,JavaScript 语法的标准化组织是 ECMA,DOM 的标准化组织是 W3C,BOM 最初是Netscape 浏览器标准的一部分。1.2 BOM的构成BOM 比 DOM 更大,它包含 DOM1.3 顶级对象window1.4 windo
2022-04-26 21:26:54 247
原创 Rocketmq-- RocketMQ4.X基础介绍
一.阿里开源消息队列 RocketMQ4.x介绍和新概念讲解Apache RocketMQ作为阿里开源的一款高性能、高吞吐量的分布式消息中间件1.1 特点支持Broker和Consumer端消息过滤支持发布订阅模型,和点对点支持拉pull和推push两种消息模式单一队列百万消息、亿级消息堆积支持单master节点,多master节点,多master多slave节点任意一点都是高可用,水平拓展,Producer、Consumer、队列都可以分布式消息失败重试机制、支持特定level的定时消息
2022-04-15 19:39:40 327
原创 SpringCloud--Eureka服务的注册与发现
一. Eureka基础知识1.1 什么是服务治理● SpringCloud 封装了Netflix公司开发的Eureka 模块来实现服务治理【SpringCloud抄的Netflix作业】● 在传统的RPC远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,所以服务之间依赖关系,可以实现服务调用,负载均衡,容错等,实现服务发现与注册1.2 什么是服务注册与发现Eureka采用了CS的设计架构,Eureka Server 作为服务注册功能的服务器,他是服务注册中心,而系统中的其他微服务,使用Eur
2022-04-15 01:16:14 436
原创 Mybatis学习--MyBatis的缓存
一.MyBatis的一级缓存一级缓存是SqlSession级别的,通过同一个SqlSession查询的数据会被缓存,下次查询相同的数据,就会从缓存中直接获取,不会从数据库重新访问使一级缓存失效的四种情况:不同的SqlSession对应不同的一级缓存同一个SqlSession但是查询条件不同同一个SqlSession两次查询期间执行了任何一次增删改操作同一个SqlSession两次查询期间手动清空了缓存二.二级缓存的相关配置在mapper配置文件中添加的cache标签可以设置一些属
2022-04-13 18:39:21 163
原创 MyBatis学习-- MyBatis的逆向工程
一.Mybatis的逆向工程正向工程:先创建Java实体类,由框架负责根据实体类生成数据库表。Hibernate是支持正向工程的逆向工程:先创建数据库表,由框架负责根据数据库表,反向生成如下资源:Java实体类Mapper接口Mapper映射文件二.创建逆向工程的步骤2.1 添加依赖和插件<dependencies> <!-- MyBatis核心依赖包 --> <dependency> <groupId>org.mybatis
2022-04-13 18:39:12 298
原创 Mybatis学习--分页插件的使用
一.分页插件使用步骤1.1 添加依赖<!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper --><dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.2.0</versi
2022-04-13 18:38:53 494
原创 MyBatis学习--动态SQL
Mybatis框架的动态SQL技术是一种根据特定条件动态拼装SQL语句的功能,它存在的意义是为了解决拼接SQL语句字符串时的痛点问题一. if标签if标签可通过test属性(即传递过来的数据)的表达式进行判断,若表达式的结果为true,则标签中的内容会执行;反之标签中的内容不会执行.在where后面添加一个恒成立条件1=1这个恒成立条件并不会影响查询的结果这个1=1可以用来拼接and语句,例如:当empName为null时如果不加上恒成立条件,则SQL语句为select * from t_e
2022-04-11 17:36:53 534
原创 Mybatis学习--延迟加载
一.延迟加载分步查询的优点:可以实现延迟加载,但是必须在核心配置文件中设置全局配置信息:lazyLoadingEnabled:延迟加载的全局开关。当开启时,所有关联对象都会延迟加载aggressiveLazyLoading:当开启时,任何方法的调用都会加载该对象的所有属性。 否则,每个属性会按需加载此时就可以实现按需加载,获取的数据是什么,就只会执行相应的sql。此时可通过association和collection中的fetchType属性设置当前的分步查询是否使用延迟加载,fetchTy
2022-04-11 17:25:05 403 1
原创 Mybatis--自定义映射resultMap
1.resultMap处理字段和属性的映射关系- resultMap:设置自定义映射属性:id:表示自定义映射的唯一标识,不能重复type:查询的数据要映射的实体类的类型子标签:id:设置主键的映射关系result:设置普通字段的映射关系子标签属性:property:设置映射关系中实体类中的属性名column:设置映射关系中表中的字段名若字段名和实体类中的属性名不一致,则可以通过resultMap设置自定义映射,即使字段名和属性名一致的属性也要映射,也就是全部属性都要
2022-04-11 16:14:01 1023
原创 mybatis学习--特殊SQL的执行
1.模糊查询/** * 根据用户名进行模糊查询 * @param username * @return java.util.List<com.atguigu.mybatis.pojo.User> * @date 2022/2/26 21:56 */List<User> getUserByLike(@Param("username") String username);<!--List<User> getUserByLike(@Param("use
2022-04-11 15:52:44 574
原创 Mybatis--MyBatis的各种查询功能
如果查询出的数据只有一条,可以通过实体类对象接收List集合接收Map集合接收,结果{password=123456, sex=男, id=1, age=23, username=admin}如果查询出的数据有多条,一定不能用实体类对象接收,会抛异常TooManyResultsException,可以通过实体类类型的LIst集合接收Map类型的LIst集合接收在mapper接口的方法上添加@MapKey注解1.查询一个实体类对象/** * 根据用户id查询用户信息 * .
2022-04-11 15:41:20 124
原创 MyBatis学习-MyBatis获取参数值的两种方式(重点)
- MyBatis获取参数值的两种方式:${}和#{} - ${}的本质就是字符串拼接,#{}的本质就是占位符赋值 - ${}使用字符串拼接的方式拼接sql,若为字符串类型或日期类型的字段进行赋值时,需要手动加单引号;但是#{}使用占位符赋值的方式拼接sql,此时为字符串类型或日期类型的字段进行赋值时,可以自动添加单引号1.单个字面量类型的参数若mapper接口中的方法参数为单个的字面量类型,此时可以使用${}和#{}以任意的名称(最好见名识意)获取参数的值,注意${}需要手动加单引号&l
2022-04-11 15:14:51 184
原创 Mybatis学习--MyBatis的增删改查
1.添加<!--int insertUser();--><insert id="insertUser"> insert into t_user values(null,'admin','123456',23,'男','12345@qq.com')</insert>2.删除<!--int deleteUser();--> <delete id="deleteUser"> delete from t_user where
2022-04-11 14:45:29 611
原创 Mybatis学习--核心配置文件详解
1.核心配置核心配置文件中的标签必须按照固定的顺序(有的标签可以不写,但顺序一定不能乱):properties、settings、typeAliases、typeHandlers、objectFactory、objectWrapperFactory、reflectorFactory、plugins、environments、databaseIdProvider、mappers<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE confi
2022-04-11 14:34:08 165
原创 MyBatis学习--搭建Mybatis
一.搭建1.开发环境- IDE:idea 2019.2 - 构建工具:maven 3.5.4 - MySQL版本:MySQL 5.7 - MyBatis版本:MyBatis 3.5.72.创建maven工程1.打包方式2.引入依赖<dependencies> <!-- Mybatis核心 --> <dependency> <groupId>org.mybatis</groupId> <artifactId
2022-04-11 14:18:00 1329
原创 MyBatis简介
一. MyBatis历史MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下,iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github.iBatis一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBatis提供的持久层框架包括SQL Maps和Data Access Objec
2022-04-11 13:49:34 484
原创 Kafka学习(十一)--高级篇-kafka数据文件存储-可靠性保证-ISR核心知识
一.Kafka数据存储流程和log日志讲解1.Kafka 采取了分片和索引机制,将每个partition分为多个segment,每个segment对应2个文件 log 和 index.2.新增备注index文件中并没有为每一条message建立索引,采用了稀疏存储的方式每隔一定字节的数据建立一条索引,避免了索引文件占用过多的空间和资源,从而可以将索引文件保留到内存中缺点是没有建立索引的数据在查询的过程中需要小范围内的顺序扫描操作3.配置文件 server.properties# The ma
2022-03-31 22:32:26 795
原创 Kafka学习(十)--Kafka消费者Consumer消费消息配置实战
一. Kafka消费者Consumer消费消息配置实战配置: public static Properties getProperties() { Properties props = new Properties(); //broker地址 props.put("bootstrap.servers", "ip:9092"); //消费者分组ID,分组内的消费者只能消费该消息一次,不同分组内的消费者可以重复消费该消息
2022-03-31 22:26:13 1677
原创 Kafka学习(九)--Consumer配置讲解和Kafka调试日志配置
一.Consumer配置讲解和Kafka调试日志配置1.1 springboot关闭kafka调试日志#yml配置文件修改logging: config: classpath:logback.xml #logback.xml内容<configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder class="ch
2022-03-31 22:14:29 1786
原创 kafka学习(八)--Kafka核心API消费者模块
一.【面试】Consumer消费者机制和分区策略讲解《上》1.1. Kafka的Consumer消费者机制和分区策略讲解消费者根据什么模式从broker获取数据的?为什么是pull模式,而不是broker主动push?消费者采用 pull 拉取方式,从broker的partition获取数据pull 模式则可以根据 consumer 的消费能力进行自己调整,不同的消费者性能不一样如果broker没有数据,consumer可以配置 timeout 时间,阻塞等待一段时间之后再返回如果是bro
2022-03-31 22:06:03 466
原创 Kafka学习(七)--生产者自定义partition分区规则
一.producer生产者发送指定分区实战创建topic,配置5个分区,1个副本发送代码@Test public void testSendWithCallbackAndPartition(){ Properties props = getProperties(); Producer<String, String> producer = new KafkaProducer<>(props); for (int i =
2022-03-31 19:31:23 2147
原创 kafka学习(六)
一.Kafka核心API模块-producer API讲解实战1.1 封装配置属性public static Properties getProperties(){ Properties props = new Properties(); props.put("bootstrap.servers", "ip:9092"); //props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "ip:9092");
2022-03-31 19:06:50 1500
原创 Kafka学习(五)
一.生产者发送到Broker分区策略和常见配置讲解生产者发送到broker里面的流程是怎样的呢,一个 topic 有多个 partition分区,每个分区又有多个副本1.如果指定Partition ID,则PR被发送至指定Partition (ProducerRecord)2.如果未指定Partition ID,但指定了Key, PR会按照hash(key)发送至对应Partition3.如果未指定Partition ID也没指定Key,PR会按照默认 round-robin轮训模式发送到每个Par
2022-03-31 18:54:15 1322
原创 Kafka学习(四)
一. SpringBoot2.X项目整合-Kafka核心API-Admin实战1.1 新版SpringBoot2.X项目搭建整合Kafka客户端新版SpringBoot2.X介绍:官网Github地址官方文档相关软件环境和作用JDK1.8+以上Maven3.5+编辑器IDEA(旗舰版)在线创建在SpringBoot整合kafka很简单:添加依赖 kafka-clients<dependency> <groupId>org.apache.kafk
2022-03-31 18:42:33 839
原创 Kafka学习(三)
一.Kafka命令行生产者发送消息和消费者消费消息实战创建topic./kafka-topics.sh --create --zookeeper ip:2181 --replication-factor 1 --partitions 2 --topic xdclass-topic查看topic./kafka-topics.sh --list --zookeeper ip:2181生产者发送消息/kafka-console-producer.sh --broker-list ip:9092
2022-03-31 15:27:47 810
原创 Kafka学习(二)
一. 急速部署-Kafka相关环境准备和安装JDK81.1 需要的软件和环境版本说明kafka-xx-yy:xx 是scala版本,yy是kafka版本(scala是基于jdk开发,需要安装jdk环境)下载地址zookeeper:Apache 软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册.下载地址JDK8步骤:1.上传安装包(zk、jdk、kafka)2.安装jdk:3.配置全局环境变量4.解压:tar -zxvf jdk-8u181-
2022-03-29 01:44:59 1269
原创 Kafka学习(一)
一.分布式流处理平台Kafka快速认知kafka的核心是一种高吞吐量的分布式流处理平台,它可以处理消费者在网站中的所有动作流数据。比如 网页浏览,搜索和其他用户的行为等,应用于大数据实时处理领域。快速认识概念:Broker:Kafka的服务端程序,可以认为一个mq节点就是一个broker. broker存储topic的数据Producer生产者:创建消息Message,然后发布到MQ中,该角色将消息发布到Kafka的topic中Consumer消费者:消费队列里面的消息。**Broker:类比
2022-03-29 00:12:42 647
原创 Spring学习总结二
一.IOC 操作 Bean 管理(概念)什么是 Bean 管理(0)Bean 管理指的是两个操作(1)Spring 创建对象(2)Spirng 注入属性Bean管理操作有两种方式(1)基于 xml 配置文件方式实现(2)基于注解方式实现...
2021-10-16 13:14:57 80
转载 Centos7安装mysql5.6
Centos7 安装mysql5.6检查系统中否安装Mysql检查系统中否安装Mysqlrpm -qa |grep mysql
2021-04-27 15:52:14 199
原创 快速排序详解
快速排序假如现在对6 1 2 7 9 3 4 5 10 8这10个数进行排序。首先在这序列中找到一个基准数作为参考。为了方便,这里可以使用6作为基准数。接下来,需要将这个序列中所有比基准数大的数放在6的右边,比基准数小的数放在6的左边,类似下面这种排列。3 1 2 5 4 6 9 7 10 8快排的实现其实:分别从初始序列“6 1 2 7 9 3 4 5 10 8”两端开始“探测”。先从右往左找一个小于6的数,再从左往右找一个大于6的数,然后交换他们。
2021-01-07 23:58:24 234
原创 插入排序详解
插入排序详解插入排序的原理很简单,讲一组数据分为两组,分别称为有序组与待插入组,每次从待插入组中取一个元素,然后与有序的元素进行比较,并找到合适的位置,然后将该元素插到有序组当中。这样的话,每次插入一个元素,有序组增加,待插入组减少,一直到待插入元素个数为0,当然,插入过程涉及到元素移动,这一点不能忽略了。一般为了方便,都会把第一个元素作为有序组,其他的均为待插组。这里有动图的演示:链接: link代码演示:#include<stdio.h>void InsertSort(int
2021-01-07 23:30:44 158 1
转载 linux 互斥量和条件变量
原文地址:http://blog.chinaunix.net/uid-27164517-id-3282242.html
2020-07-24 14:43:20 159
原创 匿名管道和有名管道
匿名管道和有名管道进程间通信(IPC)每个进程有各自不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到。所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间中拷贝到缓冲区,进程2再从缓冲区把数据读走。内核提供的这种机制就是进程间通信。通信需要媒介,两个进程间通信的媒介就是内存。通信的原理就是让两个或多个进程能够看到同一块共同的资源,这块资源一般都是...
2019-10-18 09:49:56 1217
原创 SQL CREATE TABLE语句
SQL CREATE TABLE语句CREATE TABLE 语句用于创建数据库中的表SQL CREATE TABLE 语法CREATE TABLE 表名称(列名称1 数据类型,列名称2 数据类型,列名称3 数据类型,…)数据类型(data_type)规定了列可容纳何种数据类型。下面的表格包含了SQL中最常用的数据类型:数据类型 描述integer(size)int(s...
2019-10-17 10:06:48 803
原创 linux之进程的execl函数族
linux进程里面的execl族及其基础的实验函数族说明fork() 函数用于创建一个新的子进程,该子进程几乎复制了父进程的全部内容,但是,这个新创建的子进程如何执行呢?exec 函数族就提供了一个在进程中启动另一个程序执行的方法。它可以根据指定的文件名或目录名找到可执行文件,并用它来取代原调用进程的数据段、代码段和堆栈段,在执行完之后,原调用进程的内容除了进程号外,其他全部被新的进程替换了。...
2019-10-15 16:33:30 838
原创 Linux之进程
linu之进程详解进程控制块(PCB)在Linux中task_struct结构体即是PCB。PCB是进程的唯一标识,PCB由链表实现(为了动态插入和删除)。进程创建时,为该进程生成一个PCB;进程终止时,回收PCB。PCB包含信息:1、进程状态(state);2、进程标识信息(uid、gid);3、定时器(time);4、用户可见寄存器、控制状态寄存器、栈指针等(tss)每个进程都有一个...
2019-10-14 17:44:53 175
原创 linux网络通信之UDP
linux网络通信之UDP一、基本的udp socket编程1. UDP编程框架要使用UDP协议进行程序开发,我们必须首先得理解什么是什么是UDP?这里简单概括一下。UDP(user datagram protocol)的中文叫用户数据报协议,属于传输层。UDP是面向非连接的协议,它不与对方建立连接,而是直接把我要发的数据报发给对方。所以UDP适用于一次传输数据量很少、对可靠性要求不高的或...
2019-10-14 17:15:45 886
原创 linux之间的网络通信
linux之间的网络通信TCP:一 .进程是如何进行网络通信的?socket通信的过程?同一机器上的不同进程之间的通信方式有很多种,主要使用消息传递或共享内存。而跨网络的进程是几乎都是使用socket通信,例如web服务器,QQ。socket即是一种特殊的文件,操作系统提供了一些socket函数就是对其进行的操作(读/写IO、打开、关闭),进程间的通信就是靠读写各自的socket完成的。...
2019-10-14 16:49:04 1628
原创 c++内存管理操作符重载
内存管理操作符new,new[],delete和delete[]同样也可以进行操作符重载,其重载形式既可以是类成员函数的形式,又可以是顶层函数的形式。在设计一般的程序时,使用内建的内存管理操作符基本够用了,只有在需要进行自己内存管理时才会对内存管理操作符进行重载。操作符new的重载函数有两种形式:void *类名::operator new(size_t size){//以类成员函数的形式...
2019-04-23 16:00:22 140
shell下面的Iflash32 工具包
2019-04-26
Windows Server 2012 r2,2010 r2 安装 Net Framework3.5(包含.Net2.0/.Net3.0)
2018-12-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人