自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Mybatis XML中 # 和 $ 哪个可以防止SQL注入

SQL注入是常见的SQL安全问题,防止SQL注入的方式有很多: JDBC方式查询,我们可以利用PreparedStatement,这样不光能提升查询效率,而且他的set方法已经为我们处理好了sql注入的问题。 ibernate方式查询,我们利用name:parameter方式查询。 在查询方...

2020-05-22 15:44:24 31 0

转载 当多个线程同时参与某项任务时,如何知道他们都已经执行完毕

前几天被问到,多个线程同时查询一张表,最后汇总查询结果返回,那么就存在一个问题,如何判断多个线程是否全部已经处理完成。 网上整理资料,总体有两种方法: 第一种:自己实现,即自己实现计数器,具体操作为: 其实这类问题的核心论点都是:如何在一个线程中得知其他线程是否执行完毕。 假设现在有 3 ...

2020-05-22 14:34:38 23 0

原创 SpringBoot + Mybatis Plus:对象entity属性值为null时,更新的问题

工程框架为SpringBoot+Mybatis-Plus,使用Mybatis-Plus核心的功能:代码生成器,可以生成Controller,Service,Mapper,Entity实体等代码,并且在Service层,可以通过this.save等进行实体对象的保存,更新,删除等操作,同时还支持Qu...

2020-05-12 17:44:52 113 0

转载 MySQL出现错误1205-Lock wait timeout exceeded; try restarting transaction

在开发MySQL存储过程的过程中,报了如下错误,导致操作失败: 上网查找了一下,了解到了该类问题出现的主要原因是:Mysql的 InnoDB存储引擎是支持事务的,事务开启后没有被主动Commit,导致该资源被长期占用,其他事务在抢占该资源时,因上一个事务的锁而导致抢占失败!因此出现 Lock...

2020-05-06 16:54:03 43 0

原创 Eclipse安装lombok插件

