- 博客(52)
- 资源 (11)
- 收藏
- 关注
原创 MySQL执行批量SQL失败解决
在仔细分析,发现批量执行SQL中间都有分号,最后一个却没有分号,想来不知道是不是mybatis的bug导致。通过报错日志发现待执行的SQL出现语法错误,但是把SQL单独拿出来执行都没问题。最后,网上查找,发现有遇到同样的错误,需要在数据库连接上加上。参数,于是加上,重启后,终于解决了这个问题。mybatis批量执行SQL配置文件如下。
2023-03-11 10:41:02
1410
原创 # postman使用 - 发送带cookie的http请求
发送带cookie的http请求仅需要两步第一步、复制浏览器cookie打开浏览器控制台,选择某个接口地址,右键选择 Copy ,然后选择 Copy as cURL第二步、导入到postman进入postman中,选择左上角 File ,然后选择 Import ,在弹出的窗口,选择 Raw text ,然后将刚才复制的内容贴到下面,点击 Continue然后再点击 Import 即可...
2021-10-15 17:50:15
2714
原创 MySQL系列 - 函数整理
函数整理日期NOW() :用来获取当前系统时间判断ISNULL :用来判断某个字段是否为空平时判断一个字段是否为空,可能最喜欢用 is null ,感觉不是很优雅其实,mysql提供了 ISNULL 函数可以帮助我们判断某个字段是否为空比如:select * from user where isnull(remark);对比一下使用 is null :select * from user where remark is null;有的说,使用 ISNULL 效率更好一些,这
2021-09-10 00:01:49
281
原创 Maven系列 - idea删除自定义的archetype
有时候想把之前添加到idea的自定义脚手架原型删除,发现idea里面找不到删除按钮,后来在网上找到了相关资料,这里记录一下idea暂时没有提供删除操作,我们需要找到自定义脚手架原型的配置文件,删除相应的配置即可,配置路径如下:MacOS系统路径/Users/xxx/Library/Caches/IntelliJIdea2019.1/Maven/Indices/UserArchetypes.xmlWindows系统路径C:\Users\xxx\.IntelliJIdea2019.1\s.
2021-08-14 13:12:07
896
3
原创 # Java实战系列 - 使用APT编译期自动生成代码
本文主要介绍如何使用APT在编译期生成class文件准备开始之前,需要引入jar包,一个是谷歌的工具包,帮助我们自动生成META-INF目录下的配置,另一个是生成class文件的工具<dependency> <groupId>com.google.auto.service</groupId> <artifactId>auto-service</artifactId> <version>1.0-rc2.
2021-07-27 20:42:30
1198
1
转载 源码系列 - 一行一行分析AbstractQueuedSynchronizer
在分析 Java 并发包 java.util.concurrent 源码的时候,少不了需要了解 AbstractQueuedSynchronizer(以下简写AQS)这个抽象类,因为它是 Java 并发包的基础工具类,是实现 ReentrantLock、CountDownLatch、Semaphore、FutureTask 等类的基础。Google 一下 AbstractQueuedSynchronizer,我们可以找到很多关于 AQS 的介绍,但是很多都没有介绍清楚,因为大部分文章没有把其中的一些关键的
2020-08-30 21:27:34
197
原创 源码系列 - 一行一行分析 ThreadPoolExecutor 源码
源码系列 - 一行一行分析 ThreadPoolExecutor 源码1 成员属性// ctl = RUNNING// RUNNING | 0 = 1010 0000 0000 0000 0000 0000 0000 0000 | 0000 0000 0000 0000 0000 0000 0000 0000 = 1010 0000 0000 0000 0000 0000 0000 0000 = RUNNING// 简单说下ctl,作者把ctl分为两部分// 第一部分为高3位,表示线程池状态;/
2020-08-19 17:31:12
143
原创 # Spring Boot 实战系列 - 优雅处理异常
Spring Boot 实战系列 - 优雅处理异常准备工作pom.xml 依赖如下<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <d
2020-08-19 17:16:33
204
原创 # MySQL系列 - 创建高性能索引
索引的分类索引分为B-Tree索引、哈希索引、空间索引、全文索引、其他等索引。在 MySQL 中,最常用的是 B-Tree 索引(也就是我们常说的B+树索引,这里B-Tree索引只是一个分类)索引的优点索引大大减少了服务器需要扫描的数据量索引可以帮助服务器避免排序和临时表索引可以将随机I/O变成顺序I/O创建高性能索引下面根据不同的情况来说明,如何创建合适并且高性能的索引来提高索引效率。独立的列如果查询中的列不是独立的,则 MySQL不会使用索引。所谓独立的列指的是
2020-06-29 10:22:29
316
原创 # Spring实战系列 - Aspect 五种通知切面通知执行顺序
日常开发中经常会使用到 Spring AOP,通知类型有:Around、Before、After、AfterReturning、AfterThrowing ,本文主要讲解五种通知都有时,正常和异常情况下的执行顺序,以及多个切面存在时,执行顺序如何正常逻辑代码接口定义如下public interface UserService { void saveUser(); ...
2020-04-17 15:46:22
1433
原创 # Spring系列 - Bean 生命周期
网上已有许多讲解 Spring Bean 生命周期的文章,但大多都是文字,看起来费劲,本文通过图的形式展现 Bean 的完整生命周期废话不多说,直接看下图
2020-04-15 10:58:24
157
原创 # Spring实战系列 - 干掉 if else
项目开发过程中,有时经常需要根据不同的条件做不同的事情,于是 if else 代码到处都是,本文就来讲讲如何优雅干掉难缠的 if else先来看看使用 if else 的情况以支付为例,代码如下@Servicepublic class PayService { /** * 支付 * * @param orderInfo * @par...
2020-03-30 10:53:52
247
原创 # Elasticsearch系列 - 性能优化
本文主要介绍一些能够提升ES性能的优化手段,以及一些防坑措施,请大家参考。内存设置由于ES构建基于lucene, 而lucene设计强大之处在于lucene能够很好的利用操作系统内存来缓存索引数据,以提供快速的查询性能。lucene的索引文件segements是存储在单文件中的,并且不可变,对于OS来说,能够很友好地将索引文件保持在cache中,以便快速访问;因此,我们很有必要将一半的物理...
2020-03-30 10:50:47
224
原创 # 面试系列 - MyBatis
本文准备了一系列MyBatis相关面试题及其答案。什么是 MyBatis ?标准答案MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objec...
2020-02-09 13:33:57
192
原创 # Java实战系列 - 线程池中的线程出现异常
问题:线程池中的线程执行任务出现异常,该线程接下来的命运如何?结论:线程会结束,线程池会新建线程替换该线程验证:编码验证,代码如下public class ThreadPoolExceptionTest { // 创建一个核心线程数、最大线程数都为1的线程池,任务队列最大容量为10 private static ThreadPoolExecutor executor = n...
2020-01-14 09:22:55
923
原创 # Spring Boot 实战系列 - 发送邮件
使用 spring boot 快速开发发送邮件功能准备工作pom.xml 文件依赖如下<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-star...
2020-01-13 11:11:28
280
原创 # Spring Boot 实战系列 - 方法异步处理
一般在一个方法中需要处理多个任务,其中某些任务无关紧要(如发送短信、记录操作日志等),可以使用异步处理那些无关紧要的任务,从而提高整个请求的相应时间。下面演示使用 spring boot 快速开发方法异步处理准备工作pom.xml 依赖如下<dependencies> <dependency> <groupId>org.sp...
2020-01-13 11:03:51
276
原创 # Elasticsearch系列 - 分页查询
Elasticsearch分页主要有三种方式,分别是普通的from+size分页、scroll api滚动分页、search_after分页,下面依次介绍这三种分页from+size分页查询脚本GET /run-store/store/_search{ "query": { "match_all": {} }, "size": 1, "from": 0, ...
2019-11-29 20:45:52
479
原创 Spring Boot 异常系列 - Redis整合ES启动报错
在项目中同时使用 spring-boot-starter-data-redis 和 spring-boot-starter-data-elasticsearch 的过程中,遇到了一些问题,错误以及解决方案如下报错信息java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframe...
2019-11-21 14:23:05
574
原创 MySQL索引失效总结
一、准备工作创建一张表 t_index ,脚本如下:CREATE TABLE `t_index` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '表记录标识号,数据库主键,不用于实际业务', `key1` varchar(32) COLLATE utf8_bin NOT NULL DEFAULT '' COMM...
2019-09-21 11:13:04
401
原创 源码系列 - 一行一行分析 HashMap 源码
1 数据结构开始之前,先简单介绍下 HashMap 数据结构,如下图(jdk1.8)如上图, HashMap 数据结构是一个Hash表,当表中一个节点元素个数小于8时是一个单向链表,大于等于8时,调整为红黑树(jdk1.8做的改进)2 设计思想数组+链表+红黑树容量为2的n次方,提升数组索引位置的计算效率采用高低链的方式来解决重复计算hash的问题,提升扩容效率链表长度大于等...
2019-08-22 13:37:37
222
原创 设计模式 - 工厂模式
设计模式 - 工厂模式简单工厂模式抽象产品角色(牛奶)package com.lushwe.pattern.factory;/** * @Author Jack * @Description * @Date Create in 2018/6/21 14:43 */public interface Milk { String getName();}工厂角色...
2019-08-15 15:34:16
103
原创 Maven系列 - 脚手架搭建&使用
本文简单介绍一下使用自己的脚手架创建工程第一步 创建脚手架工程创建脚手架工程 fly-bom定义好模板(包、配置等)第二步 生成脚手架原型方法一 IDE生成打开idea,进入新建工程页面,左侧选择 maven ,并勾选 Create from archetype ,点击添加 Add archetype 按钮输入脚手架原型的 GroupId 、 ArtifactId(注意要加 ...
2019-08-10 19:33:57
4538
原创 Spring Boot 实战系列 - 参数校验
Spring Boot 官网关于数据校验,只有寥寥几句,而且例子也相当简单,如下:@Service@Validatedpublic class MyBean { public Archive findByCodeAndAuthor(@Size(min = 8, max = 10) String code, Author author) { ... }}但...
2019-07-19 19:39:51
271
原创 # 设计模式 - 代理模式
设计模式 - 代理模式1 代理模式概要分类:静态代理、动态代理角色:抽象接口、代理对象、被代理对象(目标),由被代理对象来做最终的决定代理对象通常来说会持有被代理对象的引用(以便代理角色完成工作之前,或者之后能找到被代理对象,能够通知被代理对象)2 代理的实现2.1 静态代理定义一个抽象接口 Person,定义一个实现类 Son,创建一个对象 Mother 实现接口 Perso...
2019-06-17 17:16:07
180
原创 Spring Boot 实战系列 - 开发你自己的 Starter
开发你自己的Spring Boot StarterSpring Boot Starter 简介Spring Boot Starter 是一组方便使用的依赖关系描述符,可以在应用程序中包含这些描述符。借助 Spring Boot Starter 开发人员可以获得所需的所有 Spring 及相关技术的一站式服务,而无需查看示例代码或复制粘贴依赖的库文件。譬如,如果需要 Spring JPA 访问...
2019-06-14 14:05:52
2475
1
原创 设计模式 - 单例模式
设计模式-单例模式0x01 懒汉式public class LazySingleton { private static LazySingleton instance; // 私有构造方法,防止外部创建对象 private LazySingleton() { } public static synchronized LazySingleton ge...
2018-12-03 22:21:50
159
原创 # Spring系列 - 事务传播特性
事务传播REQUIREDSUPPORTSMANDATORYREQUIRES_NEWNOT_SUPPORTEDNEVERNESTED伪代码 1:@Servicepublic class UserOneManagerImpl implements UserOneManager { @Transactional(rollbackFor = Exception.class)...
2018-10-31 23:28:50
257
原创 Lambda表达式使用问题记录
List 转 Map报错: at java.util.stream.Collectors.lambda$throwingMerger$0(Collectors.java:133) at java.util.HashMap.merge(HashMap.java:1254) at java.util.stream.Collectors.lambda$toMap$58(Collectors....
2018-10-08 10:41:47
3032
原创 CountDownLatch学习记录
CountDownLatch相关说明jdk1.5 之后引入的工具类,一般在多线程并发编程中使用 如:一个线程需要等待其他一个,或多个线程完成相应操作使用示例import java.util.concurrent.CountDownLatch;/** * CountDownLatch工具使用测试 * * @author Jack Liu * @date 2018/8/8...
2018-08-08 21:08:28
332
原创 算法-合并两个有序数组
合并两个有序数组题目: 有两个有序数组A和数组B,合并到一个数组C中,保证数组C仍然有序思路: 假设两个有序数组都是升序,新建数组C,长度为数组A和数组B的长度之和,从索引0出依次设置数组C对于下标的值代码:public class SortedArraySort { public static void main(String[] args) { i...
2018-07-27 14:15:00
1378
原创 Linux操作系统下一台机器如何运行多个Tomcat
Linux操作系统下一台机器运行如何多个Tomcat第一步:下载tomcat,这个直接官网下载即可,下载连接;第二部:第三部:欢迎使用Markdown编辑器写本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离...
2018-06-08 10:18:40
812
1
原创 Idea问题解决方法
最近开始从Eclipse转换到Idea,把遇到的问题以及解决方法贴出来,一方面防止下次遇到再浪费时间,另一方也希望能帮到各位同学,今天先记录一个问题,后续不断更新1、idea从Github上Pull完代码后,新增的maven依赖包一直下载不下来,很是郁闷,最后只能用笨方法答:关闭项目,然后重新导入该项目,最后解决了这个问题,但是还没有搞懂为什么2、...
2018-05-11 20:58:15
446
原创 Redis集群搭建
【哨兵模式】本文使用三台机器搭建Redis,一主两从,三哨兵安装Redis1、下载Redis,如redis-4.0.9.tar.gz2、执行命令:tar -zxvfredis-4.0.9.tar.gz,解压3、进入/redis-4.0.9目录下,执行命令:make,进行安装(估计需要一分钟左右)4、执行命令:cp redis.conf redis_6379.conf,复制redis配置文件5、执...
2018-05-02 11:22:20
239
原创 Dubbo包编译版本较高导致项目启动失败
问题描述:公司下载项目后,自动下载依赖JAR,有时候自动下载的Dubbo包的JDK编译版本比运行环境JDK版本高,启动会一直报错,错误信息如下Caused by: java.lang.ExceptionInInitializerError at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at su...
2018-04-26 10:27:53
8956
原创 Kafka集群搭建
本文介绍搭建kafka集群,采用两台机器好了,直接开始了:1、下载zookeeper、kafka(zookeeper-3.4.10.tar.gz、kafka_2.8.0-0.8.0-beta1.tgz)2、部署zookeeper集群(参考:https://blog.youkuaiyun.com/kxkkl/article/details/79964275)3、部署kafka,解压后修改配置:kafka_2.8...
2018-04-18 16:50:01
538
poi-bin-3.10-FINAL-20140208.zip
2014-12-26
s2sh整合框架
2012-12-10
struts2+spring+ibatis增删改查
2012-11-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人