自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 金蝶 S_HR 记录笔记

金蝶 S_HR 记录笔记

2024-02-19 10:10:26 375

原创 金蝶EAS、S_HR用BosType自动生成FID

INSERT INTO T_BD_PERSON(fid,FNUMBER ) VALUES (newbosid('80EF7DED'),77889 ) SELECT * FROM T_BD_PERSON where FNUMBER = '77889'

2023-03-14 11:26:09 263 1

原创 数据库截取字符串方法

- 需要截取的字段。

2022-11-11 01:53:18 963

原创 Oracle数据库撤回操作

如果在数据库执行update、delete语句忘记加where条件、则可以用此语句来查询指定时间段的数据:select * from HR_USERINFO as of timestamp to_Date('2022-11-11 01:35:00', 'yyyy-mm-dd hh24:mi:ss')参数说明:HR_USERINFO --表名 2022-11-11 01:35:00 --选择你要查询的时间 yyyy-mm-dd hh24:mi:ss --

2022-11-11 01:47:46 1400

原创 解决while(rs.next())进不去BUG

可以得到re.next()值为true,但不进while循环; 原因是库里只有一条数据,打印语句中的re.next()已经走完了那条数据,while循环里的找不到第二条数据所以报错;

2022-10-25 09:53:16 528

原创 0814~Swing学习

0814~Swing学习。

2022-08-14 23:12:59 186 2

原创 0731~mysql黑窗口~建库建表 -- MySql主从复制原理

UPDATE`test`SET`id`='这是修改后的id',`name`='这是修改后的内容'WHERE`id`=1;INSERTINTO`test`(`id`,`name`)VALUES('1','李四');例如createdatabasedrop_testdb;dropdatabase;createdatabase表名;

2022-07-31 11:51:29 566

原创 0730~Mysql优化

如果设置属性可以为空,那么isnull会走索引,isnotnull不会走索引;9.使用isnull或者isnotnull--如果设置属性不能为空,那么都不会走索引,3.模糊查询like左边不要加%--解决方案覆盖索引查询。Extra主要看UsingWhere表示用where条件过滤;type查询的类型,起码要是ref,All是最坏的情况;rows看查询语句查询的数量;key看实际命中了哪些索引;5.查询条件中不能存在计算。6.查询条件中不能使用函数。...

2022-07-30 23:12:01 148

原创 CSDN21天学习挑战赛

​​学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您想系统/深入学习某技术知识点…一个人摸索学习很难坚持,想组团高效学习…想写博客但无从下手,急需写作干货注入能量…热爱写作,愿意让自己成为更好的人……**...

2022-07-29 14:32:22 121

原创 0722~线程池扩展

单个线程池(最慢)newSingleThreadExecutor;缓存线程池(最快)newCachedThreadPool;固定线程池(小快)newFixedThreadPool;这三种线程池在项目中一般都不用,都是用自定义线程池;

2022-07-22 22:28:14 156

原创 0719~分布式锁

redis提供的redis命令,setnx,比如三个线程同时进入一个业务,A线程进去了,只有A线程执行完释放锁后,其他两个线程才会执行;是Java用来操作redis的工具包,Redisson的宗旨是让用户redis的操作分离,为了是让用户更注重处理业务代码;概念在分布式环境下,保证某个资源在同一时间访问时,只有一个线程能访问到资源;排他锁一次只允许一个线程访问,只有等一个线程执行完后才会有下个线程进入;释放锁的原子性问题lua脚本保证原子性;乐观锁的缺点常见的ABA问题;原子性问题设置超时时间。......

2022-07-19 21:53:02 457

原创 0718~分布式事务

