- 博客(16)
- 收藏
- 关注
原创 MySQL-locate()函数
判断字符串(string)中是否包含另一个字符串(subStr)locate(subStr,string) :函数返回subStr在string中出现的位置// 如果字符串 string 包含 subStrlocate(subStr,string) > 0 // 如果字符串 string 不包含 subStrlocate(subStr,string) = 0使用方式SELECT * FROM party_course_studyWHERE LOCATE(findCode, '00
2021-12-06 15:25:48 373
原创 最近开发项目的一些感想
最近公司业务比较多,码的代码也比较多,有新开的功能,也有对旧功能的改造。在这个过程中,就免不了对别人旧代码的改动。由此得出了几点开发心得:不要着急写代码:接到开发任务,先不要着急下手写代码。先把传达下来的开发文档仔细研读一边,根据需求研讨会上面讲的内容对文档进行核对,看看哪些接口是需要编写的,编写的时间大概需要多久,给自己定一个预估的排期(包括自己对接口的自测时间)。继而再考虑整个模块的设计编码工作,设计所需时间不比开发时间短。避免长期用打补丁的方式去写代码:例如写的接口肯定没法对所有可能出现的业务场
2021-09-22 23:17:24 170
转载 MySQL 亿级数据导入导出/数据迁移笔记
MySQL 亿级数据导入导出/数据迁移笔记https://blog.csdn.net/qq_21108311/article/details/82559119
2021-09-03 16:33:40 291
原创 Mysql索引为什么用B+树
在Mysql中,按数据结构来区分,可以分为Hash和B+树。B树和B+树两者中很重要的一个区别就是:B+树只有叶子节点存放数据,其余的节点,都只用来存放索引,而B树则是每个索引节点都会有Data。 其次,当数据量较大的时候,由于B树的非叶子节点,只存储索引,因此它能存储的数据就更多。因为众所周知,判断查询效率最重要的一个原因就是对磁盘IO的次数,次数越多,效率越低,反之则越高。因此,利用B
2021-08-17 22:43:07 206
原创 mysql修改唯一索引
ALTER TABLE TableName DROP INDEX INDEX_NAME;ALTER TABLE TableName ADD UNIQUE INDEX_NAME(COLUMN);
2021-08-10 14:22:15 6339
原创 SpringMVC的执行流程
图解:大致执行流程:用户发起请求,至【前端控制器】DispatcherServletDispatcherServlet根据收到请求信息,调用【处理器映射器】HandlerMapping(一个接口,看其实现类)【处理器映射器】根据请求url找到具体的处理器,生成处理器执行链HandlerExecutionChain(包括处理器对象和处理器拦截器)一并返回给DispatcherServletDispatcherServlet根据处理器Handler获取处理器适配器HandlerAdapter执行H
2021-07-05 23:25:30 71
原创 Java锁升级简述
什么是锁:在并发环境下,多线程针对同一个资源进行争抢,可能会导致数据出现异常,为了解决这个问题,就引入了锁机制。通过锁对资源进行锁定。 在JVM当中,寄存器、虚拟机栈、本地方法栈是线程独享(安全)的。但是Java堆(保存所有的Java对象和数组)、方法区、运行时常量池是线程共享的,就有可能出现线程安全问题。每个object对象都有一把锁,
2021-06-16 15:27:45 189
原创 策略模式运用
什么是策略模式在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context对象的执行算法。简而言之,就是可以根据不同业务类型,去实现相对应的逻辑。有多种类似的场景需要处理的时候,可以避免N多的if…else…(不过也是需要看实际情况去运用)。假如现在有一个业务场景:游戏活动中玩家每日签到,一周7天中完成签到的
2021-06-09 22:46:52 169
原创 Spring事务
事务的四个特性(ACID):原子性(Atomicity)事务是数据库的逻辑工作单元,事务中的操作要么都成功要么都失败一致性(Consistency)事务执行的结果必须是是数据库从一个一致性状态到另一个一致性状态。例如当一个事务执行成功了,那么这可以说现在数据库是处于一致性状态。如果当中发生错误,这些未完成的事务对数据库所做的修改有一部分已经写入了物理数据库,那么当前数据库就处于不一致状态隔离性(Isolation)一个事务在执行的过程中,不能影响到其他事务的执行。寄一个事务内部的操作,对于其他
2021-06-08 11:52:14 80
原创 Spring中Bean的生命周期
在Java项目的开发当中,Spring框架现在已经被非常广泛地运用。其中了解Bean的生命周期,是对框架理解和熟练运用非常有必要的。一般开发当中通常也是运用ApplicationContext作为Spring的容器,因此这里探讨的也是ApplicationContext中bean的生命周期。...
2021-06-02 21:29:17 98
原创 Redis 地理位置(geo)
Redis在3.2以后,增加了一个模块GEO,可以用于存取经纬度信息,然后通过命令可以求出两个地点之间的距离。 根据这一个特性,便可以实现一个在应用中经常见到的模块:附近的人。 大概的实现思路:获取到用户信息,通过GEOADD命令添加redis中,redi
2021-06-01 16:28:04 1563
原创 spring源码环境搭建
spring源码环境搭建Spring源码阅读环境搭建遇到的问题记录由于源码编译需要在spring源码目录下执行命令:gradlew.bat cleanIdea :spring-oxm:compileTestJava 但是该命令需要去下载gradle-6.8.3-bin.zip这个zip文件。会出现timeout导致异常,因此需要先上网把该包下载下来,然后去修改该目录下的properties文件:D:\Projects\spring-framework\spring-framework\gradle\
2021-06-01 11:05:43 123
原创 synchronized嵌套导致的死锁问题
最近在继续了解synchronize的过程中,回想起项目曾经发生过由于synchronized被滥用,而导致死锁的问题。所以简单用一篇文章记录下,模拟业务代码,分析下原因以提醒自己。大概的操作如下:当两个资源都需要进行操作的时候,由于都锁对象,而且保持请求,所以直接就死锁了。...
2021-05-29 17:04:20 1244
原创 docker学习记录
基本命令仓库相关操作docker pull #从远程仓库拉取镜像到本地docker push #推送本地镜像到远程仓库docker search #在仓库搜索镜像docker login #登录到官方仓库Docker Hubdocker logout #退出登录镜像相关操作docker build #从Dockerfile构建镜像docker pull #同上docker push #同上docker history #显示镜像的历...
2021-05-29 10:36:49 106
原创 ThreadPool
为什么要使用线程池 先有的项目开发中经常会用到线程池,例如游戏活动开启流程、结束流程、jms消息接收的处理等等。所以在Java项目开发中是一个比较重要的点,因而初步记录一下线程池的概念和注意事项。 在日常的开发中,无法避免的就是短时间内需要处理多个请求,那么由多个请求的时候便会出现创建多个线程,去处理业务的情况。但是,新建线程,销毁线程对系统来说也是一个不小的开销,甚至于创建/销毁线程的消耗,大于处理业务的消耗。因此,线程池的重要性便显露出来。线程池它提供了一种限制和管理资源的手段,每个线程池当中会
2021-05-28 16:29:50 87
原创 监听者模式
监听者模式在公司的项目中,框架代码设计当中用到了监听者模式。主要用于就是对于游戏活动当中,抽奖记录/排行榜的信息更新。例如现在游戏中开启着一个活动《幸运轮轮转》,策划要求做到功能:当玩家打开该活动的时候,假如有玩家抽到稀有奖励,需要动态更新到抽奖信息面板当中去,让正在参加活动的玩家能动态看到抽奖记录更新,类似于轮播的效果。所以的话,可以借助监听者模式进行开发。监听者模式的核心就是让多个观察者对象同时监听某一个主题对象(中奖记录)。这个主题对象在状态变化时(有玩家抽到稀有奖励),会通知所有的观察者对象(正
2021-05-26 15:39:34 573 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人