一.业务场景 数据去重是web开发中经常会遇到的方式之一,数据库操作中有一个关键字distinct主要就是用来做这件事,用来进行去重. 比如进行统计查询的时候,可以这样写 select count(dintinct(需要去重的字段)) from table:这样如果统计的时候,某个字段存在 重复时,就可以很好的去重.现在自己遇到的这种情况不能使用distinct关键字进行去重,因为表中创建得有主键ID,id并不重复, 只是数据表中保存的其他字段存在重复数据,这时候该如何去重呢? 二.需求分析 首…
一.业务场景 考虑到新项目中部分与业务数据相关的表在后期数据量会比较大,架构师在最开始设计项目中与业务数据相关的表时,就已经考虑使用分表来 进行处理,给业务数据相关的每张表都添加统一批次的后缀,查询这些数据时,根据不同表名的后缀和来查询对应的数据信息.如果能够动态的 更改数据表,比如将ai_user表更改为ai_user_20220001,这样就可以动态的查询不同表中的数据. 二.需求分析 最开始考虑使用的是在xml文件中使用if来做条件判断,根据传入参数的不同来动态查询不同的表.这种方式最开始…
一.业务场景 web项目开发中,经常会有的一个操作是记录请求日志,比如记录请求的IP地址,记录请求的路径,记录请求的参数等等. 每个系统都会根据自己的需要来记录一些请求相关的日志.一般会将记录的日志信息保存到数据库中,以便于查看,如出现异常 高频率的访问请求,或者是遇到其他一些问题都可以查看记录的日志来进行排查问题.如果系统的请求比较少的话,直接记录日志 则没什么问题,可是如果请求量比较大的时候,如何来优化日志记录的操作呢? 二.需求分析 本篇文章所说的这种方式是使用异步的方式来记录日志.Jav…
一.业务场景 工作多年,在真实的项目开发中经常会遇到将一个项目拆分成多个工程的情况,比如将一个真实的项目拆分成controller层,service层, dao层,common公共服务层等等.这样拆分比较有利于分清各自所属层需要做的事情,也非常便于管理个层次之间的代码,职责比较清晰.各 个层次之间也会相互依赖,比如controller层需要依赖common层,则直接引入:service层需要引入common层也直接引入:dao层也是同理. 这种处理方式也没什么问题,整个项目依然能够顺利的跑起来,…
一.业务场景 为了加快首页数据查询的效率,因此将首页查询的数据大多数都放在了缓存中,包括各种list集合数据.对这些 从缓存中获取的数据做了一个兜底处理,如果从缓存中没有获取到数据,则直接从数据库中去查询获取数据,然后 在对查询到的数据做进一步的处理.从缓存中获取的数据都已经做排序处理了,可是对查询的数据如何进行排序处理呢? 二.需求分析 这里查询的时候,数据量不多,全国范围内的数据加起来估计也就几千条,因此是按照一定的条件进行全量查询,获取 到数据后在进行过滤,然后是按照指定的要求进行排序.业…
一.业务场景 Web项目开发中,为了加快数据处理的的效率,大量的使用了各种缓存,缓存技术主要使用的是redis.导致出现的小小的 问题是对redis缓存形成了一个比较强的依赖,并且有的数据暂时是没有同步到业务数据库当中进行存储的,有不少数据都是直 接从缓存中获取.这种处理方式确实加快了数据的处理效率,可是也存在一些问题. 二.需求分析 当前由于系统要进行迁移,以前保存在一台服务器上面的redis中的数据,是不可能迁移的.即使运维人员愿意迁移,操作起来 也是相当的麻烦.还有一个问题,如果发现缓存中…
一.问题由来 接上一篇文章使用maven进行打包时报中文乱码错误,经过多次尝试后最终解决问题,显示出真正的错误信息如下: 程序包 applets.user.service.UserService 不存在找不到符号20 因为工作原因,包名有改动,可是错误信息是一模一样的.看到这个真实的错误信息后,才搞清楚错误提示信息.自己 的代码中存在的问题是有一个公共模块中所有的类,其他模块都不能正常引入.写代码的时候可以导入,可是在将模块 进行打包的时候,就报了上面的错,让人费解.二.问题分析 可以确定的一点…
现在开发中大多数公司中都在使用Git这个代码版本管理工具,几乎可以说是已经成为标配,刚入职不久的这家新公司也不例外. 去公司没多久,开始搭建项目,然后创建开发分支,有多少个后端人员就创建多少个开发分支,每个人都在自己的分支上进行开发. 如上图所示:我们假设有四个开发人员鸣人.佐助.雏田.小樱,首先创建一个主要的开发分支 bigstuff-release-V1,然后根据 bigstuff-release-V1这个分支在创建 四个分支分别给四个开发人员使用,以每个人的名字缩写作为分支的后缀.每个人的…
一.问题由来 最近一次拉代码后,合并代码然后进行编译时出现一个问题,使用maven在进行编译的时候报一个错,无法访问mybatis.dto.StudengInVO. 突然出现这个错误让自己感觉很奇怪,开发工具已经使用了好几个月,项目也已经上线两个版本,怎么会突然出现这个问题.自己合并好代码之后 正准备提交代码,在提交之前都有一个习惯,那就是先clean,然后在进行compile编译操作.确保合并后的代码都是最新的,并且是能够重新编译 通过的,最好不要提交编译都不通过的代码到git仓库.可是在编译…
经常要对数据库中的数据进行去重,有时还需要使用外部表填冲数据,本文档记录数据去重与外表填充数据. date:2016/8/17 author:wangxl 1 需求 对user_info1表去重,并添加age项. 2 表数据 user_info1: +----+----------+------+------+ | id | name | sex | age | +----+----------+------+------+ | 1 | xiaolong | 1 | NULL | | 2 | x…