的备份,数据在完成操作后,会把新数据备份一份,若事务在进行操作时出现异常了,导致服务宕机了,此时就可以用到备份的新数据,系统可以根据redolog的内容,恢复到之前的数据;比如用户在读取数据的时候,先读取到的数据为id=1,在进行读取时,此时id=10,被其他人修改了,读到了别人已提交的数据,导致了前后读的数据不一致了;--数据在进行查询时,查询到其他未提交的数据,若其他未提交的数据操作失败,进行了回滚,此时该数据就不存在了,读到了不存在的数据--就是脏读;此时就出现了幻读的情况;机制,实现了读写不冲突;.

2022-07-18 20:27:44 302

原创 0714~oauth2Day2~RabbitMQ死信队列理解

设置无感刷新token,每次token时间过后请求都会刷新token,再获取一个新的token和刷新的token;1.消费消息的时候出现异常,消息被否认,走catch,走channel.basicNack,进入死信队列;1.消费消息的时候出现异常,消息被否认,走catch,走channel.basicNack,进入死信队列;死信队列,也有交换机,也有队列,也有消费者,和普通消费者没有区别;1.前端登录请求打过来后台用工具类发送请求,请求token;如果普通消费者出现异常,则会走catch,走死信队列消费;.

2022-07-14 22:15:36 339

原创 0713~oauth2~Day1

什么是oauth2:1.oauth2为用户授权提供了一个开放,安全,简易的标准;2.oauth2授权不会使第三方获得到用户的账号信息与密码,用户的安全获得了保障;security用户的认证与授权用security,微服务与微服务之间的调用需要使用aouth2,每次请求调用其他微服务接口的时候需要携带token;知识点:hystrix隔离策略:1.线程池隔离:(默认方式)线程A进,会有B线程接力,返回出线程;2.信号量隔离:线程大小固定的;401端口错误:没有认证权限;通过上下文获得request:Requ

2022-07-13 21:32:00 203

原创 0711~SpringSecurity源码查看,springsecurity整合JWT

过滤器执行流程图:~过滤器链 今天增加一个短信验证码的功能,自定义过滤器实现;1. 首先编写短信验证码的接口,发送短信验证码; 2.写一个过滤器类,继承OncePerRequestFilter,主要用来做验证短信的过滤 ; 3.自定义一个过滤器类,实现AbstractAuthenticationProcessingFilter接口,用来把手机号和验证码封装到token对象,交给认证管理器; 4.自定义一个过滤器类,实现AuthenticationProvider接口,把权限字符串交给sec

2022-07-11 22:22:38 243

原创 0710~SpringSecurity

SpringSecurity:概念:是一个声明式的提供安全访问控制的操作的安全框架; 游刃有余:授权方式认证;两种方式(1.web配置 2.注解方法配置);登峰造极:认证结果处理,授权结果处理; 思路步骤:1.再配置类里面设置jdbctoken仓库;2.在实现方法里面实现关联即可;...

2022-07-10 22:27:12 184

原创 0708~门户注册首页~用户中心