Lombok插件 概念: Lombok 是一种 Java™ 实用工具,可用来帮助开发人员消除 Java 的冗长,尤其是对于简单的 Java 对象(POJO)。它通过注解实现这一目的。 拿lombok官网的一个例子来说: public class Mountain{ private ...

2020-05-06 13:58:45 36 0

原创 MySQL数据库查询:left join 或right join 加上where条件后连接失效,等同于inner join

有一个年都月份临时表,一个 每月金额结果表,通过left join所希望的最终结果为:每个月金额多少,如果这个没有金额,则为0。 月份临时表: SELECT DISTINCT bgbh,nd,yf FROM SJQX.t_bg_yflsb WHERE BGBH = 'BG202004...

2020-05-06 11:13:29 53 0

原创 SpringBoot + Mybatis-Plus 数据库查询返回Map中,自动过滤掉值为NULL的key的问题

SpringBoot + Mybatis-Plus 查询数据库返回Map类型时,将值为NULL的key给过滤掉,没有返回,但是在前台实体类以及其他判断中需要用到该key。 解决办法,修改yaml文件,新增如下配置 在增加了以上配置后,Map里就会出现值为NULL的key值。需要注意的是,阿...

2020-04-17 14:35:52 93 0

原创 MySQL 存储过程实现 MERGE INTO

编写存储过程中,经常遇到的问题就是:在同步某项数据时,我们需要做到如果库里之前有改信息,则更新,如果没有则插入。在Oracle存储过程中我们可以通过Merge INTO 来实现。但是MySQL数据库存储过程不支持Merge INTO。那我们应该如何实现呢? 首先我们看下在Oracle数据库中Me...

2020-04-13 18:22:41 91 0

原创 MySQL存储过程小结

MySQL存储过程和Oracle存储过程大同小异,但是还是有很多区别的:比如:MySQL数据库不支持在编写Oracle存储过程中使用效果很好的分析函数和开窗函数(mysql5.7及以下版本,mysql8.0+ 可以直接使用窗口函数)。并且MySQL存储过程中不支持数组,只能通过字符串加分隔符实现。...

2020-04-13 11:03:30 32 0

原创 springboot通过自定义注解实现AOP角色权限校验

通过SpringBoot自定义注解实现AOP角色权限校验之前,首先先要了解一下注解的基本知识: Annotation是Java重要的组成部分,从J2SE 5.0时代就已经存在了。在我们的代码中,我们随处可以看到许多注解,例如@Autowired、@Override、@Service。这些注解我们...

2020-04-02 16:02:57 157 0

原创 JWT

JSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。 一个JWT实际上就是一个字符串,它由三部分组成,头部、载荷与签名。 头部用于描述关于该JWT的最基本的信息 例如其类型以及签名所用的算法等。这也可以被表示成一个JSO...

2020-04-02 14:17:33 137 0

原创 SpringBoot异常处理 ExceptionHandler的使用

应用程序在运行过程中,会有大量需要处理的异常。在页面解析的一个工程中,会存在多个service类同时出现页面解析异常和解析结果入库异常,而这就表示在程序中需要一个机制,去统一处理这些异常,提供统一的异常处理。因为我设计这个结构的主要目的是为了简化代码。 在探寻spring的异常处理机制的时候,主...

2020-04-02 10:53:10 61 0

原创 SpringBoot异步调用 实现方式

534545

2020-03-30 11:05:10 28 0

转载 Java 爬虫遇到需要登录的网站,该怎么办?

在做爬虫时,遇到需要登陆的问题也比较常见,比如写脚本抢票之类的,但凡需要个人信息的都需要登陆,对于这类问题主要有两种解决方式:一种方式是手动设置 cookie ,就是先在网站上面登录,复制登陆后的 cookies ,在爬虫程序中手动设置 HTTP 请求中的 Cookie 属性,这种方式适用于采集频...

2020-03-27 16:19:49 83 0

转载 Java 爬虫遇上数据异步加载,试试这两种办法!

爬虫工具根据Xpath路径解析网页时,如果页面是异步加载,则无法获取到js渲染后的界面。这样我们通过XPath路径则定位到具体对象。对此类问题的解决方案有两种。 第一:内置浏览器内核 内置浏览器就是在抓取的程序中,启动一个浏览器内核,使我们获取到 js 渲染后的页面,这样我们就跟采集静态页面一...

2020-03-27 15:22:31 99 0

原创 HtmlCleaner无法通过XPath获取到数据

通过浏览器F12,选取的Xpath路径有时无法定位到目标即:objects为空,无法通过XPath获取到数据。 原因分析: 不同浏览器获取到的XPath不同 XPath路径中有tbody标签 Xpath路径有html,示例: Xpath: /html/body/div[2] ...

2020-03-27 14:35:50 62 0

原创 爬虫工具:浅谈HtmlCleaner+XPath解析HTML

现在常用的网页解析工具有:Jsoup,JsoupXpath,HtmlCleaner。 jsoup 是一款Java 的XML、HTML解析器,可直接解析某个URL地址、HTML文本内容和已经存在的文件。 JsoupXPath是基于Jsoup的拓展,使用路径的形式解析XML和HTML文档。核心类为...

2020-03-27 14:10:25 86 0

原创 Hyperledger Fabric Java语言Gradle 工程 链码离线安装

需求 hyperledger fabric(分布式账本)由于其本身的特性,目前主要应用于大型国企和银行,其环境的部署一般是与外部网络隔离的。如果采用docker的部署方式,docker镜像可以通过导入即可,但是在安装和实例化的时候需要下载相应的依赖,而且在1.4的环境中,fabric实例化链码...

2020-02-13 16:37:55 425 0

原创 SpringBoot打包无法打入Lib文件夹下自己添加(不在Maven仓库)中的JAR包。无法将JSP界面打入JAR包。因为找不到启动类导致系统无法访问的问题

今天在SpringBoot打JAR包部署的时候,出现以下问题,记录整理如下: 问题一:SpringBoot打包无法打入Lib文件夹下自己添加(不在Maven仓库)中的JAR包。 在SpringBoot工程开发中,需要引入其他jar包,由于没有通过在POM.XML文件中,通过Maven仓库增加,...

2019-12-05 16:31:10 59 0

原创 SpringBoot无法扫描到@Configuration注解的Filter过滤器

SpringBoot的优点,就是整合了所有框架,便于快速开发,其他的就不多说了。在SpirngBoot工程中,过滤器Filter是经常使用的,下面先介绍一下过滤器的配置方法。 第一种方法:@WebFilter注解方式 使用@WebFilter注解为声明当前类为filter,第一个参数为该fil...

2019-11-13 10:52:56 1866 0

原创 SpringBoot学习资料整理

请关注公众号获取学习资料:

2019-10-29 17:04:12 67 0

原创 Maven项目SpringMvc集成CXF实现WebService接口

开发Webservice接口可以使用Axis2,也可以使用CXF。可以参考下面几篇博客(主要讲述Axis2开发Webservice接口): Axis2在eclipse中搭建 在Eclipse中使用Axis2插件生成Web Service服务端/客户端 Axis2与Web项目整合及Axis2在...

2019-10-24 14:19:37 219 0

转载 CSRF攻击与防御:跨站点请求伪造

CSRF概念:CSRF跨站点请求伪造(Cross—Site Request Forgery),跟XSS攻击一样,存在巨大的危害性,你可以这样来理解: 攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发...

2019-10-21 15:33:50 45 0

原创 Bugs Patterns Find Bugs 问题解决列表

Bug Cleaner扫描工程代码,根据危险级别分为:高、中、低三级。针对具体情况给出具体的解决方案。 网站:http://find-sec-bugs.github.io/bugs.htm 列出几十种情况下的修改方案。 网站是全英文的,本人英语水平也就那样就不翻译了,大家可以参考找百度翻译,来...

2019-10-21 14:48:33 36 0

原创 Tomcat部署工程,根路径访问不加项目名称

前言:使用Tomcat部署工程,然后执行启动命令,进行访问,一般路径为:http://localhost:8080/项目名称/..........。有时我们需要配置访问项目根路径即:http://localhost:8080/......不加项目名称。下面整理了两种行之有效的方法。 第一种:通过...

2019-10-21 11:18:07 117 0

转载 十分钟带你掌握springboot微服务架构的基本使用

解释一下概念:springboot不等于微服务,它只是一套开源框架,跟ssm差不多,只是基于springboot来开发微服务相当方便,所以这两个词一般都是成对出现的。当我们的服务越来越多时,就可以通过springcloud来统一管理这些服务了,springcloud才算是真正的微服务框架。可以认为...

2019-10-18 16:01:33 122 0

原创 Java 网络编程 之 socket 的用法与实现

一、基础概念 JAVA Socket 所谓socket 通常也称作”套接字“,用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过”套接字”向网络发出请求或者应答网络请求。 Socket其实并不是一个协议。它工作在 OSI 模型会话层(第5层),是为了方便大家直接使用更底层协议(一般...

2019-10-17 17:09:01 28 0

转载 RPC和socket的区别和联系

pc是通过什么实现啊?socket! RPC(Remote Procedure Call,远程过程调用)是建立在Socket之上的,出于一种类比的愿望,在一台机器上运行的主程序,可以调用另一台机器上准备好的子程序,就像LPC(本地过程调用). 越底层,代码越复杂、灵活性越高、效率越高;越上层,...

2019-10-16 16:24:53 187 0

原创 RPC简介及框架选择,RPC与REST的区别

一、基础概念 HTTP协议 http协议是基于tcp协议的,tcp协议是流式协议,包头部分可以通过多出的\r\n来分界,包体部分如何分界呢?这是协议本身要解决的问题。目前一般有两种方式,第一种方式就是在包头中有个content-Length字段,这个字段的值的大小标识了POST数据的长度,服务...

2019-10-15 14:39:42 150 0

转载 分布式事务之消息补偿解决方案

一、数据库本地事务 先看看数据库事务的定义:单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行 这个比较容易理解,操作过数据库的一般都懂,既是业务需求涉及到多个数据表操作的时候,需要用到事务 要么一起更新,要么一起不更新,不会出现只更新了部分数据表的情况,下边看看数据库事务的...

2019-10-14 20:00:37 19 0

原创 Oracle表的空间释放,碎片整理记录

oracle数据库碎片是如何产生的 当生成一个数据库时,它会分成称为表空间(tablespace)的多个逻辑段(segment),如系统(system)表空间,临时(temporary)表空间等。一个表空间可以包含多个数据范围(extent)和一个或多个自由范围块,即自由空间(free spac...

2019-10-08 16:42:23 42 0

原创 JQuery Dialog框所需引入的JS和CSS文件

在前端HTML界面中如此使用: $.dialog({ type : 'iframe', url : "yshdwdsq.html", modal: true, resizable: false, ...

2019-10-08 13:28:38 373 0

原创 CSS前端样式美化总结

css按钮样式美化 .login-button { /* 按钮美化 */ width: 270px; /* 宽度 */ height: 40px; /* 高度 */ border-width: 0px; /* 边框宽度 */ border-radius: 3px; /* 边框半径 */ ...

2019-09-27 17:38:42 166 0

原创 JS操作表格样式汇总

在HTML界面开发中,经常会遇见JS对TABLE表格的操作,下面针对几种经常性的操作进行汇总: 第一:JS动态增加表格行数据 在body中定义一个空的Table <div id="detail" class="sub-title4" alig...

2019-09-19 15:08:09 84 0

转载 java使用Filter过滤器对Response返回值进行修改

有时候在开发过程中会有这样一个场景,有时需要对返回的数据进行处理。比如加密啊,添加某些标记啊等等。这种情况我们可以通过过滤器去处理。 过滤器是什么就不介绍了,百度一下,你就知道。 返回值输出代理类:这个类主要是为了吧Response里面的返回值获取到,因为直接Response没有提供直接拿到返...

2019-09-17 11:07:08 435 0

原创 SpringMVC框架对Redis的操作

一、概念简介: Redis:   Redis是一款开源的Key-Value数据库,运行在内存中,由ANSI C编写,详细的信息在Redis官网上面有,因为我自己通过google等各种渠道去学习Redis,走了不少弯路,所以总结一条我认为不错的学习路径给大家:   1.《The Little ...

2019-09-04 18:06:14 174 0

原创 Oracle中exists与in的执行效率问题

in是把外表和内表作hash join,而exists是对外表作loop,每次loop再对内表进行查询。一般大家都认为exists比in语句的效率要高,这种说法其实是不准确的,这个是要区分环境的。 exists对外表用loop逐条查询,每次查询都会查看exists的条件语句,当exists里的条...

2019-09-02 15:53:20 46 0

原创 Oracle创建分区表,以及分区的简单操作

前言: Oracle企业版支持分区,标准版不支持分区;那么如何区分是标准版还是企业版,通过 SELECT * FROM V$VERSION; 如果有Enterprise 则为企业版。 如果Oracle为企业版,如果在创建分区表时出现:ORA-00439:未启用功能:Partitioni...

2019-08-30 16:06:47 448 0

原创 BAT脚本编写教程入门提高篇

批处理文件的参数 批处理文件还可以像C语言的函数一样使用参数(相当于DOS命令的命令行参数),这需要用到一个参数表示符“%”。 %[1-9]表示参数,参数是指在运行批处理文件时在文件名后加的以空格(或者Tab)分隔的字符串。变量可以从%0到%9,%0表示批处理命令本身,其它参数字符串用%1到%...

2019-08-30 11:43:31 72 0

转载 Oracle - 如何提高SQL的查询效率(where条件优化)

在Oracle数据库中编写查询语句的时候,经常碰到的一个问题就是SQL优化,那么今天就总结一下Where之后,如何进行条件的优化 优化规则: 一、选择合适的基础表 Oracle的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)...

2019-08-27 16:33:00 523 0

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