
互联网技术栈
文章平均质量分 69
hanruikai
aaa
展开
-
查询某个用户所有的子用户
项目中,用户存在父子关系,利用parentid进行关联,现在需要查询某个用户下面所有都子孙用户,利用递归实现: public List<ManageUser> treeUserList( List<ManageUser> manageUserList, Long pid){ for(ManageUser mu: manageUserList){ ...原创 2018-02-12 13:54:30 · 620 阅读 · 0 评论 -
横表和纵表的概念以及应用场景
横表就是普通的建表方式,如一个表结构为:主键、字段1、字段2、字段3。。。 如果变成纵表后,则表结构为: 主键、字段代码、字段值。而字段代码则为字段1、字段2、字段3。 具体为电信行业的例子。以用户帐单表为例一般出账时用户有很多费用客户,其数据一般存储为:时间,客户ID,费用科目,费用。这种存储结构一般称为纵表,其特点是行数多,字段少。纵表在使用时由于行数多,统计用户数或对用户进行分档时还需要进...转载 2018-03-28 16:42:49 · 6441 阅读 · 0 评论 -
区块链入门指南
原创 2018-03-28 16:40:09 · 572 阅读 · 0 评论 -
微服务架构漫谈
1. 概述微服务:2014 年可以认为是微服务 1.0 的元年,当年有几个标志性事件,一是 Martin Fowler 在其博客上发表了”Microservices”一文,正式提出微服务架构风格;二是 Netflix 微服务架构经过多年大规模生产验证,最终抽象落地形成一整套开源的微服务基础组件,统称 NetflixOSS,Netflix 的成功经验开始被业界认可并推崇;三是 Pivotal 将 N...原创 2018-03-21 19:03:55 · 655 阅读 · 0 评论 -
RSA 加密,解密,验证签名过程
1. RSA 签名验证A和B分别具有自己的公钥和私钥。A知道自己的公私钥和B的公钥,B知道自己的公私钥和A的公钥匙。流程如下:A 方:1. A利用hash算法对明文信息message进行加密得到hash(message),然后利用自己对私钥进行加密得到签名,如下PrivateA(hash(message))=sign2. 利用B的公钥对签名和message进行加密,如下:...原创 2018-03-19 16:21:56 · 4916 阅读 · 2 评论 -
数据库中间件mycat测试之一
一、Mycat根据官网的定义:Mycat是一个可以用于MySQL读写分离和高可用的中间件,一个模拟为MySQL Server的超级数据库,一个能平滑扩展支持1000亿大表的分布式数据库系统,一个可管控多种关系数据库的数据库路由器,一个平滑从关系数据升级到大数据的应用中间件。其前身是阿里的Cobar项目。 介绍就不多说了,可以看官网http://www.mycat.org.cn/ 接下来我们实践吧。...转载 2017-11-15 17:47:25 · 459 阅读 · 0 评论 -
数据库中间件mycat测试之二
完整文章下载地址:http://download.youkuaiyun.com/detail/dreamcode/9383516 简单来说,我们可以将数据的水平切分理解为是按照数据行的切分,就是将表中的某些行切分到一个数据库,而另外的某些行切分到其他的数据库中,其中选择合适的切分规则至关重要,因为它决定了后续数据聚合的难易程度。 有几种典型的分片规则包括: (1)按照用户主键ID求模,将数据分散到不同的数据库...转载 2017-11-15 17:43:55 · 328 阅读 · 0 评论 -
为什么引入数据库中间件
1. 为什么当业务量,数据量日益增加时,传统的单个数据库无法承载系统的性能,这个时候就需要分库分表。如果分库分表,传统的读写分离架构能减轻系统负担,但是每个DB都是数据的全集,而且无法从根本上解析系统写的性能瓶颈。所以我们引入数据库中间件如果执行sql select * from tablename where id=1, 则会路由到DB1 进行查询。2. 常见数据库中间件...原创 2017-11-15 17:42:25 · 1303 阅读 · 0 评论 -
什么是Apdex
Apdex is an industry standard to measure users' satisfaction with the response time of web applications and services. It's a simplified Service Level Agreement (SLA) solution that gives application o...转载 2018-04-11 18:54:30 · 1462 阅读 · 0 评论 -
Mysql主键选择之UUID和自增主键
引言之前有段时间用postgresql 数据库,在上云之后,从自增主键变为uuid,感觉uuid全球唯一,很方便。最近用mysql,发现mysql主键都是选择自增主键,仔细比较一下,为什么mysql选择自增主键,有什么不同。在mysql5.0之前,如果是多个master复制的环境,无法用自增主键,因为可能重复。在5.0以及之后的版本通过配置自增偏移量解决了整个问题。什么情况下我们希望用uuid1....原创 2018-03-29 11:44:03 · 17715 阅读 · 0 评论 -
json格式数据转sql语句
package com.puhui.flowplatform.entry;import com.google.gson.JsonArray;import com.google.gson.JsonElement;import com.google.gson.JsonObject;import com.google.gson.JsonParser;import java.io.Buffe...原创 2018-04-08 14:14:14 · 19313 阅读 · 2 评论 -
Spring AOP 实现日志记录功能
最近项目中需要记录日志,跟大家想的一样 ,利用spring aop去实现,之前也参考了一些代码,自己实现了一套设计,供大家参考。之前看到网上很多是基于切面类Aspect去实现了,在切面类中定义before after around等逻辑以及要拦截等方法。本文利用注解实现了一套可以扩展等日志记录模块。1. 定义注解@Target(ElementType.METHOD)@Retention(Rete...原创 2018-02-12 12:00:36 · 26694 阅读 · 8 评论 -
数据统计分析中Treemap 应用实战(排序以及查找离指定key最近的key)
1. 应用场景按天统计的逻辑利用hashmap进行存储,另外一篇文章已经提到。现在的问题是查询的交易记录表,如果当天没有交易记录,流量余额就是0,这个是不对的,应该是最近一笔交易记录时的流量余额。1.必须有序2.能够查询最近的一个key此时hashmap不能满足要求,试试treemap,map有序的首选。查询了一下api,竟然支持,我利用的是lowerKey方法Map.Entry<K,V&g...原创 2018-01-30 19:14:02 · 1698 阅读 · 1 评论 -
Spring boot+Shiro+ spring MVC+swagger UI +Mybatis+mysql+Vue +Element UI 之四 vue 整合Element UI
Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库本项目中用Vue整合Element UI进行前端开发,相比于bootstrap,另开贴分析。1. 如何整合在 main.js 中写入以下内容可以完整引入:import Vue from 'vue'import ElementUI from 'element-ui'import 'element-ui/lib...原创 2018-01-04 17:38:19 · 2109 阅读 · 1 评论 -
Spring boot+Shiro+ spring MVC+swagger UI +Mybatis+mysql+Vue +Element UI 之四 vue 基本知识点概述
Vue.js是当下很火的一个JavaScript MVVM库,它是以数据驱动和组件化的思想构建的。相比于Angular.js,Vue.js提供了更加简洁、更易于理解的API,使得我们能够快速地上手并使用Vue.js。Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的渐进式框架。Vue 只关注视图层, 采用自底向上增量开发的设计。Vue 的目标是通过尽可能简单的 API 实...原创 2018-01-04 16:14:18 · 1860 阅读 · 0 评论 -
Spring boot+Shiro+ spring MVC+swagger UI +Mybatis+mysql+Vue +Element UI 之三 vue简单页面实战
本文利用现在要进行的日志中心模块展示vue的基本用法。1. 后台开发新建LogController,和LogService 实现,包括mapper等,由于本文主要研究vue的基本语法及开发流程,后台不详细展开。Controller代码如下: @GetMapping(value = "allLogs") @ApiOperation(value = "获取日志列表或者查询日志接口", htt...原创 2018-01-02 17:55:18 · 1732 阅读 · 0 评论 -
Spring boot+Shiro+ spring MVC+swagger UI +Mybatis+mysql+Vue +Element UI 之一vue和spring boot整合
1 为什么是vue+spring boot技术选型核心框架:Spring Boot 1.5安全框架:Apache Shiro 1.3视图框架:Spring MVC 4.3持久层框架:MyBatis 3.3定时器:Quartz 2.3数据库连接池:Druid 1.0日志管理:SLF4J 1.7、Log4j页面交互:Vue2.x为什么是MVVM那么在我继续之前,我也想和大家回顾一下Web开发的发展简史...原创 2017-12-21 14:36:50 · 4341 阅读 · 1 评论 -
Spring boot+Shiro+ spring MVC+swagger UI +Mybatis+mysql+Vue +Element UI 之二 vue 环境演示
前面说到如何整合spring boot 和vue进行前后端独立并行开发,今天讲解一下如何构建vue到开发环境1. npm install 执行npm install命令安装依赖,前提是安装npm hanruikaideMacBook-Pro:flow-platform-manage-html hanruikai$ npm installnpm WARN The package less is i...原创 2018-01-02 11:49:45 · 1072 阅读 · 0 评论 -
Spring boot +spring mvc+shiro 登录验证demo
1. 配置shiro依赖 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> </dependency>2. 定义shrio相关bean,也可以在spring配置文件中配置,因为我用的sp...原创 2017-12-18 14:52:18 · 2216 阅读 · 0 评论 -
纵表的数据处理方式
众所周知,纵表容易扩展,但是数据不直观,应用起来比较麻烦,横表容易理解,数据便于处理,但是如果增加字段,就需要修改数据库。两者有不同的应用场景,具体参考我的另一篇文章:https://blog.youkuaiyun.com/hanruikai/article/details/79730028在设计信用卡模块时,由于信用卡过滤条件需要配置,便于灵活扩展,所以采用了纵表的处理方式。结构如下:参数key为过滤条件。...原创 2018-04-09 14:55:15 · 1343 阅读 · 0 评论 -
Python 一个简单的读取excel例子
1 准备环境1.1 安装pythonmac上的python默认版本是python2,如下:hanruikaideMacBook-Pro:local hanruikai$ pythonPython 2.7.10 (default, Feb 7 2017, 00:08:15) [GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)] on ...原创 2018-04-12 16:47:28 · 40568 阅读 · 0 评论