- 博客(137)
- 资源 (2)
- 收藏
- 关注
原创 重启服务器前后需要做的事
重启前1. 看服务器启动了哪些应用,并导入记录到本地ps看哪些应用正在运行(more–>空格或回车翻页)ps -ef|more如tomcat、apache的httpd、zookeeper、memcache、还有springboot springcloud项目、solr等等服务。导出ps信息到本地ps -ef > ps.txtsz ps.txt看哪些端口在...
2019-08-30 10:51:03 1602
原创 mybatis sum(参数) 列名作为参数
项目中有很多个字段,当字段为空的时候,求该列的平均值并赋值给该字段。如:idnameage当我需要插入一条数据的时候,这条数据的age为空,那么需要先从数据库查询age的平均值,然后赋值给当前的数据。当字段很多的时候就需要列名作为参数查询了mapper.xml <select id="getGtAvg" parameterType="java.lang...
2019-07-18 17:25:55 6813
原创 springboot2.1.3整合dubbo2.6.5(提供者、消费者Demo 注解方式无xml)
linux中启动zookeeperdubbo-apipublic interface DubboDemoService { List&amp;amp;lt;Brand&amp;amp;gt; findAll();}dubbo-providerpom.xml&amp;amp;lt;dependencies&amp;amp;gt; &amp;amp;lt;dependency&am
2019-02-21 10:31:07 1175
原创 springboot 使用Tomcat虚拟目录上传图片
使用Tomcat作为虚拟图片服务器做为开发环境1、tomcat – conf – server.xml 文件中配置虚拟目录可手动在F盘下新建目录否则,tomcat启动将报错。也可以启动springboot程序校验是否存在目录,不存在mkdir。配置成功后可以先在该目录下放置一张图片,然后访问http://localhost:8888/pic/&lt;文件名&gt;,端口号可在配置文件中设置...
2019-01-30 10:00:55 1564
原创 JAVA常用端口
默认端口号应用21FTP(文件传输)22SSH(安全登录)、SCP(文件传输)、端口重定向23Telnet(远程登录)80HTTP服务器1433SQL Server数据库server1434SQLServer数据库monitor1521Oracle 数据库1158ORACLE EMCTL2100Oracle XD...
2019-01-15 15:54:30 6069 2
原创 java常用缩写(pojo、DAO、EAO、DTO)
Domain Object(领域对象)层。此层由一系列的POJO(Plain Old Java Object,普通的、传统的java对象)组成,这些对象是该系统的Domain Object(领域对象),往往包含了格子所需的业务逻辑方法。DAO(Data Access Object,数据访问对象)层。此层由一系列的DAO 组件组成,这些DAO 实现了对数据库的创建、查询、更新和删除(CRUD)等...
2018-12-25 21:41:22 3710 1
原创 二进制巧妙运用-二进制存多个布尔类型状态值
两个数交换位置:int a = 1;int b = 2;如何交换ab两个变量的值?①使用第三个变量来接收int c = 0;c = a; //c 等于1a = b; // a 等于2b = c; // b 等于1当然灵活运用,这种方式肯定是不推荐的啦!②刷新一下你对小学数学的理解a = a + b; // a 等于3b = a - b; // b 等于1a = a...
2018-12-20 23:22:59 1405 1
原创 maven的本地仓库dos命令
删除本地仓库所有的.lastUpdate结尾的文件for /r %i in (*.lastUpdated) do del %i把本地jar包安装到本地仓库mvn install:install-file -DgroupId=org.mybatis -DartifactId=mybatis -Dversion=3.2.7 -Dpackaging=jar -Dfile=myb...
2018-12-19 22:45:39 743
原创 Eclipse安装lombok,项目中所有get、set方法报错
Lombok是能自动接通编辑器和构建工具的一个Java库。最大的特点是不用再一次写额外的getter或者equals方法。然而项目已经导入了lombok-1.16.6.jar,仍然报错,或者说lombok的jar包没有生效,经过查阅资料才知道,是lombok插件没安装,查询其官网能看到安装方式,如下图所示:点我进入 lombok的官网点击进来之后便是如图所示界面:大致意思便是,双击打开官...
2018-12-19 22:24:09 11124 1
原创 拦截器(Interceptor)与过滤器(Filter)的区别与使用
Filter:过滤器Interceptor:拦截器过滤从客户端向服务器发送的请求。(既可拦截Action,也可拦截静态资源,如:html、css、js、图片等)拦截是客户端对Action的访问。更细粒度化的拦截。(拦截Action中的具体的方法)使用方法:拦截器:Interceptor作用:主要是拦截Action用法:1、定义一个拦截器类a、实现Inter...
2018-12-19 19:42:55 328
原创 SQL书写顺序及执行顺序
在使用MyBatis的时候,经常需要自己手写SQL,多条件查询的时候很容易只关注条件的拼接,而不注意limit或者group by 的顺序。这里只列出SQL书写顺序,至于执行顺序,可参考SQL语句执行顺序-萌小Q-博客SQL调优SELECT DISTINCT <select_list>FROM <left_table><join_type> JOIN &...
2018-12-19 18:49:41 1062
原创 工作中常见的运行环境、编码问题——java
1. 运行环境:(Eclipse)①右键工程–>properties–>Java Compiler–>Compiler compliance level(编译时JDK版本)②右键工程–>BuildPath–>Configure BuildPath–>Add Library–>JRE System Library(运行时JDK版本)③右键工程–>...
2018-12-18 20:51:53 745 2
原创 远程桌面无法复制粘贴
这个时候,要先确定一下是不是ctrl一直被按着了,如果一直被按着,就是 Fn + Ctrl + Alt。远程办公经常会远程桌面,比如向日葵,todesk等等。但是在一些特殊情况下,复制粘贴经常失灵。如果ctrl没问题,那就多按几下ctrl ,然后在按Ctrl + c ,Ctrl + v。
2022-11-30 11:29:09 16230 1
原创 MySQL按照拼音排序
mysql里面按照拼音进行排序ORDER BY CONVERT(name USING GBK) ORDER BY CONVERT(name USING GBK)
2022-03-17 14:28:38 1289
原创 算法-牛客(质数、字符串排序lambda)
1. 最后一个单词的长度从最后一个字符开始遍历计数,到空格为止2. 计算某个字符出现次数将该字符替换为空白,然后用总长度减去替换后的长度3.去重排序使用TreeSet((a,b)->{return a-b}) 来去重排序在牛客里scan.hasNextInt可以跳出循环,但是idea需要使用两个scan对象。4. 随机数8位输出不足补0将所有字符串%取余,补0后,拼一起。然后遍历打印5. 十六进制pow幂函数,但是都为double类型。可以在循环中反向遍历,迭代乘出幂结果6. 质
2022-03-02 10:02:51 265
原创 多线程-JUC-问题解决(饿汉式、哲学家就餐、交替输出)
1.饿汉式问题2. 哲学家就餐问题——死锁import lombok.extern.slf4j.Slf4j;import java.util.concurrent.TimeUnit;/** * 哲学家就餐问题——死锁 */@Slf4j(topic = "c.test")public class Test { public static void main(String[] args) { Chopstick c1 = new Chopstick("1");
2022-03-02 10:00:00 247
原创 多线程-JUC-学习笔记
多线程1.java线程内存模型JMMJMM数据原子操作read(读取):作用于主内存变量,把一个变量值从主内存传输到线程的工作内存中,以便随后的load动作使用load(载入):作用于工作内存的变量,它把read操作从主内存中得到的变量值放入工作内存的变量副本中。use(使用):作用于工作内存的变量,把工作内存中的一个变量值传递给执行引擎,每当虚拟机遇到一个需要使用变量的值的字节码指令时将会执行这个操作。assign(赋值):作用于工作内存的变量,它把一个从执行引擎接收到的值
2022-03-02 09:58:03 212
原创 Spring学习笔记
spring是一个框架,同时是一个容器,还是一个生态!。spring默认是单例的,支持循环引用。改为多例时,不支持。scope=“prototype”1.bean生命周期class —> 实例化 —> 对象 —> 属性填充(依赖注入:@Autowired的属性赋值) —> 初始化 —> AOP —> bean —> 销毁初始化: ①实现接口InitializingBean 重写afterPropertiesSet ②任意方法添加注解@PostC
2022-03-02 09:45:08 328
原创 SpringBoot学习笔记
1. springboot启动顺序@SpringBootApplication创建SpringApplication保存一些信息判定当前应用类型ClassUtils servletbootstrappers初始启动器,找spring.factories文件的Bootstrapper去spring.factories文件找ApplicationContextInitializer去spring.factories文件找ApplicationListener应用监听器运行SpringAp
2022-03-02 09:33:29 273
原创 SpringCloudAlibaba学习笔记
nacos:服务注册中心 原理就是:发送各种http请求,异步注册 双层map的注册表,没有加锁,CopyOnWrite思想 —— 读写分离;复制一个副本,在内存中,进行注册表修改,为了支撑高并发 有客户端的健康感知,通过心跳机制 实际就是一个Springboot 的 web项目,提供各种http接口(依赖ribbon)默认端口8848ribbon:服务发现 核心拦截器:LoadBalancerInterceptor。底层拦截器,定时轮询拉取,负载均衡Feign:生成代理 然后
2022-03-02 09:30:52 344
原创 SpringCloud五大组件笔记
1、Eureka 实现服务治理作用:实现服务治理(服务注册与发现)(类似于zookeeper)简介:Spring Cloud Eureka是Spring Cloud Netflix项目下的服务治理模块。由两个组件组成:Eureka服务端和Eureka客户端。Eureka服务端用作服务注册中心。支持集群部署。Eureka客户端是一个java客户端,用来处理服务注册与发现。在应用启动时,Eureka客户端向服务端注册自己的服务信息,同时将服务端的服务信息缓存到本地。客户端会和服务端周期性的进行心跳.
2022-03-02 09:27:56 223
原创 JVM- StringTable- String pool- 常量池
1 String类JDK1.8及之前 char[] (字符串常量池在堆中)JDK1.9 byte[]2 String不可变3 字符串拼接3.1 常量+常量 结果也在常量池 -> 编译期优化3.2 常量池不存在相同内容的常量3.3 只要有一个是变量,结果就不在常量池中,而在堆中new String()。原理StringBuilderString s3 = s2 + "d"; String s4 = "abcd"; (s3 == s4 false -> 堆中 new
2022-03-01 17:44:56 420
原创 JVM-垃圾回收
1 概念System.gc() = Runtime.getRuntime().gc() 会显示触发Full GC ,提醒jvm的垃圾回收器执行gc,无法保证对垃圾收集器的立刻调用System.runFinalization() 强制调用使用引用的对象的finalize()方法内存溢出:OOM ,没有空闲内存,并且垃圾收集器也无法提供更多内存 (1堆内存小 2大量对象)内存泄漏:对象不会再被程序用到,但GC又不能回收(宽泛意义:生命周期无效的延长,如局部变量变成成员变量)例:单例模式生命
2022-03-01 17:20:35 312
原创 JVM-基础概念原理
栈也叫方法栈,是线程私有的,线程在执行每个方法时都会同时创建一个栈帧,用来存储局部变量表、操作栈、动态链接、方法出口等信息。调用方法时执行入栈,方法返回时执行出栈。本地方法栈与栈类似,也是用来保存线程执行方法时的信息,不同的是,执行 Java 方法使用栈,而执行 native 方法使用本地方法栈。程序计数器保存着当前线程所执行的字节码位置,每个线程工作时都有一个独立的计数器。程序计数器为执行 Java 方法服务,执行 native 方法时,程序计数器为空。栈、本地方法栈、程序计数器这三个部..
2022-03-01 17:04:19 280
原创 MySQL5.7忘记密码(修改配置文件方式跳过授权)
在网上查看了很多资料来修改mysql的root账号密码,但是修改的时候总跟网上的教程里的不一样,不知道是不是因为版本原因。因此将解决办法和不同点都发上来,仅供参考,共同学习。1. 找到my.ini文件,配置跳过权限表my.ini文件,一般在隐藏文件夹ProgramData目录下的mysql里2. 在【mysqld】下配置skip-grant-tables3. 重启mysql服务这个方法就多了。可以使用mysql 自带的 MySQL Notifier。或者去windows的服务里面重启。或者在c
2022-02-08 13:19:46 6198
原创 MySQL language DDL/DML/DCL/DQL/DCL
DDL(Data Definition Language)数据定义语言 create/drop/alter/truncateDML(Data Manipulation Language)数据操作语言 insert/delete/updateDCL(Data Control Language)数据控制语言 grant/revokeDQL(Data Query Language)数据查询语言 seleteTCL(Transaction Control Language)事务控制语言 commit
2021-07-26 09:51:22 156
原创 MySQL高级(五)主从复制
读写分离 -> 数据一致性(主从复制原理)why:写锁、读不能读;热备;降低磁盘I/O日志:binlog(mysql server)、redolog(InnoDB 事务)、undolog(InnoDB 事务)从库两个线程(自带)IO thread :把二进制文件传递sql thread:读取relay log解析sql逐一执行mysql5.7之后使用MTS解决复制时间延迟主从复制搭建:主: 1、开启binlog日志,/etc/my.cnf设置二进制文件名称、日志格式、服务器
2021-07-26 09:51:03 145
翻译 MySQL高级(四)事务 MVCC 日志 锁
InnoDB -> ACID 原子性(不可分割,完全成功或失败)、一致性、隔离性、持久性(redo) -> begin; commit 还有自动提交、隐式提交的概念。保存点、 脏读(读到了其他事务未提交的修改数据) 不可重复读(读到了其他事务提交的数据) 幻读(新增数据导致其他事务未提交的数据) 幻读产生原因:行锁只能锁住行,即使把所有的行记录都上锁,也阻止不了新插入的记录 处理方式:加锁、事务隔离、MVCC加锁:脏读:在修改时加排它锁,直到事务提交时释
2021-07-26 09:50:44 197
原创 MySQL高级(三) 引擎
数据库表级别的存储引擎MyISAM: 文件: .frm(表结构) .MYD(数据) .MYI(索引)InnoDB: 文件: .frm(表结构) .ibd(数据+索引) 支持事务、支持行级锁、支持外键 支持XA事务、支持savePoints mysql数据默认存在mysql安装目录的data目录 聚集索引:叶子节点包含了完整的数据和索引,一个文件中查找 (InnoDB的主键索引) 非聚集索引:一个文件存索引、一个存数据问题1为什么InnoD
2021-07-26 09:49:22 82
原创 MySQL高级(二) 优化 explain
数据库优化: 1>数据库设计–三大范式 2>数据库索引 3>分表分库(水平分割,垂直分割) 4>读写分离 5>存储过程(模块化编程,可以提高速度) 6>对MySQL配置优化(配置最大并发数my.ini,调整缓存大小) 7>SQL调优 8>定时清除不需要的数据,定时进行碎片整理 mysql表最大数据量:64TBexplain: id:值越大越先执行,复杂的sql select_type:
2021-07-26 09:48:53 110
原创 MySQL高级(一) 索引 数据结构
1索引:概念:帮助mysql高效获取数据的 !排好序! 的 数据结构 (key - value)1.1数据结构二叉树:BST树 如果1234567,跟链表一样,与全表扫描一样(二分查找:log(n))平衡二叉树:AVL树 最短子树、最高子树 高度差 不能超过1红黑树:BRT树 平衡树,但是大数据时层数太多,IO也是很多,最长路径不超过最短路径的2倍B-Tree: 叶子节点没有指针,范围查找不友好 非叶子节点存储data和索引B+Tree:
2021-07-23 17:22:38 187
转载 MySQL函数&关键字(九)排名函数 非rank窗口函数
MySQL 官方手册 8.0 Reference Manual - Window Function本文转自:Query to obtain rank function in MySQLMySQL8.0之后开始支持窗口函数,其中排序函数有:ROW_NUMBER():顺序排序——1、2、3RANK():并列排序,跳过重复序号——1、1、3DENSE_RANK():并列排序,不跳过重复序号——1、1、2MySQL中8.0之前没有Rank排名函数,每当需要根据 MySQL 中的某些功能/标准从表中.
2021-07-23 17:14:20 409
翻译 MySQL函数&关键字(八)自定义变量 @var_name
MySQL 官方手册 8.0 Reference Manual - User-Defined Variables您可以在一个语句中将一个值存储在用户定义的变量中,然后在另一个语句中引用它。这使您能够将值从一个语句传递到另一个语句。用户变量写为 @var_name,其中变量名*var_name*由当前字符集字母、数字、.、_和 $组成。如果将用户变量名称引用为字符串或标识符(例如, 、 或),则用户变量名称可以包含其他字符。 默认字符集是cp1252 (Latin1)。可以用mysqld的–defa.
2021-07-23 16:40:36 894
转载 MySQL函数&关键字(七)时间计算/转换 date_add()/diff/format+时间戳
MySQL 官方手册 8.0 Reference Manual - DATE_FORMAT(date,format)时间计算#1.增减间隔 DATE_ADD(date,INTERVAL expr unit), DATE_SUB(date,INTERVAL expr unit)set @dt = now();select date_add(@dt, interval 1 day); -- add 1 dayselect date_add(@dt, interval 1 hour); -- .
2021-07-23 11:09:06 691
转载 MySQL函数&关键字(六)时间选取 Extract()/dayof/week
MySQL 官方手册 8.0 Reference Manual - EXTRACT(unit FROM date)# 1. 选取日期时间的各个部分:日期、时间、年、季度、月、日、小时、分钟、秒、微秒set @dt = '2008-09-10 07:15:30.123456';select date(@dt); -- 2008-09-10select time(@dt); -- 07:15:30.123456select year(@dt); -- 2008select quarter(@d.
2021-07-23 10:57:51 649
原创 MySQL函数&关键字(五)子查询 ANY/SOME/ALL/IN/EXISTS/USING
MySQL 官方手册 8.0 Reference Manual - Subqueries with ANY, IN, or SOME1. ANY与ALL对比operand comparison_operator ANY (subquery)operand IN (subquery)operand comparison_operator SOME (subquery)comparison_operator 包含:= > < >= <= <> !=ANY 和.
2021-07-23 10:46:06 527
原创 MySQL函数&关键字(四)连接查询 join/union
MySQL 官方手册 8.0 Reference Manual - JOIN Clausejoin隐式连接:两个表逗号连接,与INNER JOIN效果相同,只不过逗号连接需要在where条件里写连接条件,不写where结果是笛卡尔积SELECT * FROM `a` INNER JOIN `b` ON a.id = b.aid ORDER BY a.idSELECT * FROM `a` , `b` WHERE a.id = b.aid ORDER BY a.idJOIN具有比逗号运算符.
2021-07-23 10:38:00 423
原创 MySQL函数&关键字(三)字符串 concat()/concat_ws()+coalesce()
MySQL 官方手册 8.0 Reference Manual - CONCAT(str1,str2,…)GROUP_CONCAT()将group by产生的同一个分组中的值连接起来,返回一个字符串结果。GROUP_CONCAT([DISTINCT] expr [,expr ...] [ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,col_name ...]] .
2021-07-23 10:25:38 267
原创 MySQL函数&关键字(二)分组 group by/group_concat()
MySQL 官方手册 8.0 Reference Manual - GROUP BY ModifiersMySQL 官方手册 8.0 Reference Manual - GROUP_CONCAT(expr)1、group by 通过select在返回集字段中,这些字段要么就要包含在group by语句后面 作为分组的依据,要么就要被包含在聚合函数中。否则就可能存在多个值,如上图,张三的语文有74,0,0三个值。with rollup: group by 后可以跟with rollup,表示在.
2021-07-23 10:22:10 717
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人