- 浏览: 64415 次
- 性别:
- 来自: 南京
最新评论
文章列表
浅谈跳表SkipList数据结构
- 博客分类:
- 日常工作
问题背景
众所周知,对于一个有序集合中元素的查找,如果集合是通过数组存储的,那么利用数组随机访问的高效性通过二分查找算法可以快速的查找元素。那么设想如果该集合是通过链表存储,是否也能实现快速查找的功能呢?
知识点
链表也是一种数据结构,和数组不同的是,它不需要一块连续的内存空间,链表中每个元素会维护一个指向下一个元素的指针,由于每个元素只知道下一个元素,所以查找元素必须从链表头开始,一个一个遍历直到查找到元素或者已到达链表尾部。链表的特点:查询慢、插入删除快
解决思路
模仿二分查找思路,是否链表可以变通的使用这种思路实现快速查找呢?跳表这种数据结构就是为了解决这个问题应运而生 ...
mybatis是一套半自动化的orm框架,使用需要写相关sql及对应的mapper文件,此工具使用mybatis-generator自动生成代码,自己封装了一下,变成一个小工具,运行bat文件自动生成。
运行步骤:
1、修改generatorConfig.xml中jdbcConnection节点内容为需要连接的数据信息
2、修改generatorConfig.xml中table节点内容为数据库表名
3、运行generatorFile.bat即可
2017.7月份离职,开始大大小小的公司面试,在各类面试过程中,总结了面试官的问题,查资料且进行学习,总结面试问题经验汇总如附件
分布式系统大数据量计算抢占式任务调度
- 博客分类:
- 分布式系统
业务背景:
XX系统为支撑电商平台的微服务系统,系统为电商平台提供搜索页、四级页、加入购物车等提供查找货源唯一四要素接口服务,通过商品主数据、上下架信息、销售范围、供应链规则、售价、库存等信息计算获取货源,并通过售价、库龄、时效等比较获得最优货源。
系统设计:
为了支撑高并发,高访问的业务特性,系统在设计的时候考虑在每晚凌晨计算所有商品的货源信息(称为全量计算),计算完成后,如果外围系统通过MQ(消息队列)同步来的数据影响到查找货源的计算,则会将影响的商品数据异步的放入动因范围表中,JOB扫描动因范围表,重新计算受影响商品的货源(称为动因计算)。
对外提供的服务接口直接在 ...
分布式架构系统中分布锁的实现
- 博客分类:
- 分布式系统
在分布式系统中 存在大量机器集群 外部请求到本系统,负载均衡到各个机器处理 如何保证多台机器处理数据的一致性 是重点需要考虑的问题。
案例:外部系统通过消息队列的方式同步外围数据到本系统 一次性可能发送多 ...
JSONP学习
- 博客分类:
- jquery
- Javascript
参考资料:
1.http://www.cnblogs.com/dowinning/archive/2012/04/19/json-jsonp-jquery.html
2.http://www.cnblogs.com/lemontea/archive/2012/12/11/2812268.html
测试1
前端代码1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
& ...
Excel公式字符串拼接
- 博客分类:
- 日常工作
导出的数据库数据成excel,需要形成脚本导入数据库,在不借助第三方工具的情况下,使用excel生成,需要用到公式拼接字符串,excel拼接字符串使用&,如果是字符常量,需要用双引号包起来,例如","
例子 =A1&B1&","&C1&")"
InfoQ中文网:http://www.infoq.com/cn
开源中国:http://www.oschina.net/
IT经理网:http://www.ctocio.com
TechTarget:http://www.techtarget.com.cn/
ImportNew:http://www.importnew.com/
Java Dzone:http://java.dzone.com/
jaxenter:http://jaxenter.com/
GIGAOM:http://gigaom.com/
regulargeek ...
在一些代码编程规范较为严格的公司,会有公共的代码规范、格式化等的配置模板,需要自己配置到开发工具中,编码后运行检查,如何在Spring Tool Suite(Eclipse)中配置关联这些模板?在此记录一下。
1.代码模板文件
window-->preferences 搜索 code templates,在右侧的窗口点击import,将模板文件导入,导入后点击查看是否生效
2.代码格式化模板
window-->preferences 搜索 formatter,在右侧的窗口点击import,将模板文件导入,导入后active profile会自动显 ...
碰到一个需求,需要将PowerDesigner中的数据库表结构数据导成Excel,网上看到一个很便捷的方法,记录一下
在PowerDesigner中,shift+ctrl+X,打开脚本运行,脚本如下
'******************************************************************************
'* File: pdm2excel.txt
'* Title: pdm export to excel
'* Purpose: To export the tables and columns to ...
Oracle中存储过程中,如果需要将表中的值赋给变量,一般采取这样的方式
SELECT col
INTO v_col
FROM t_table
WHERE condition
如果找不到数据,就会有 数据找不到的异常
有三种方式解决
1. 普通的异常捕获的方式
2. 通过表关联left join的方式
3. 通过max的方式
方法1 语法:
BEGIN
SELECT col
INTO v_col
FROM t_table
WHERE condition
EXCEPTION WHEN NO_DA ...
某管理系统自定义审批流程实现
- 博客分类:
- 总结教训
在企业内部管理系统中,经常会涉及到审批流程的实现,一般会采取流程工具实现,这里介绍采用状态位的方式结合数据库实现用户自定义审批流程。
用户自定义审批流程,按照如下几步设置
step1:新建自定义的审批流程,设置名称和流程描述信息
step2:对新建的审批流设置审批适用,针对哪些类型的申请适用这个审批流
step3:对新建的审批流设置审批步骤,按照审批角色设置每一步审批节点。
对应后台设计表
那么,当一个单据提交审批,逻辑为
step1:按照审批适用找到对应的审批流程,如果找不到,报流程不存在
step2:根据审批流程,找到对应的审批步骤
step3:根 ...
Oracle merge into介绍
- 博客分类:
- Oracle数据库
在Oracle数据库常用操作中,有的时候需要使用B表来更新A表中的内容,一种方法使用update关联两表进行更新,还有一种办法即使用merge into。
merge into 一条语句可以实现update和insert的功能,并且效率较高
语法
MERGE INTO [your table-name] [rename your table here]
USING ( [write your query here] )[rename your query-sql and using just like a table]
ON ([conditional expre ...
数据库存储过程或者函数中,有可能在开发过程中写死了某些值,例如邮箱,在某人离职的时候,接替人必须要进行切换,如果才能按照关键字快速的搜索数据库存储过程及函数中的内容呢?
针对SQL server和Oracle分别进行介绍
1.SQL server(以2008的版本为例)
sys.sql_modules 系统表,会保存数据库对象ID和对象的内容,例如存储过程,存储过程的内容会在此表中保存
sys.objects 系统表,保存数据库对象ID和数据库对象名称,结合上面的表即可找到关键字所在的存储过程或者函数
举例
USE Budget
go
...
SQL server数据库在开发的过程中,有的时候可能开发库需要同步正式库或者测试库的数据,那么SQL server如何同步数据呢,一种方式使用SQL server自带图形化方式,一种为脚本方式同步,这里介绍脚本方式。
保证您使用的库已经建立了链接服务器链接到对应的正式库,如图
如何访问正式库的数据呢?方法使用 [链接服务器名]+点+数据库名+点+dbo+点+表名
SELECT *
FROM [10.21.2.25].budget.dbo.tb_item_bind_info
那么接下来如果同步正式库数据,很简单如下
TRUNCATE ...