自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 资源 (10)
  • 收藏
  • 关注

原创 数据库设计范式

大部分业务开发都需要我们开发人员自己进行表结构的设计,设计关系数据库时,会要求我们遵从不同的规范要求,设计出合理的关系型数据库,只有设计出更加合理的数据库表结构,才能在业务处理和后期维护变得更加方便。这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。关系数据库有六种范式(Normal form):第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。第一范式主要针对具体某一列;

2024-08-08 11:30:23 613

原创 Mybatis Plus配置多数据源

该项目主要描述了Mybatis Plus多数据源的配置和使用,其中详细记录的配置过程,整个过程从数据库表的创建到数据初始化都有详细的记录说明。另外,如果存在同一个表在多个数据源中都存在的情况,有一些注意事项,下面看文章通过例子说明。

2024-08-07 18:30:28 2477

原创 MySQL数据清洗到TiBD

一、业务背景公司主要做的业务是类似贝壳的二手房租售,数据库中存了上亿级别的房源数据,之前数据库使用的是 mysql,后面需要将 mysql 数据库切换成了 Tidb,在切换的过程中,需要将老库的数据经过数据清洗后再存入新库(因为有一些表结构的设计变了),其中我们处理的一个逻辑就是将房间下业主信息从老库清洗到新库:我们需要按照城市维度,查询新库所有的房间,然后拿着新老库的房间对应关系,再到老库中找到所有对应的房间,然后通过房间再找到每个房间对应的业主信息,最后将业主的不同维度信息(一共5个维度信息)清洗到新

2024-08-01 11:08:58 1960

原创 记一次for update“同一事务”中update无法获取数据锁的解决

问题原因就在这,虽然测试环境实际上只有一个数据库,但是ShardingJDBC配置了主从,那么即使只有一个数据库,也会产生两条连接,一条用于主、一条用于从,所以在select for update语句的时候默认使用从库的链接的事务中获取数据,并且将数据加锁,而表面上看代码是同一事务的update时,实际上是使用主库的链接的事务进行更新数据,所以select 和 update不在同一个事务中,故代码层面看是同一事务的先后两个操作,update时实际获取不到之前的select的锁,所以发生等待直至超时报错。

2024-07-30 18:34:14 849

原创 git简单使用总结

Git是一种分布式版本控制系统。本地工作目录、暂存区和仓库,也可以称为三棵树,不过在仓库这个地方又可以分为本地仓库和远程仓库。:本地工作目录(工作区):暂存区Repository:仓库,仓库又分本地仓库和远程仓库Remote:远程仓库整个Git版本管理过程可以简单的理解为文件在三棵树上的管理过程:本地(本机)创建的文件,首先会存在本地工作目录,当使用git add命令后,会将文件同时保存到暂存区,在暂存区的文件使用git commit后,会将暂存区的文件提交到仓库,使用git push。

2024-07-30 15:23:21 746

原创 各种集合、对象的对比记忆

同类型的StringBuilder和StringBuffer的实现原理一样,其父类都是AbstractStringBuilder。StringBuffer是线程安全的,StringBuilder是JDK 1.5新增的,其功能和StringBuffer类似,但是非线程安全。因此,在没有多线程问题的前提下,使用StringBuilder会取得更好的性能。String是不可变对象,每次对String类型进行操作都等同于产生了一个新的String对象,然后指向新的String对象。

2024-07-29 17:47:42 747

转载 Java的12个语法糖

前面介绍了12种Java中常用的语法糖。所谓语法糖就是提供给开发人员便于开发的一种语法而已。但是这种语法只有开发人员认识。要想被执行,需要进行解糖,即转成JVM认识的语法。当我们把语法糖解糖之后,你就会发现其实我们日常使用的这些方便的语法,其实都是一些其他更简单的语法构成的。有了这些语法糖,我们在日常开发的时候可以大大提升效率,但是同时也要避免过渡使用。使用之前最好了解下原理,避免掉坑。说明:本文转载自公众号 Hollis 的文章《原创 | 不了解这12个语法糖,别说你会Java!侵权删。

2024-07-27 11:36:39 27

原创 GIT使用log命令显示中文乱码

1、运行Git Bash窗口,在该窗口导航条(即最上面)右键,选择Options−>Text,找到下面两处:Locale:选择 zh_CN ;Charector set:选择 UTF-8。2、到Git Bash命令窗口输入如下设置命令语句:git config --global i18n.commitencoding utf-8git config --global i18n.logoutputencoding utf-8export LESSCHARSET=utf-8

2024-07-26 16:06:16 320

原创 深入理解HashMap扩容机制(JDK8)

Java 8 在新增数据存入成功后进行扩容。扩容会发生在两种情况下(满足任意一种条件即发生扩容):(1)当前存入数据大于阈值即发生扩容;(2)存入数据到某一条链表时,此时该链表数据个数大于8,且数组长度小于64即发生扩容。此外需要注意一点java7是在存入数据前进行判断是否扩容,而java8是在存入数据后再进行扩容的判断。

2024-07-26 15:14:50 778

原创 深入理解HashMap扩容机制(JDK7)

Hashmap的扩容需要满足两个条件:当前数据存储的数量(即size())大小必须大于等于阈值;当前加入的数据发生了hash冲突。因为上面这两个条件,所以存在下面这些情况就是hashmap在存值的时候(默认大小为16,负载因子0.75,阈值12),可能达到最后存满16个值的时候,再存入第17个值才会发生扩容现象,因为前16个值,每个值在底层数组中分别占据一个位置,并没有发生hash碰撞。当然也有可能存储更多值(超多16个值,最多可以存27个值)都还没有扩容。

2024-07-26 14:50:44 1484

springmvc jar包

springMVC所必须的几个jar包,欢迎大家下载,如果有问题,也欢迎大家留言指出,我看到后一定第一时间答复或者修改,谢谢大家

2017-09-22

JavaScript中文api.chm

JavaScript中文api,希望对大家有所帮助

2014-06-19

jQuery中文API.chm

jquery中文api,希望对大家有所帮助

2014-06-19

jquery1.8.2_中文api.chm

jquery开发中文api参考文档,希望对大家有所帮助

2014-06-19

jQuery1.8.0_中文api.CHM

jquery中文API参考文档,希望对大家有所帮助

2014-06-19

spring3.0_api.CHM

spring3.0的api的开发文档,希望对大家有所帮助

2014-06-19

Struts2 API.chm

Struts2的API开发文档,欢迎大家下载

2014-06-19

Hibernate中文API.CHM

绝对是中文的,大家放心使用。谁用谁知道~

2014-06-19

jsonAPI.chm

打开是把提示框中有个每次提示取消,就能看见内容了

2014-05-30

空空如也

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

TA关注的人

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