自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 手把手教你Spring源码编译,亲测多版本可行

用最少的时间,用最简单的方式,快速编译多版本的spring源码,开启源码学习之路

2021-10-14 15:06:27 2086

原创 JVM笔记系列一 不一样的String

系列文章目录待补充这是第一篇,系列文章目录待补充文章目录系列文章目录前言一、JVM是什么?二、方法区中的变化1.Java7开始变革2.对String的一些影响三、String不同创建方式的区别变化1.new String("19"); 与 String s1 = "19";2. new StringBuilder("1").append("1").toString(); 与 new String("1") + new String("1");3. 分析四种创建的字节码总结前言  

2021-08-14 13:36:58 239

原创 Spring中的事务@Transactional细节与易错点、幻读

目录事务是什么?为什么要使用事务?如何使用事务?事务的传播带来的几种结果两个特例:propagation属性事务是什么?ACID,事务内的一组操作具有 原子性 、一致性、隔离性、持久性。 Atomicity(原子性):一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被恢复(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。 Consistency(一致性):.

2021-07-25 20:41:14 1508

原创 HashMap中扩容导致环链现象分析

目录为什么会出现环链?什么时候会出现环链?出现环链的场景: 数据准备、结果预期 模拟的转移代码多线程的场景分析形成的根本原因为什么会出现环链? HashMap是线程不安全的,并且其扩容的代码会将原来的链表进行反序,例如原先的是 3-> 2-> 1,现在还在同一位置则是 1->2->3,那么在多线程并发操作的情况下一个正序,一个反序,就会有可能出现。什么时候会出现环链? 多线程操作,同时去扩容,当一...

2021-07-16 20:44:43 910 1

原创 Java之自动拆箱装箱说明

在Java中, 基本类型的数值比较使用= =;包装类型的比较,使用equals来比较的是其中的值,包装类型使用 = = 会比较对象的引用地址,只有两个对象的地址为同一个时才是返回true。那用 = = 比较包装类型跟基本类型,为啥就能有正确的结果呢?

2020-06-09 21:18:24 191

原创 springboot读取sftp的文件

1.添加pom依赖(基于springboot项目)<dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>0.1.54</version> </...

2020-03-09 10:06:17 1712

原创 PageHelpe的total总数不正确回溯

PageHelper使用三步走:设置分页参数 PageHelper.startPage(pageNum, pageSize);SQL查询,无需做额外修改 List<Map<String, String>> productList = mapper.getAllProduct(productName);构建PageInfo 对象 PageInfo...

2019-12-02 16:27:34 2241 1

原创 SpringDataJpa之动态查询 Example与Specification

动态查询之Example官方文档介绍The Query by Example API consists of three parts:Probe: The actual example of a domain object with populated fields.ExampleMatcher: The ExampleMatcher carries details on how to ...

2019-06-22 21:49:38 6297 5

转载 fastjson 解析前台字符串(JSONObject && JSONArray)

基本规范#####Object转JSON字符串:String jsonStr = JSONObject.toJSONString(object);#####JSON字符串转JSONObject:JSONObject jsonObject = JSONObjcet.parseObject(jsonStr);#####JSON字符串转Object对象T t = JSON.parseOb...

2019-05-30 18:44:20 1582

原创 SpringBoot2.1.4快速整合session-redis实现分布式session共享,极少配置

SpringBoot2.1.4与redis、springsession集成redis集成spring-session-Redis开箱即用的便利集成redis1.引入jar包 <!-- redis --> <dependency> <groupId>org.springframework.boot</groupId> <art...

2019-05-26 21:59:48 9752 2

原创 SpringDataJpa直接调用增删改查、分页以及批量操作

SpringDataJpa基本增删改查自定义查询与更新jpa实现分页批量操作批量保存跟删除批量更新以上部分的完整代码基本增删改查每个Repository都需要实现JpaRepository<T, ID>,然后可根据标准化的操作方式以及实体字段来定义接口方法,优势在查询方面,支持多字段,多类型(大于、小于、等于、in、like、between and。。。)@Repository...

2019-05-18 22:54:10 5606

原创 springboot使用fastJson,解决中文乱码

利用fastjson替换掉springboot自带的jackson,有两种替换方法两种替换方法启动类中覆写的configureMessageConverters方法继承WebMvcConfigurerAdapter来覆写方法处理乱码的另两种方法spring.http.encoding.force = true@ReqRequestMapping注解上添加produces = "applicati...

2019-05-18 12:13:42 5343 2

原创 Java测试之Mockito与PowerMock(二)

PowerMock的使用引言导包如何使用PowerMock测试静态方法遇到的问题:解决方法:引言 上节在使用mock测试时,遇到final、private、static方法,但Mockito不支持这些方法的测试,这时我们需引入PowerMock导包 想要使用PowerMock,就得先导入其jar包 <parent> <groupId>org....

2019-04-29 21:43:38 16636

原创 Java测试之Mockito与PowerMock(一)

测试中难免会遇到一个类依赖于另一个类,这样在测试时就不好控制依赖,需要完整的测试功能的话就得搭建好整套环境。此时可使用Mockito来mock相应的依赖来进行测试,并且spring-boot-starter-test自带了mockito-core,可直接使用。<dependency> <groupId>org.springframework...

2019-04-29 21:13:40 3043

原创 【强制】所有的覆写方法,必须加@Override 注解

阿里的Java开发手册中将加@Override 注解规定为强制,其相应说明如下:getObject()与 get0bject()的问题。一个是字母的 O,一个是数字的 0,加@Override可以准确判断是否覆盖成功。另外,如果在抽象类中对方法签名进行修改,其实现类会马上编译报错 子类与父类有符合覆写规定的方法时,不加@Override 注解,也是能够覆写的,但是在实际使用时可...

2019-04-18 11:27:33 6712

转载 spring为什么推荐使用构造器注入

转载自https://www.cnblogs.com/joemsu/p/7688307.html目录一、前言二、常见的三种注入方式2.1 field注入2.2 构造器注入2.3 setter注入三、构造器注入的好处四、答疑五、总结一、前言​ Spring框架对Java开发的重要性不言而喻,其核心特性就是IOC(Inversion of Control, 控制反转)和AOP...

2018-08-17 22:58:18 3837 8

原创 内连接和外连接的区别

内连接的特性是只显示符合连接条件的记录,外连接必然会返回其中一张表的全部数据,哪怕不匹配。假设一个数据库中有两张表,一张是学生表StudentInfo,一张是班级表ClassInfo,两张表之间用ClassId字段进行关联。如果用内连接(inner join on),正常的写法是这样的:Select StudentInfo.*,ClassInfo.* from StudentIn...

2018-08-13 19:27:54 2836

原创 Sql语句中IN和exists的区别及应用

not in 和not exists  如果查询语句使用了not in 那么内外表都进行全表扫描,没有用到索引;而not extsts 的子查询依然能用到表上的索引。所以无论那个表大,用not exists都比not in要快。 in 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。一直以来认为exists比in效率高的说法是不准...

2018-08-05 18:42:37 9396

原创 gpload 导入数据的三种模式insert、update和merge

Pivotal Greenplum Database Documentation v4.3.x gpload可以将外部数据导入至数据库,并且提供了三种导入模式,基本的导入配置YML文件如下所示:The basic structure of a load control file is:---VERSION: 1.0.0.1DATABASE: db_nameUSER: db_us...

2018-07-18 19:57:46 4300

原创 Mybatis通用Mapper介绍与使用

前言使用过jpa后再使用mybatis就会反感重复写xml文件里面的简单增删改查sql,一些复杂的特殊的业务逻辑sql当然是不可避免的,但是大量结构类似的增删改查SQL就是大大影响程序员的开发效率。而且,当数据库表结构改动时,对应的所有SQL以及实体类都需要更改。这时,通用Mapper便应运而生……什么是通用Mapper通用Mapper就是为了解决单表增删改查,基于Mybatis的插件。开发人员不...

2018-06-27 14:39:11 2412

原创 Spring Boot环境下出现No operations allowed after connection close错误

一个基于springcloud的微服务项目,详细配置: SpringCloud + SpringMVC+SpringData JPA+ MySql+Postgresql其中项目配置了多数据源,前期开发测试是没什么问题的,但是等到项目在服务器上面测试时,第二天就上午出现了数据库连接异常。经过查看日志发现下面这个异常:注意异常信息: No operations allowed after connec...

2018-06-26 15:54:55 57805 5

转载 云计算的三种服务模式:IaaS,PaaS和SaaS

云计算的三种服务模式:IaaS,PaaS和SaaS  云服务”现在已经快成了一个家喻户晓的词了。如果你不知道PaaS, IaaS 和SaaS的区别,那么也没啥,因为很多人确实不知道。  “云”其实是互联网的一个隐喻,“云计算”其实就是使用互联网来接入存储或者运行在远程服务器端的应用,数据,或者服务。  任何一个使用基于互联网的方法来计算,存储和开发的公司,都可以从技术上叫做从事云的公司。然而,不是...

2018-06-10 19:18:44 824

转载 mybatis中#{}与${}的差别(如何防止sql注入)

默认情况下,使用#{}语法,MyBatis会产生PreparedStatement语句中,并且安全的设置PreparedStatement参数,这个过程中MyBatis会进行必要的安全检查和转义。#相当于对数据 加上 双引号,$相当于直接显示数据示例1:执行SQL:select * from emp where name = #{employeeName}参数:employeeName=&gt;S...

2018-06-08 18:38:10 1603

原创 桥接设置两个路由器

1、进入主路由器的设置界面,然后在左侧选项条中点击【运行状态】,在WAN口状态栏可以找到DNS服务器,一共有两个,主DNS和备选DNS服务器,记录下来。2、点击【网络参数】---【LAN口设置】,把路由器的LAN地址设置为192.168.1.1保存,此时会重启重启后回到设置界面点击【无线设置】---【基本设置】。                                       3、设置...

2018-05-25 21:25:53 2464

原创 [学习][Vim]行号的显示与隐藏,跳转指定的行

vim命令进入文本编辑后,i进入编辑页面,ESC退出后,再输入:冒号,接着输入下面的命令显示行号输入命令:    set nu或者    set number取消显示行号命令:    set nonu或者    set nonumber永久生效的配置在home下新建.vimrc文件,添加set number即可。vim在启动时会加载vimrc文件,因此所有设置都可以放入其中。vim ~/.vimr...

2018-05-23 16:23:01 1143

转载 Greenplum中装载和卸载数据

装载和卸载数据GP装载概述关于外部表1) 外部表允许用户像访问标准数据库表一样访问外部表 2) 结合GP的并行文件分配程序(gpfdist),外部表支持在装载和卸载数据时全并行化利用所有segment实例的资源 3) GP还可以利用Hadoop分布式文件系统的并行架构来访问文件 4) GP提供了两种类型的外部表: 可读外部表:用于数据装载,不允许对数据进行修改 可写外部表:用于数据卸载,从数据库表...

