- 博客(255)
- 资源 (2)
- 收藏
- 关注
原创 使用Kettle实现数据实时增量同步
1. 步骤以及思路:通过中间表记录每次更新的时间戳,在下一个同步周期时,通过这个时间戳同步该时间戳以后的增量数据。这是时间戳增量同步。源数据表:CREATE TABLE `im_message` ( `id` int(11) NOT NULL AUTO_INCREMENT, `sender` varchar(45) COLLATE utf8_bin NOT NULL COMMENT '消息发送者:SYSTEM', `send_time` datetime(6) NOT NULL,..
2021-09-17 16:03:05
3064
原创 centos数据盘挂载
磁盘挂载:1、查看服务器未挂载磁盘fdisk -l2. 查看磁盘文件系统、挂载点信息等lsblk -f3. mkfs.ext4 /dev/vdb 格式化vdb为ext4格式4、创建挂载点目录、挂载数据盘、查看挂载情况mkdir /data 创建挂载点目录mount /dev/vdb /data 挂载数据盘df -h 查看磁盘挂载情况5. 设置磁盘开机自挂载vim /etc/fstab 打开开机自挂载配置文...
2021-09-07 09:57:01
928
转载 Spring Security Oauth2总结
Spring Security Oauth2Spring Security Oauth2 单点登录 第三方授权
2021-07-29 14:30:44
159
原创 Post以及Get请求接口参数接收
1. Get方式:通过 @RequestParam()接收;Post方式:通过 @RequestBody Map param 接收,Map类型也可以改为类对象类型;同时使用@RequestParam() 以及 @RequestBody 此种情况,接口为POST方式;
2021-07-01 10:14:57
971
原创 Oracle 数据库查询数据库实例所有表以及数据总量
select * from equip;select * from all_tables t where t.owner = 'GCLOUD_TSGZ';select t.num_rows from all_tables t where t.owner = 'GCLOUD_TSGZ';select sum(t.num_rows) from all_tables t where t.owner = 'GCLOUD_TSGZ';select t.owner,t.tablespace_name,t.ta.
2021-06-29 09:46:10
5145
原创 js中常用数据对象操作
var map = new Map(); map.set("key","value0"); map.set("key1","value1"); map.set("key2","value2"); console.log("wenwenwen"); map.forEach(function (item) { .
2021-06-21 15:57:40
196
原创 windows下redis以及Nginx进程端口操作
windows下Nginx以及进程端口操作windows启动redis在power shell命令行当中安装目录 D:\Program Files\redis ./redis-server.exe redis.windows.conf ./redis-cli.exe.\bin\windows\kafka-server-start.bat .\config\server.properties2021-04-02Nginx启动:打开cmd命令窗口,切换到nginx目录下,输入命令
2021-04-02 14:55:34
410
原创 Maven依赖深入理解
optional是Maven依赖jar时的一个选项,表示该依赖是可选的,项目之间依赖不传递。不设置optional(默认)或者optional是false,表示传递依赖。parent继承的情况如果A的pom像下面这样配置:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2
2021-01-22 17:44:46
369
原创 netty特点以及线程模型
零拷贝 hard driver -- 内核缓冲区 -- protocol engine 只有DMA拷贝 避免了cpu拷贝这里其实有一次 cpu拷贝 kernel buffer -- socket buffer 但是拷贝的信息很少可以忽略;传统阻塞IO模型每个连接都需要独立的线程完成数据的输入,业务处理,数据返回;缺点:当并发很大时,就会创建大量线程,增大服务端压力;reactor模式1. 基于IO复用模型,多个连接共用一个阻塞对象2. 基于线程池复用线程资源,一个线程可以处理多个..
2021-01-09 23:55:01
184
原创 BIO与NIO
1.BIO示例package com.wenbo.bioTest;import java.io.IOException;import java.io.InputStream;import java.net.ServerSocket;import java.net.Socket;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/** * @Auther: 13213
2021-01-07 17:49:04
124
原创 数据结构常用
1. 二叉树弊端:单边增长时,会退化为链表;2. 红黑树是一种自平衡二叉树,在对红黑树进行添加或删除之后,会通过左旋、右旋、变色的方法保持红黑树的性质。3. B树叶子节点指针为空;所有索引元素不重复;节点中的数据索引从左到右递增;4. B+树非叶子节点不存储data,只存储索引,可以放更多的索引;叶子节点包含所有的索引字段;叶子节点用指针连接,提高区间访问的性能;...
2020-12-30 11:29:19
132
原创 Windows下kafka操作
1.启动在安装目录下执行如下(注意安装目录不能有空格).\bin\windows\kafka-server-start.bat .\config\server.properties
2020-12-16 17:35:38
556
原创 Mybatis传参方式总结
Mybatis 的Mapper.xml语句中parameterType向SQL语句传参有两种方式:#{}和${}我们经常使用的是#{},一般解说是因为这种方式可以防止SQL注入,简单的说#{}这种方式SQL语句是经过预编译的,它是把#{}中间的参数转义成字符串,举个例子:select * from student where student_name = #{name}预编译后,会动态解析成一个参数标记符?:select * from student where student_name = ?.
2020-12-16 10:17:31
240
原创 JDK,JRE,JVM三者的区别
JDK,JRE,JVM三者的区别jdk里面的jre与jdk外面的jre区别:相同点:这两个JRE都可以作为开发Java程序的运行环境。不同点:JDK里面的JRE是JDK自带的为其开发工具提供运行环境的JRE,JDK自带的开发工具只能使用JDK自己目录下的JRE,不能使用JDK外面的JRE,JDK外面JRE用于为Java程序提供运行环境。可以参考如下链接:JDK,JRE,JVM三者的区别...
2020-12-06 16:26:19
520
原创 Springboot启动分析
Springboot启动分析1. new出来一个 SpringApplication对象执行其run方法;此过程中,Spring Boot通过Spring的工厂方法加载应用上下文初始器;加载应用事件监听器;2. run方法返回 ConfigurableApplicationContext;3. 调用createApplicationContext()方法创建上下文对象,创建上下文对象同时会注册spring的核心组件类;4. 调用refreshContext() 方法启动Spring容器和内置的Se
2020-12-04 18:05:00
159
原创 数据库分区
分区就是把一个数据表的文件和索引分散存储在不同的物理文件中。建立一个user 表 以id进行分区 id 小于10的在user_1分区id小于20的在user_2分区create table user( id int not null auto_increment, username varchar(10), primary key(id))engine = innodb charset=utf8partition by range (id)( partition us...
2020-12-03 11:36:02
250
原创 多线程notify与wait
使用wait和notify方法实现线程之间的通信,注意,这两个方法是Object类的方法,也就是说Java为所有的对象都提供的这两个方法。1 wait和notify必须配合synchronized关键字使用。2 wait方法释放锁,notify方法不释放锁。3 涉及到线程之间的通信,就肯定会用到 volatile 修饰。import java.util.ArrayList;import java.util.List;/** * @Auther: 13213 * @Date: 2020/
2020-11-16 11:08:11
348
转载 观察者模式总结
观察者模式(又被称为发布-订阅(Publish/Subscribe)模式,属于行为型模式的一种,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。在观察者模式中有如下角色:Subject:抽象主题(抽象被观察者),抽象主题角色把所有观察者对象保存在一个集合里,每个主题都可以有任意数量的观察者,抽象主题提供一个接口,可以增加和删除观察者对象。ConcreteSubject:具体主题(具体被观察者),该角色将有关
2020-11-16 09:52:03
304
原创 vuex详解
computed用来监控自己定义的变量,该变量不在data里面声明,直接在computed里面定义,然后就可以在页面上进行双向数据绑定展示出结果或者用作其他处理;computed比较适合对多个变量或者对象进行处理后返回一个结果值,也就是数多个变量中的某一个值发生了变化则我们监控的这个值也就会发生变化,举例:购物车里面的商品列表和总金额之间的关系,只要商品列表里面的商品数量发生变化,或减少或增多或删除商品,总金额都应该发生变化。这里的这个总金额使用computed属性来进行计算是最好的选择与watch之间
2020-11-10 10:38:29
188
转载 使用vue-cli 2.x+webpack构建Vue项目
https://blog.youkuaiyun.com/sleepwalker_1992/article/details/82313821
2020-11-07 15:18:46
176
原创 Spring Ioc实现原理
使用反射机制+XML技术当web容器启动的时候,spring的全局bean的管理器会去xml配置文件中扫描的包下面获取到所有的类,并根据你使用的注解,进行对应的封装,封装到全局的bean容器中进行管理,一旦容器初始化完毕,beanID以及bean实例化的类对象信息就全部存在了,现在我们需要在某个service里面调用另一个bean的某个方法的时候,我们只需要依赖注入进来另一个bean的Id即可,调用的时候,spring会去初始化完成的bean容器中获取即可,如果存在就把依赖的bean的类的实例化对象
2020-11-06 15:45:12
186
原创 mysql数据库死锁的产生原因及解决办法
锁类型在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享锁(Share Locks,即S锁)。当数据对象被加上排它锁时,其他的事务不能对它读取和修改。加了共享锁的数据对象可以被其他事务读取,但不能修改。数据库利用这两 种基本的锁类型来对数据库的事务进行并发控制。死锁的第一种情况一个用户A 访问表A(锁住了表A),然后又访问表B;另一个用户B 访问表B(锁住了表B),然后企图访问表A;这时用户A由于用户B已经锁住表B,它必须等待用户B释放表B才能继续,同样用户B要等用户A
2020-11-05 15:28:27
232
原创 乐观锁与悲观锁及应用案例
乐观锁乐观锁不是数据库自带的,需要我们自己去实现。乐观锁是指操作数据库时(更新操作),想法很乐观,认为这次的操作不会导致冲突,在操作数据时,并不进行任何其他的特殊处理(也就是不加锁),而在进行更新后,再去判断是否有冲突了。实现原理:在表中的数据进行操作时(更新),先给数据表加一个版本(version)字段,每操作一次,将那条记录的版本号加1。也就是先查询出那条记录,获取出version字段,如果要对那条记录进行操作(更新),则先判断此刻version的值是否与刚刚查询出来时的version的值相等,如果
2020-11-05 11:09:56
298
原创 mysql事务机制
一、事务的基本要素(ACID)1、原子性(Atomicity)2、一致性(Consistency)3、隔离性(Isolation)4、持久性(Durability)二、事务的并发问题 1、脏读:事务A读取了事务B更新的数据,然后B回滚操作,那么A读取到的数据是脏数据 2、不可重复读:事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中,对数据作了更新并提交,导致事务A多次读取同一数据时,结果 不一致。 3、幻读:系统管理员A将数据库中所有学生的成绩从具体分数改为ABCDE等
2020-11-04 17:04:55
515
原创 vue中dispatch与commit使用
dispatch:含有异步操作,例如向后台提交数据,写法: this.$store.dispatch('action方法名',值)commit:同步操作,写法:this.$store.commit('mutations方法名',值)
2020-10-12 10:40:16
26767
原创 synchronized同步代码块
特性1. synchronized(非this对象x)同步代码块格式进行同步操作时,对象监视器必须为同一个,如果不是同一个,运行结果就是异步调用了,就会交叉运行;示例1:package thread;/** * @Auther: 13213 * @Date: 2020/9/25 17:24 * @Description: */public class Service { private String usernameParam; private String pass
2020-09-27 09:06:04
449
原创 横表、纵表以及表字段查询通用sql总结(Oracle)
1.横表与纵表示例1:示例2:示例3:oracle数据库中表字段注释表:2.通用类SQL//获取当前用户表SELECT * FROM USER_TABLES t;//获取指定用户表SELECT * FROM ALL_TABLES t WHERE t.OWNER='ICIFNEW'; //获取表字段select * from user_tab_columns t where t.TABLE_NAME = 'ECUSR';//获取表注释select * f..
2020-09-03 13:17:49
1113
原创 Map循环的几种方法
public static void main(String[] args) { Map<String, String> map = new HashMap<String, String>(); map.put("1", "value1"); map.put("2", "value2"); map.put("3", "value3"); //第一种:普遍使用,二次取值 System.out.println("通过Map.keySet遍历k
2020-07-22 22:49:25
7473
原创 对list中的map进行key去重值合并去重
public static void main(String[] args) { List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); Map<String, Object> map1 = new HashMap<String, Object>(); map1.put("id", 1); .
2020-07-19 17:49:04
1381
1
原创 Array、List、Set基本操作
1.数组排序与输出demo1:public class Test1 { public static void main(String[] args) {// List list = arr2list();// Set set = arr2set();// System.out.println(list);// System.out.println(set);// List list = set2list();.
2020-07-19 16:40:07
479
原创 关联查询经典案例
例1场景:有用户表sys_user,用户岗位关联表 sys_user_post ,岗位表sys_postSELECT * from sys_user t;SELECT * from sys_user_post t;SELECT * from sys_post t;字段如下:查询用户名称以及该用户的岗位名称信息:过程如下:SELECT u.user_name,up.post_id from sys_user u LEFT JOIN sys_user_post up on.
2020-06-21 14:34:22
711
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人