1.获取图形验证码思路;思路:2.获取短信验证码; 思路步骤:1.首先入参校验,判断手机号和图形验证码不能为空;2.再通过前端传过来的uuid,从redis中的去取图形验证码;3.再比对图片验证码的正确;4.比对手机号是否注册过;5.发送短信验证码(6位数);6.把手机号当作key,验证码当做value,存入redis; 1.首先入参校验,判断手机号和图形验证码不能为空;2.再通过前端传过来的uuid,从redis中的去取图形验证码;3.再比对图片验证码的正确;4.比对手机号是否注册过;5.发送短信验证码(

2022-07-08 20:21:45 342

原创 0707~前端门户页面(面包屑)~门户ES搜索

思路步骤:门户ES搜索,课程上线后,把课程信息存入ES,门户通过搜索关键字,从ES中拿出数据给用户展示:效果图如下:2.封装查询构造器;3.创建查询过滤条件(关键字bool);4.通过查询构造器设置分页,排序;5.通过bool设置模糊查询与精准查询(过滤条件);6.绑定查询构造器与查询对象(bool);7.用search 方法,提交查询对象(bool);8.封装成list返回;拓展:可以设置关键字高亮; 1.添加配置类;2.添加查询关键字高亮条件;3.调用elasticsearchTemplate.que

2022-07-07 21:48:59 736

原创 0704~springboot整合ES&RabbitMQ

主要做课程上线功能: 1.把选中的id传入后台,修改上线状态;第一步昨天已总结; 1.单独建立一个微服务用来做es查询保存操作,导入依赖,配置yml;2.编写一个接口,交给spring管理,继承ElasticsearchRepository接口,泛型写doc文档实体类和Long; 3.编写controller,注入自己编写的接口CourseRepository,调用方法;4.编写feign,把接口暴露给课程服务使用;5.课程微服务直接es微服务的feign接口使用 即可;5.1创建一个list来存放前端选中

2022-07-04 22:36:17 640 2

原创 0703~分布式缓存~课程微服务搭建

@JsonInclude(JsonInclude.Include.NON_EMPTY) 加上此注解可以消除子类后面的空数据,如下:使用之后效果如下: 实现方式有两种:1.直接使用redis,把数据存入redis中;2.使用springcache实现(注解版,也是存入redis中);1.导入依赖;2.yml配置redis参数3.启动类添加注解@EnableCaching; 4.需要在做缓存的方法上加注解5.需保持缓存与数据的一致性,在新增/修改/删除方法上加上注解 开启驼峰自动转换: 前端课程上下线思路:..

2022-07-03 22:14:57 180

原创 0702~全局异常,课程服务搭建,树形结构掌握

全局异常,在每个地方都要(try~catch)异常处理,会有很多重复的操作,会显得很麻烦;全局异常+自定义异常使用步骤:1.自定义异常,创建一个类继承RuntimeException,添加构造器;2.全局异常处理,类上添加注解@RestControllerAdvice,方法上添加注解@ExceptionHander(Exceprion.class); 课程微服务搭建,树形结构重点掌握; mybatisplus的高级查询;需要用 new Entitywrapper();封装 查询对象;示例:...

2022-07-02 22:39:43 112

原创 0629~SaaS平台设计~全局异常处理

SaaS设计理念:SaaS为 服务商提供了一系列的基础网络建设,运维,租赁等服务,按照实际需要,给服务商提供服务,用互联网使用系统,使得服务商像打开自家水龙头一样使用简单,便捷;SaaS最好的模式:优点:使用价值成本最低,可以实现多储存多表,多库,储存多数据;缺点:隔离性低,安全性低;数据备份和恢复比较难;在实际微服务场景中使用feign:1.导入依赖; 2.编写feign接口; 3.编写feign接口的实现类(fallbackFactory) 实现类记得交给spring管理 可以把系统常见的错误自定义一

2022-06-29 21:55:18 168

原创 0628~项目搭建~mybatisplus~集成swagger

mybatisplus概念:mybatisplus是基于mybatis的增强工具,功能上只做加强,不做改变,每个实体类都有crud,使用mybatisplus后都可以一键生成,为提升开发效率而生,彻底解放双手;mybatis特点:1.低侵入; 2.损耗小;3.支持多种数据库;4.内置代码生成器;5.内置分页插件;1.导入依赖; 3.配置生成代码的 主类 ;4.最后新建生成的模板;(以模板为原型生成controller,mapper,query等类) controller.java.vm模板query.jav

2022-06-28 22:28:10 652

原创 0625~<config>-<bus>

config(配置中心):把所有配置文件集中管理(把yml文件配置在码云上);bus(消息总线):可以实现在线配置修改,不用重启端口(在线热部署); config:优点:可以实时在云端实现端口修改; 缺点:修改配置需要重启 端口;(bus完美的解决了这个问题);1.导入依赖; 2.添加注解; 3.配置yml; 4.再到客户端集成config组件;4.1客户端导入依赖4.2客服端创建bootstrap.yml文件,删除application.yml此时config的缺点就暴露出来了,

2022-06-25 22:45:48 206

原创 0624~springcloud --<feign>--<hystrix>--<zuul>

Feign:负载均衡器--优雅的解决了客户端用户集群和参数拼接的问题;Hystrix:熔断器--设置熔断,启动托底数据,防止雪崩问题(一个节点出错,引起整个系统出错);zuul:网关--用于接口过滤,校验,熔断,可以混淆请求,微服务所有的请求都要向zuul网关发送;1.导入依赖; 2.启动类加注解;(value="这里用来填加了@FeignClient的注解的全路径")3.编写FeignClient的接口; 4.接口编写完后直接 注入controller 调用方法即可; 集成Feign所需要用到的注解 :f

2022-06-24 22:52:22 115

原创 0622~springcloud

1.集群和分布式的区别:集群:集群是指将同一份代码部署到多个服务器中;分布式:分布式是指将系统根据不同业务分为多个模块,再把模块部署在不同的服务器上面;2.Eureka工作原理1.服务注册:所有服务只要启动,就会将自己的服务名、ip端口等信息提交到注册中心;2.服务发现:服务每过30秒都会区注册中心拉去新的地址清单;3.服务续约:服务每隔30秒都会向服务中心发送心跳;4.服务下线:服务关闭时,注册中心会删除你的地址信息;学习springcloud的原因:1.springcloud是解决微服务的最佳落地方案;

2022-06-22 22:21:41 144

原创 0621~ES&Lucene

全文检索的概念:先建立索引,然后对索引进行搜索的过程叫做全文检索;全文检索的特点:1.关键词高亮; 2.只处理文本,不处理语义; 3.相关度,关键字最多的排在前面;ES:页面端口:9200;代码端口:9300;Kibana端口号:5601;全文索引架构(重点):索引创建: 1.分词;2.词态大小写转换;3.排序;4.合并;5.形成倒排索引文档;索引搜索:1.根据关键字搜索倒排索引文档,找到id;2.根据id到索

2022-06-21 22:36:51 114

原创 0620~RabbitMQ

RabbitMQ代码端端口号:5672;RabbitMQ服务流程服务板块.服务主要分为三大板块:~- ;1.生产者创建连接,并开启连接通道;2.生产者发送消息,并创建交换机;3.生产者发送的消息发送到交换机,再通过交换机分发到绑定的队列;(交换机不储存代码,只负责分发代码);4.消费者通过创建队列,绑定相应的交换机;5.消费者再通过监听队列时时刻刻监听队列的消息;6.消费者再处理业务;7.最后手动关闭ack;那么多MQ消息中间件,为什么用RabbitMQ?原因.........

2022-06-20 22:24:57 218

原创 0616项目二结束~~总总结

宠物之家项目 1.三方登录(微信) 步骤梳理 1.前端发送请求到后端,后端接收授权码,重定向到扫码页面 //后端获取授权码 重定向到微信登录二维码界面 @GetMapping("/jump") public String getWechat(){ String codeUrl = wechatProperties.getAuthorizationCodeUrl(); String

2022-06-16 22:26:37 2940

原创 0615~用自定义注解实现RBAC权限管理

实战权限管理总共有五张表1.用户表;2.角色表;3.权限表;4.用户角色中间表;(一个用户可能对应多个角色)5角色权限中间表;(一个角色也可以有多个权限)思路整理:通过拦截器,判断方法体上是否加了注解,在根据注解判断注解是否加了自定义参数。通过用户ID找到对应的角色(可能有多个角色),再通过角色ID找到权限ID,再根据权限ID做出判断可以执行哪些操作!...

2022-06-15 23:55:17 41

原创 0612~quartz定时器框架

今天老师讲的定时器框架,quartz~简单易学 但不适合高并发;quartz主要由:1.trigger触发器, 2.job detail 业务详情, 两部分组成scheduler容器;适用场景: 1.定时发邮件; 2.定时发报表; 3.定时关闭支付订单; 4.一系列定时操作都可以完成,功能强大;实战关闭订单的功能实现;1.配置动态

2022-06-12 22:49:54 363

原创 0610~商品秒杀处理 用自定义注解防止恶意防刷

1.先判断宠物id是否为空;2.在判断宠物是否为秒杀商品;3.在判断是否还有库存;4.把订单信息入库;5.商品库存-1;6.拉起支付页面,完成支付;用自定义注解+拦截器完成恶意防刷的功能用两个元注解,加在方法上, 再配合拦截器一起使用,下面是一个思路1.小记;request.getRemoteaddr();根据此方法来获取用户IP地址;@configurationProperties(prefix=" ") ...

2022-06-10 22:40:25 114

原创 0608~三方支付

今天用支付宝支付宠物商品订单1.先通过 订单id获取到宠物商品详情,用商品详情设值;2.通过宠物详情设值,然后把订单信息入库;3.再把收货信息存入地址;4.再拉起重定向到支付页面,调用第三方接口;5.通过异步回调修改状态;6.通过同步回调显示状态;1.先通过 订单id获取到宠物商品详情,用商品详情设值;2.通过宠物详情设值,然后把订单信息入库...

2022-06-08 22:28:36 218

原创 0607-宠物上架与下架

注意错误:1.报错500,反射异常,xml查询字段没有和数据库对应上。2.报错500,空指针,后台service实现类莫名加了ID今天做的主要是宠物的上架与下架,都是基本的crud,主要前端门户页面需要连表,时刻看断点,明天讲三方登录,好好听!...

2022-06-08 00:20:04 85

原创 0605笔记~寻主审核

老师今天讲了寻主审核。步骤梳理:1.通过前端门户页面填写保存表单.2.再进行审核是否通过.通过以邮件形式通知商家.3.如果通过,则绑定到距离地址最近的门店,以百度地图密钥实现此功能.4.可以指定最近的门店接下订单。今天内容不复杂,但是连表逻辑处理清楚!...

2022-06-05 23:50:53 38

原创 0604-第三方登录

知识点:1.String.format(); 拼接占位符第三方登录步骤梳理:1.微信登录请求;2.获取微信授权码,重定向到二维码界面;3.用户同意授权码后,后端回调授权码,再从授权码中获取token;4.从token中获取用户信息;...

2022-06-04 22:15:53 44

原创 0603-端午节

必记点:1.对象转成json格式传给前台,第一步想到Alibaba的包 JSONObject.tojsonString(对象);2.json转对象,JSONObject.parseObject(对象,对象字节码类型);3.解决响应编码格式,response.setContentType(application/json,charset=utf8);拦截器思路:1.从请求头中获取token;2.根据token,从redis中取值;3.有token则登录过了~放行,没token则未登录~拦截;...

2022-06-04 00:28:18 34

原创 0602笔记--登录

注意事项:报错1.connectionException:前端报错500,没启动redis;2.bindException:启动异常,xml文件没写到resource下面;后台登录功能实现 1.首先入参校验; 2.通过输入的账号与数据库里的账号进行对比; 3.账号存在拿到密码,对比密码是否正确; 4.信息存入redis;

2022-06-02 22:48:52 63

原创 0530知识点---发送短信验证码

1.导入依赖<dependency> <groupId>commons-httpclient</groupId> <artifactId>commons-httpclient</artifactId> <version>3.1</version> </dependency>2.今天的案例用的网建短信通 进入网站查看.

2022-05-30 23:06:36 65

原创 0529笔记

今天用Java发邮件1.导入依赖2.注入对象 JavaMailSender3.调用方法SimpleMailMessage simpleMailMessage = new SimpleMailMessage();simpleMailMessage.setFrom(username);simpleMailMessage.setSubject(subject);simpleMailMessage.setText(context);simpleMailMessage.setTo(to);

2022-05-29 22:41:05 51

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除