2018-05-23 16:06:51 627

转载 对group by的结果集进行分组过滤

解分组,可以这样:对GROUP BY子句后面跟随的列名进行分组,然后对每一个分组而不是整个表进行操作。举例:在产品表中,检索每一个供应商提供的商品的数量。[sql] view plain copymysql&gt; SELECT vend_id,COUNT(*) AS num_prods FROM products GROUP BY vend_id;  结果:+---------+--------...

2018-03-28 14:29:30 15627

转载 Java 字节流 字符流读写

文件读取FileReader fileReader = new FileReader("abc.txt");BufferedReader reader = new BufferedReader(fileReader);String str = reader.readLine();//按行读取字节流写入public void WriteStringToFile(String

2018-01-04 16:50:59 265

转载 Java 中String int double之间的转换

int -> Stringint i=12345; String s=”“; 第一种方法:s=i+”“; 第二种方法:s=String.valueOf(i); 这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢?String ->int s=”12345”; int i; 第一种方法:i=Integer.parseInt(s); 第二种方法:i=Integer.v

2018-01-04 14:54:09 1414

原创 基于struct2实现保存图片到mysql的blob字段和显示

图片的保存本public Connection getConn(){ //1.getConnection()方法,连接MySQL数据库!! Connection con = null; try { Class.forName("com.mysql.jdbc.Driver"); con = DriverMa

2017-12-27 16:31:08 348

原创 HTML表格显示的笔记

前端需要显示的复杂表头 如图所示 <table id="" cellpadding="0" cellspacing="0" border="1"> <thead id="thead"> <tr > <th width="20px" rowspan="2" >序号</th> <th width="20px" rowspan="2" >编号</th>

2017-12-11 17:11:15 461

原创 数据库查询null值时的SQL处理

MySql 里的IFNULL、NULLIF和ISNULL用法区别ifnull(expr1,expr2) 的用法: IFNULL(expr1,expr2)即如果expr1不为空,则返回值为expr1;expr1为NULL,则返回为expr2;

2017-12-10 20:15:44 2018

原创 数据去重的几种实现形式

数据重复问题对数据库进行操作,得到的结果有重复值,这是个不可避免的问题。从源头上分析,分两种情况:一是用户执行了sql语句,此时得到的结果就已经包含重复值;另一种就是返回的对象是执行多条sql语句后得到了,每条sql语句返回的对象没有重复值,但彼此之间存在重复现象,此时进行汇总操作就会出现重复值的情况。执行sql后返回的结果包含重复值

2017-11-09 16:35:20 3643

原创 MyBatis模糊查询的三种方式

直接操作数据库的底层sql语句通过Maybatis实现模糊查询

2017-10-17 15:00:39 1072

原创 SpringMVC之@ModelAttribute

@RequestMapping 设置请求路径 @RequestParam 来接收前台中同名的键值对参数 @PathVariable 映射URL中绑定的占位符@ModelAttribute可以类似于pojo接收多个参数,用Javabean对象存储,再和Model相配合,输出到前台。

2017-09-13 16:01:38 509

原创 从MySQL走向TiDB

记录一下在使用TiDB中遇到的问题,可能你也会遇到,能够让你快速找到是哪设置不合理。快速了解和试用TiDB,我选择了Binary的单节点部署方案 一个完整的 TiDB 集群包括 PD,TiKV 以及 TiDB。启动顺序依次是 PD,TiKV 以及 TiDB。

2017-08-31 20:48:51 20123 7

空空如也

空空如也

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

TA关注的人

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