个人日记
阿呆呆1
这个作者很懒,什么都没留下…
展开
-
Flyway快速上手教程
一、Flyway是什么官网解释地非常全面,可先大致阅读一下。简单地说,flyway是一个能对数据库变更做版本控制的工具。二、为什么要用Flyway在多人开发的项目中,我们都习惯了使用SVN或者Git来对代码做版本控制,主要的目的就是为了解决多人开发代码冲突和版本回退的问题。其实,数据库的变更也需要版本控制,在日常开发中,我们经常会遇到下面的问题:自己写的SQL忘了在所有环境执行; 别人写的SQL我们不能确定是否都在所有环境执行过了; 有人修改了已经执行过的SQL,期望再次执行;转载 2022-02-24 14:48:26 · 633 阅读 · 0 评论 -
springboot 配置多数据源
首先建一个需要配置的数据源的枚举类用来切换时候用package com.oncloudsoft.qzhj.common.config;import lombok.extern.slf4j.Slf4j;@Slf4jpublic class DataSourceType { public enum DataBaseType { QZHJ ,CLOUDODR } // 使用ThreadLocal保证线程安全 private static f...原创 2021-12-20 10:27:13 · 901 阅读 · 0 评论 -
java基础复习总结
总结:1.java的数据类型可分为两种,基本数据类型和引用数据类型 2.unicode为每个字符制定了一个唯一的数值,在任何语言、平台、程序都可以安心的使用 3.布尔(Boolean)类型的变量,只有true(真)和false(假)两个值 4.数据类型的转换可分为下列两类:自动类型转换与强制类型转换 5.算法运算符的成员有加法运算符、减法运算符、乘法运算符、除法运算符、余数运算符 6.if语句可依据判断的结果来决定执行程序 7.递增与递减运算符有着相当大的便利性,善用他们可提高程序的简洁度.原创 2021-08-13 14:14:25 · 79 阅读 · 0 评论 -
入门 RabbitMq(2) 发送接受消息 轮循分发公平分发
分为服务端和客户端,服务端发送消息,客户端接受消息package com.zh.rabbitMq.simple;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.rabbitmq.client.ConnectionFactory;import java.io.IOException;import java.util.concurrent.TimeoutExceptio原创 2021-05-25 16:10:00 · 143 阅读 · 0 评论 -
入门RabbitMq(1) 安装
安装RabbitMq需要用到ErLang的环境才可以正常运行 所以我们需要先下载两个安装文件ErLanghttps://www.erlang.org/downloadsRabbitMqhttps://www.rabbitmq.com/install-rpm.htmlRabbitMq版本要和ErLang的版本对应才可以 下载好之后把安装文件上传到我们的linux服务器上面先安装ErLang解压安装文件 tar -zxvfotp_src_24.0.tar.gzcd otp_s...原创 2021-05-18 17:51:15 · 165 阅读 · 2 评论 -
计算机底层的四则运算是怎样的呢——中缀表达式和逆波兰式的相互转换
参考博客https://blog.csdn.net/heihaozi/article/details/116376828?utm_medium=distribute.pc_category.none-task-blog-hot-12.nonecase&depth_1-utm_source=distribute.pc_category.none-task-blog-hot-12.nonecase通过博客和自己的理解 自己用java实现了下 中缀表达式转逆波兰式代码如下public s..原创 2021-05-18 10:13:21 · 97 阅读 · 0 评论 -
springcloud 配置网关路由 报错com.netflix.zuul.exception.ZuulException: Forwarding error
在yml中添加配置zuul: user-service: path: /springcloud-provider-dept/** url: http://127.0.0.1:8001具体原因暂不清楚原创 2021-04-21 10:06:38 · 904 阅读 · 1 评论 -
【Mysql】对于表actor插入如下数据,如果数据已经存在,请忽略(不支持使用replace操作)
# mysql中常用的三种插入数据的语句: # insert into表示插入数据,数据库会检查主键,如果出现重复会报错; # replace into表示插入替换数据,需求表中有PrimaryKey,# 或者unique索引,如果数据库已经存在数据,则用新数据替换,如果没有数据效果则和insert into一样; # insert ignore表示,如果中已经存在相同的记录,则忽略当前新数据;insert ignore into actor values("3","ED.原创 2021-04-20 09:37:55 · 440 阅读 · 0 评论 -
MySQL数据库一个字段对应多个值得模糊查询
当一个字段想模糊查询出多个字段的时候,正常情况下一般会这么作1 select * from a where name like 'a%' or name like 'b%' ....or ...;但是上面的情况只能对应少量的模糊查询值,过多之后再后台开发的时候会出现非常麻烦的sql语句拼接这时我们可以采用正则表达式进行匹配1 select * from a where name regexp'a|b|...';转载自https://www.cnblogs.com/m-bian转载 2021-04-14 11:39:15 · 3314 阅读 · 2 评论 -
springcloud eureka ribbon自定义负载均衡算法遇到的坑
因为老版本的springcloud 继承ribbon是需要引入 ribbon的jar包才可以使用ribbon 后来Netflix 旗下的框架 包括ribbon停止了维护 故 springcloud 3.0之后自己做了兼容不需引入ribbon的jar包就可以做负载均衡,这就导致有一个比较坑的问题 以前自定义负载均衡算法都是 用的ribbon的MyRule进行配置你自己定义的Rule 然后在启动类通过@RibbonClient(name = "springcloud-provider-dept",co原创 2021-04-13 15:44:28 · 584 阅读 · 0 评论 -
springcloud eureka集群 和ribbon 做负载均衡时遇到的坑
springcloud eureka集群 和ribbon 做负载均衡时遇到的坑1.springboot 3.0之后 使用 @LoadBalanced 注解 不需要再引入 ribbon的jar包 在eureka中集成的有 引入反而会jar包冲突2.java.lang.IllegalStateException: No instances available for springcloud-provider-dept 报这个错百度了很久 分很多种情况 消费者中请求的路径没有和服务提供者中的sp...原创 2021-04-13 11:17:48 · 692 阅读 · 0 评论 -
搭建ereka 集群 映射不到问题
今天看视频学习 搭建ereka 的时候发现 映射不到集群 后发现是因为编写配置文件的时候用了${}取值这样的方式取hostname 的问题 原配置如下server: port: 7001eureka: instance: hostname: eureka7001.com client: register-with-eureka: false #表示是否想eureka注册中心注册自己 fetch-registry: false #fetch-registry如果为f原创 2021-04-09 17:15:43 · 308 阅读 · 0 评论 -
springBoot配置驼峰命名报错 无法注册mapper到spring UnsatisfiedDependencyException
在springboot 整合mybatis的时候因数据库中表都是下划线命名实体类是驼峰命名 所以需要给mybatis配置驼峰命名 但发现一旦配置之后项目就无法映射出 我的mapper 报错如下org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'deptController': Unsatisfied dependency expressed through f.原创 2021-04-01 15:03:10 · 301 阅读 · 1 评论 -
redis缓存击穿、缓存穿透和缓存雪崩的理解和解决方案
redis缓存穿透、击穿、雪崩1.穿透的意思是用户多次查询数据没有在redis缓存中查到数据,转而向持久层数据库查询导致数据库挂掉就叫缓存穿透1.1.穿透可以通过布隆过滤器和存储空值两种方式解决1.1.1布隆过滤器是一种数据结构 通过hansh值计算得到去对比对应的下标 如果都为1说明这个值有可能存在 有一个为0说明这个值一定不存在2.击穿的意思是一个key热点承受着很大的并发,当这个key失效的瞬间,访问到持久层数据库,导致数据库挂掉称为缓存击穿2.1 击穿可以使用互斥锁的方式解决 如果缓存不存原创 2020-06-30 16:03:33 · 281 阅读 · 0 评论 -
java面试宝典
https://www.nowcoder.com/tutorial/94/ae05554a3ad84e42b6f9fc4d52859dc4原创 2020-01-06 13:54:34 · 106 阅读 · 1 评论 -
使用itext导出多个 数据库中的富文本html标签(带占位符可替换的)的word文档并压缩
首先引入 itext 需要的jar包 <dependency> <groupId>com.lowagie</groupId> <artifactId>iText</artifactId> <version>2.1.3</version> </d...原创 2019-12-30 10:04:01 · 968 阅读 · 0 评论 -
mybatis if判断 0 != " " 的时候 会为true 的问题
这个是因为 mybatis 比较的时候, 会吧 0和 " " 都转成 double 类型再比较, " " 转成double 也是0.0,0也是0.0 所以 结果为true,原创 2019-11-21 14:52:31 · 858 阅读 · 0 评论 -
mybatis用association 映射 比直接用sql查询少数据
主要原因是因为 在resultMap中没有设置主键 导致如果有连续的空字段 就不会映射到实体中修改前代码 <resultMap type="LimRole" id="LimRoleResult"> <result property="rolId" column="rol_id" /> <result pro...原创 2019-11-20 14:45:04 · 748 阅读 · 0 评论 -
日常学习2017.7.22
this在java中代表对象本身this的作用:this表示的是当前对象本身,更准确的说,this代表的当前对象的一个引用。普通方法中使用this 使用this来调用其它构造方法 位置必须放在第一条语句this不能使用static方法。static声明的成员变量为静态成员变量或者叫做类属性、类变量。静态变量可以实现多个对象 之间变量共享。static修饰成员原创 2017-07-22 09:13:20 · 147 阅读 · 0 评论 -
公众号和小程序等获取的昵称带emoji表情添加mysql数据库报错 或者乱码
首先java里面配置连接池的时候不要配置characterEncoding\=UTF8第二 数据库,表编码格式和字段编码格式改成utf8mb4格式第三步 在mysql的配置文件mysql.ini中添加配置[client]default-character-set = utf8mb4[mysqld]character-set-client-handshake=FALSE...原创 2019-07-11 13:57:06 · 318 阅读 · 0 评论 -
在小于99999数里面寻找能开根号的数,并且数里面要有2个相同的数,如144,565这种数,不能把数转为字符串
import java.util.HashMap;import java.util.Map;import java.util.Map.Entry;public class Test { //完全平方数 public static boolean iswqs(int n){ int i; double dn=Math.sqrt(n); ...原创 2019-07-18 15:00:15 · 191 阅读 · 0 评论 -
微信自定义分享最新版
java 代码private static final char[] HEX_DIGITS = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};/** * 获取签名算法 */ public void jsapiTick...原创 2019-08-26 14:05:21 · 175 阅读 · 1 评论 -
redis的jedis使用
首先第一步我们建一个普通的java项目,这里比较简单 就不写了 第二步导入我们jedis用到的jar包 下面就是我写的 demo 都是带注释的 写的很清楚 package jedis;import org.junit.Test;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool...原创 2019-10-10 14:34:15 · 88 阅读 · 0 评论 -
redis五种基本数据类型 常用操作命令
redis共有5种数据类型一、string赋值 set name zhangsan取值 get name删除 del name递增 (需要先设置一个能递增的数字字符串 set num 2) incr num (一次递增一个) incrby num 2( 一次递增2,可以自己设置)递减 decr nu...原创 2019-10-10 18:32:58 · 188 阅读 · 0 评论 -
foreach遍历时不可以 对遍历的集合做 remove操作
foreach遍历时不可以 对遍历的集合做 add和remove操作可以使用 迭代器 进行操作Iterator<String> it = a.iterator();while (it.hasNext()) { String temp = it.next(); if ("1".equals(temp)) { it.remove(); }}...原创 2019-05-30 16:01:06 · 450 阅读 · 0 评论 -
支付宝退款
/** * 支付宝退款 * @param out_trade_no //订单号 * @param money //退款金额 */ public boolean payRefund(String out_trade_no ,double money){ AlipayClient alipayClient = new DefaultAli...原创 2019-05-09 17:45:55 · 156 阅读 · 0 评论 -
微信支付
/** * 【图文详情】用微信支付图文详情 */ public void weixinBuyTuwen(){ Record result = new Record().set("code", "0").set("msg", "支付失败!"); Map<String, Object> map = new HashMap<...原创 2019-05-09 17:44:49 · 183 阅读 · 0 评论 -
日常学习2017.7.28
java中只有单继承,没有像c++那样的多继承子类不能继承父类的构造方法; 继承:代码重用 多态:重载和重写 多态的作用:多样化 多态的存在要有三个必要条件:要有继承,要有方法重写,父类引用指向子类;(父类出面街道工作,具体有它孩子出面去做) A instanceof B用来判断A对象和B对象是否是同一种类型,是的话返回true否则返回false原创 2017-07-28 13:38:48 · 152 阅读 · 0 评论 -
个人日记2017.08.12
反射:public class User { public String name; private int age; public User(String name, int age) { this.name = name; this.age = age; } public User() { } private void run() { System.out.pr原创 2017-08-12 15:36:00 · 167 阅读 · 0 评论 -
日常学习2017.08.12
XML声明必须写在第一个根元素只能有一个 注释属性 元素————由开始标签、元素内容和结束标签组成正则表达式:“.”表示匹配所有\w a~z、A~Z、0~9的范围 {0~9}出现的次数[]匹配范围一个字符\W 非a~z、A~Z、0~9的范围 x+至少出现一次\d 0~9的范围 \s \t\n\r\f的范围x原创 2017-08-12 15:30:44 · 139 阅读 · 0 评论 -
日常学习2017.08.12
网络:1.一组相互连接的计算机2.多台计算机组成3.使用物理线路进行连接网络编程的三要素1.ip地址:唯一表示网络上的每一台计算机两台计算机之间通信的必备要素2.端口号:计算机中应用的标号(代表一个应用程序)0~1024系统使用或保留端口,有效端口0~65536.3.通信协议:通信的规则(点对点)TCP,UDP(广播)网络通信分为七层:应用层,表示层,会话层(数原创 2017-08-12 15:13:31 · 127 阅读 · 0 评论 -
日常学习2017.08.12
线程的状态:新生,就绪,运行,阻塞,死亡。原创 2017-08-12 15:12:48 · 136 阅读 · 0 评论 -
日常学习2017.7.22
栈:-存放:局部变量-先进后出,自下而上存储-方法执行完毕,自动释放空间 堆:-存放new出来的对象-需要垃圾回收器来回收方法区:存放类的信息(代码).static变量,字符串、常量等构造器定义:constructor构造方法:一个在创建对象时被自动调用的特殊方法。当创建一个对象的时候,如果类没有提供无参构造方法,虚拟机会帮这个类提供一个无参构造方法,当这原创 2017-07-22 09:05:01 · 134 阅读 · 0 评论 -
日常学习2017.7.22
对象:是具体的事物(万物皆对象) 类:是对对象的抽象(抽 抽出象的部分)面向过程:一个线性的做事方法,一步步来,所有事情自己做(比如说要吃饭了,要走向饭店、点菜、吃。这就是面向过程)面向对象:站在高度上,很多事情让别人代做(比如叫个外卖,这就是面向对象,外卖员是你的对象) 对象和类的关系:1、特殊到一般,具体到抽象。2、雷可以看成一类对象的模板,对象可以看成该类的原创 2017-07-22 09:03:20 · 140 阅读 · 0 评论 -
日常学习2017..18
昨天主要讲了嵌套循环,另外还有break为中断,打断 结束当前循环。continue继续,结束本次循环并且继续循环嵌套循环三要素:外打行,内打列,找规律。其中比较经典的程序有打印一个正方形,下面是程序。public static void main(String[] args) { for (int i = 1; i <= 5; i++) { for (int j = 1原创 2017-07-18 08:28:40 · 120 阅读 · 0 评论 -
日常学习2017.7.21
方法和重载. 方法:函数,解决一些问题的过程,在程序里面实现某些功能的代码集合; 重载:在同一个类中,方法名一样,参数类型,个数、顺序至少一个不同。 数组的优缺点:数组在找数组中的某个参数非常方便,但是在插入或删除的时候有着致命的缺点。 数组的定义:一组相同类型数据的有序集合。 动态数组定义: int []a=new int[10]; 静态数组定原创 2017-07-21 08:26:33 · 173 阅读 · 0 评论 -
日常学习2017.7.14
昨天老师要求写一个可以把十进制的数转成二进制的程序,苦思瞑想半天也想不起来怎么写. 后来老师讲了一遍我还是搞不明白什么意思,今天早上差不多yu研究了半天才半知半解.//使用循环分别实现将10进值整数和小数变成二进制数 System.out.println("请输入一个10进制的数:"); Scanner sc = new Scanner(System.in); double d =原创 2017-07-15 11:07:12 · 160 阅读 · 0 评论 -
2017.7.28
接口(interface):一个完全抽象的类,抽象类的抽象类接口中只存在抽象方法和全局静态常量。 java是单继承,但是接口可以继承多个接口。 单例:一个类只能有一个对象。public class Singleton { private static Singleton s; private Singleton(){} private static Sin原创 2017-07-28 13:49:48 · 127 阅读 · 0 评论 -
日常学习2017.8.5
单例 一个类有且只能有一个对象这里列举一下个人感觉最简单的饿汉单例 public class Test { //创建一个对象并且私有化 private static Test i=new Test(); //创建一个构造方法并且把门封住 private Test(){} //创建一个方法打开一个小门但是还是返回上面那个对象 public static Test get原创 2017-08-05 16:03:16 · 131 阅读 · 0 评论 -
支付宝支付
public void buyTuwen(){ Record result = new Record().set("code", "0").set("msg", "支付失败!"); //Map<String, Object> map = new HashMap<String, Object>(); String orderNumber=...原创 2019-05-09 17:36:09 · 157 阅读 · 0 评论