- 博客(221)
- 收藏
- 关注
原创 oracle笔记
标题 1.ORA-01000: 超出打开游标的最大数 关闭ResultSet。 ResultSet resultSet = statement.executeQuery(exeString); resultSet.close();
2021-12-30 16:54:59
714
原创 ubuntu命令
所有命令都要用sudo开头 5.1.重启 Sudo reboot 5.2.Apt Apt是debian的软件包 Apt-get install package安装 Apt-get remove package卸载 5.3.Curl 文件传输命令 -O 保留远程文件名 -R 保留远程文件时间 如curl -R -O http://www.lua.org/ftp/lua-5.3.0.tar.gz 5.4.Dpkg Debian安装软件 -l 显示已安装软件列表 5.5.Su切换用户 su切换到root, 需要输
2021-08-13 15:33:50
385
原创 ubuntu安装软件
4.1.Ssh连接 secureCRT连不上服务器,报错The remote system refused the connection。需要安装ssh。 SSH分客户端openssh-client和openssh-server 默认只安装openssh-client, 安装openssh-server提供ssh服务 dpkg -l | grep ssh lipo@lipo-virtual-machine:~$ dpkg -l|grep ssh ii libssh-4:amd64
2021-08-13 15:30:27
428
原创 ubuntu问题
2.快捷键 Ctrl+win+D, 显示桌面 3.问题 3.1.调整桌面尺寸 安装ubuntu后, 桌面太小. Vmware- 虚拟机- 安装vmware tools. 拷贝vmwareTools.tar.gz到桌面, ctrl+win+D显示桌面. 解压后, 进入vmware-tools-distrib 右键- 打开终端, 默认目录是当前目录. sudo ./vmware-install.pl 输入密码, yes 一路enter和yes 最后出现enjoy, 安装结束 Reboot重启后, 桌面就最大化了
2021-08-13 15:28:29
412
原创 map和flatMap
map比较简单,一生一,可以抽取列表元素的某个属性形成新的列表 flatMap一生多,对数组进行流封装,把数组的元素都进入同一个流中 String[] arr = {"asd","dfg"}; //两行代码效果相同 //List<String> collect = Arrays.stream(arr).flatMap(a -> Arrays.stream(a.split(""))).distinct().collect(Collector
2021-03-26 11:17:25
336
原创 格式化字符串
MessageFormat和String都有format方法,用法不同。 前者用{}和数字(0开始)填充,后者用%和类型填充 String sd = MessageFormat.format("aa{0}-{1}", "sd","123"); System.out.println(sd); String format = String.format("你好%3d,%s", 2, "呵呵"); System.out.println(format
2021-03-24 14:56:28
139
原创 docker问题
4.1.Cannot connect to the Docker daemon. Is ‘docker -d’ running on this host? 启动docker服务,service docker start 4.2.去掉sudo Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdoc
2021-03-10 21:19:14
313
原创 3.Dockerfile
dockerfile的命令都是大写的,比如:FROM、RUN等 一条指令构建一层, 创建一个新的容器 3.1.FROM基础镜像 必须是第一条指令 FROM nginx服务镜像 FROM ubuntu 基础的操作系统镜像 Scratch空白镜像 FROM scratch 不以任何镜像为基础 3.2.COPY复制文件到容器中 COPY ./test test 容器中当前路径是/ 等价于COPY ./test /test 3.3.RUN执行命令 新建立一层,在其上执行这些命令,执行结束后, commit 这一层的
2021-03-10 21:16:10
551
原创 docker使用
2.1.命令帮助 Docker查看docker所有命令 Docker run --help查看具体命令使用说明 2.2.镜像 镜像网站 https://hub.docker.com/explore/ 所有镜像都在这里 2.2.1.列出本机上的镜像 Docker images, REPOSITORY:表示镜像的仓库源 TAG:镜像的标签 IMAGE ID:镜像ID CREATED:镜像创建时间 SIZE:镜像大小 同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,如ubuntu仓库源里,有15.10
2021-03-10 21:13:19
281
原创 docker安装
Windows 从阿里云http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/ 下载DockerToolbox-1.10.0.exe 点击桌面的Docker Quickstart Terminal运行报错。 运行开始菜单docker的相同命令,启动成功 单还是报错 安装失败 centos Centos6.5以上,内核要求2.6.32-431 以上。 或centos7,内核要求3.10以上。 查看内核版本 Uname -r 或unam
2021-03-10 21:07:23
205
原创 死锁
死锁 指两个线程互相持有锁,等待对方的锁。 举例 public static void main(String[] args) { dead_lock(); } private static void dead_lock() { // 两个资源 final Object resource1 = "resource1"; final Object resource2 = "resource2"; // 第一个线程,想先占有resour
2021-03-06 21:08:29
177
原创 seata原理
https://www.jianshu.com/p/044e95223a17 at模式,Automatic Transaction自动模式
2021-03-01 15:57:06
215
转载 mysql索引讲解最好
https://blog.csdn.net/m0_47157676/article/details/108987164?utm_medium=distribute.pc_feed.none-task-blog-personrec_tag-7.nonecase&depth_1-utm_source=distribute.pc_feed.none-task-blog-personrec_tag-7.nonecase&request_id=5f84d885dfc5717f9a3e99e6
2020-10-16 15:17:34
148
原创 字符串常量池
原理 编译后,每个class文件都有常量池表,存储所有常量,包含了字符串常量 运行后,每个class文件都有一个运行时常量池。 字符串常量池是一个hashtable,存储的是字面量"abc"和创建的字符串对象的引用之间的映射。字符串常量池是全局只有一个,在堆中。而常量池表和运行时常量池是每个class文件都有一份。 字符串常量进入运行时常量池的时候,使用equals方法,先进行字符串常量池是否存在的判断,不存在就创建对象,存储映射,返回对象的引用。使用了享元模式。 举例 在*.java文件中有如下代码: i
2020-10-12 10:44:05
1051
原创 帆软报表
下载软件 最新版本10 https://www.finereport.com/product/download 版本9要到百度搜索下载 教程 https://bbs.fanruan.com/edu/guide/finereport/3.html 自定义函数 1.把finereport的WEB-INF内的lib拷贝到本项目中 C:\FineReport_10.0\webapps\webroot\WEB-INF\lib 2.lib添加到library 3.写自定义函数,继承AbstractFunction 接受
2020-10-09 09:27:14
726
原创 flyway使用
添加依赖 <dependency> <groupId>org.flywaydb</groupId> <artifactId>flyway-core</artifactId> <version>5.1.1</version> </dependency> 配置 spring: flyway: base
2020-09-08 10:30:58
632
原创 binlog
主库把ddl,dml写入binlog 从库通过io线程,读取主库的binlog,复制到relaylog 从库通过sql thread读取relaylog,重放sql 事务提交后,sql写入binlog
2020-08-13 21:42:26
199
原创 线程状态
1.创建:new出来 2.就绪:start() 3.运行 4.阻塞,3种 (1)等待阻塞,wait方法 (2)同步阻塞,等待锁 (3)其他阻塞,sleep和join 5.结束
2020-08-13 21:22:31
154
原创 sleep、wait、yield、join区别
1.wait wait是Object方法,释放锁,等线程代码执行完后释放锁的。 wait必须在同步代码块中,用notify唤醒 2.sleep sleep是Thread方法,sleep释放cpu,sleep(n)在n毫秒内不竞争cpu 不释放锁。 线程进入阻塞状态 3.yield 不释放锁,释放cpu,线程重回就绪状态,有可能再次执行 4.join 调用join的线程执行结束后,当前线程继续执行。 当前线程里调用其它线程1的join方法,当前线程阻塞,但不释放对象锁,直到线程1执行完毕或者millis时间到
2020-08-13 21:17:53
248
原创 topk算法
从1一个数中,取出前100个最大数。 最小堆排序。 1.首先读入前100个数,用最小堆排序,时间复杂度为O(klogk)(k为数组的大小即为100)。 2.然后遍历后续的数字,并于堆顶(最小)数字进行比较。如果比最小的数小,则继续读取后续数字;如果比堆顶数字大,则替换堆顶元素并重新调整堆为最小堆。整个过程直至1亿个数全部遍历完为止。 该算法的时间复杂度为O(nklogk),空间复杂度是100(常数)。 ...
2020-08-06 22:02:17
479
原创 分布式id-数据库实现
mysql数据库,建立一个独立的数据库,对应一个独立的微服务。 通过id表和分布式锁实现分布式id。 建立一个id表 CREATE TABLE `rys_distribute_id` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', `name` varchar(64) NOT NULL DEFAULT '' COMMENT 'id名称', `init_value` int(11) NOT NULL DEFAULT '0'
2020-07-25 15:46:52
461
转载 学习笔记(1):activiti6.0从入门到精通-设置流程变量(概述)
简介: Activiti项目是一项新的基于Apache许可的开源BPM平台,从基础开始构建,旨在提供支持新的BPMN 2.0标准,包括支持对象管理组(OMG),面对新技术的机遇,诸如互操作性和云架构,提供技术实现。 工作流是什么:(WorkFlow)是对工作流程及其各操作步骤之间业务规则的抽象,概括描述 即将工作流程中的工作如何前后组织在一起的逻辑和规则,在计算机中以恰当的...
2020-07-02 16:53:56
268
原创 activiti6使用
1.下载acitiviti6 官网慢的话,到百度网盘搜索 idea按住嗯actiBPM插件 2.创建boot项目 依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.3.RELEASE<
2020-07-02 11:31:35
2349
原创 idea使用activiti插件
1.插件安装 file-setting-plugins 从磁盘安装插件actiBPM 2.使用插件 画完流程图,中文名称可能乱码 两个文件最后一行添加 -Dfile.encoding=UTF-8 重启idea
2020-07-01 11:11:48
1193
原创 Redis为什么是单线程的
因为Redis是基于内存的操作,CPU不是Redis的瓶颈,Redis的瓶颈最有可能是机器内存的大小或者网络带宽。既然单线程容易实现,而且CPU不会成为瓶颈,那就顺理成章地采用单线程的方案了。 二、详细原因: 1、不需要各种锁的性能消耗 Redis的数据结构并不全是简单的Key-Value,还有list,hash等复杂的结构,这些结构有可能会进行很细粒度的操作,比如在很长的列表后面添加一个元素,在hash当中添加或者删除 一个对象。这些操作可能就需要加非常多的锁,导致的结果是同步开销大大增加。 总之,在单线
2020-06-23 21:33:27
260
原创 Redis事务与MySQL事务的区别
事务命令 mysql: Begin:显式的开启一个事务 Commit:提交事务,将对数据库进行的所有的修改变成永久性的 Rollback:结束用户的事务,并撤销现在正在进行的未提交的修改 redis: Multi:标记事务的开始 Exec:执行事务的commands队列 Discard:结束事务,并清除commands队列 默认状态 mysql: mysql会默认开启一个事务,且缺省设置是自动提交,即每成功执行一次sql,一个事务就会马上commit,所以不能rollback redis: redis默认不
2020-06-22 22:46:55
808
原创 apollo使用
企业级配置中心,比cloud的config好用很多 使用说明https://gitee.com/lepdou/apollo/ 先看quick start,里面很多信息,在分布式部署都没讲。 添加部门 集群配置后,左上角变化。 添加namespace后,右边配置分成好几块了 单机熟悉后,再安装分布式的。 ...
2020-04-03 11:19:23
318
原创 入参为字符串用日期对象接收
@PostMapping("/seataTest") public Result seataTest(@RequestBody CreateOrderRequest request) { return openOrderService.seataTest(request); } @Data public class CreateOrderRequest...
2020-04-02 11:15:05
568
原创 vue创建项目
1.安装node.JS https://nodejs.org/dist/ 安装最新版本 2.安装webpack npm install webpack -g webpack -v 3.安装vue-cli 删除C:\Users\Administrator\AppData\Roaming\npm\node_modules的vue-cli目录 npm install -g @vue/cli 全局安装 v...
2020-01-25 23:00:48
552
1
原创 jetCache使用
配置 boot依赖 <dependency> <groupId>com.alicp.jetcache</groupId> <artifactId>jetcache-starter-redis</artifactId> <version>2....
2020-01-16 16:25:26
1270
原创 两个方法事务调用问题
方法a调用方法b,两个方法都使用事务,易出错的问题 @Autowired private OrderService orderService; @Transactional public void methodA() { try{ orderService.methodB(); } catch (Excep...
2020-01-15 16:53:34
2044
原创 spring-aspectj的几个aop注解
通知(Advice)类型的说明 @Before 前置通知(Before advice) :在某连接点(JoinPoint)——核心代码(类或者方法)之前执行的通知,但这个通知不能阻止连接点前的执行。为啥不能阻止线程进入核心代码呢?因为@Before注解的方法入参不能传ProceedingJoinPoint,而只能传入JoinPoint。要知道从aop走到核心代码就是通过调用ProceedingJi...
2020-01-10 15:20:04
658
原创 @Intercepts-mybatis拦截器
查询拦截器 package org.study.mybatis.config; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.cache.CacheKey; import org.apache.ibatis.executor.Executor; import org.apache.ibatis.mapping.BoundSq...
2019-12-19 18:33:48
6610
原创 InheritableThreadLocal使用
子线程可以使用父线程的值,ThreadLocal不可以 无初始值 private static final ThreadLocal<String> TL = new ThreadLocal<>(); private static final InheritableThreadLocal<String> ITL = new InheritableT...
2019-12-19 17:21:45
495
原创 redis限流
计数器限流,时间段一个计数器,超过指定值,就返回错误。 lua保证操作原子性。 zuul网关中,使用过滤器限流。 /** * 限流 * @author lipo * @version v1.0 * @date 2019-10-25 10:34 */ @Slf4j @Component public class LimitFilter extends OncePerRequestFilt...
2019-12-02 10:22:17
230
原创 boot2源码-事务
jdbc事务 public void test(){ String url = "jdbc:mysql://localhost:3306/test"; String username = "root"; String password = "root"; String sql = "update blog set name = ? where id=?"; ...
2019-11-25 16:52:01
146
原创 redis用HyperLogLog计算UV
UV:unique visitor,独立访客,数据去重 DV:distinct value,去重统计,如上面的UV。 用redis的set去重,用户多时,比如微信月活10亿,就会占用很多内存。 用HyperLogLog,最多12k内存,可以统计2^64=100亿亿个值,当然是模糊统计,误差0.81%。 对于UV,可以有误差,比如10亿和10亿一千万,差别不大。 使用 public Obj...
2019-11-22 17:45:32
469
原创 redis用zset做延时消息
把执行时间作为分数,存到zset中。 定时任务,分数倒序取出第一个,小于当前时间,说明消息可以执行了 发送延时消息服务 public Object publishDelayedMsg() { OrderDTO dto = new OrderDTO(); dto.setId(1); dto.setCreateTime(new Date());...
2019-11-22 14:43:21
1152
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