- 【异常】使用 LiteFlow 框架时,提示错误ChainDuplicateException: [chain name duplicate] chainName=categoryChallenge
本本本添哥
002-进阶开发能力java
一、报错内容Causedby:com.yomahub.liteflow.exception.ChainDuplicateException:[chainnameduplicate]chainName=categoryChallengeatcom.yomahub.liteflow.parser.helper.ParserHelper.lambda$null$0(ParserHelper.java:1
- mysql复习
立夏的李子
mysql数据库database
mysqlselect语法selectfromjoinwheregroupbyhavingorderbylimit联合查询innerjoin()leftjoin(以左表为基准,匹配右表,不匹配的返回左表,右表以null值填充)rightjoind··(去除列重复的数据)索引类型主键索引(PrimaryKey)唯一索引(Unique)常规索引(Index)全文索引(FullText)索引准则索引不是
- mysql创建线程处理链接请求
斜不靠谱
mysqld通过RUN_HOOK(server_state,before_handle_connection,(NULL));调用/**Threadhandlerforaconnection@paramargConnectionobject(Channel_info)Thisfunction(normally)doesthefollowing:-Initializethread//初始化线程-In
- 面试宝典
phpdi
1.引用变量考点引用变量定义:用不同的名字访问同一个变量内容cow机制遍历时的引用处理unset只会取消引用,不会销毁内存空间php中对象默认是引用传递,若需要复制,则需要使用clone2.常量及数据类型define,const;php5.6以用const定义常量不支持表达式;7种false情况:0,0.0,'','0',[],null,false;精度丢失;获取客户端,服务端ip;与app交互$
- 如何在Power Query中对不同行,列名排序一致进行转置?
Data_Skill
之前的案例都是列数及行数相同,那如果是不同的情况下,该如何处理呢?原表:同行不同列原表目标表:同行不同列目标表此时我们可以通过另外一个分组函数来进行处理。Table.GroupTable.Group(tableastable,keyasany,aggregatedColumnsaslist,optionalgroupKindasnullablenumber,optionalcomparerasnu
- C# 单问号 ? 与 双问号 ??
三分明月墨
C#
https://www.runoob.com/csharp/csharp-nullable.html
- C#?和??的作用
simpleshao
C#C#???
1.可空类型修饰符(?):引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空。例如:stringstr=null;是正确的,inti=null;编译器就会报错。为了使值类型也可为空,就可以使用可空类型,即用可空类型修饰符"?"来表示,表现形式为"T?"例如:int?表示可空的整形,DateTime?表示可为空的时间。T?其实是System.Nullable(泛型结构)的缩写形式,也
- C#:类型定义中使用问号(?)
曹牧
CSharpc#
在C#中,类型定义中的问号(?)主要用于控制类型的可空性,但具体行为因类型(值类型或引用类型)和C#版本而异。以下是清晰分类的说明:一、可空值类型(T?,适用于所有C#版本)用途:允许值类型(如int、DateTime等)存储null值。语法:在值类型后加?,底层由System.Nullable结构实现。示例:int?age=null;//声明可空整型DateTime?date=n
- MySQL新增字段DDL:锁表全解析、避坑指南与实战案例
核心思考问题:新增字段一定会锁表吗?答案:不一定!这主要取决于:MySQL版本:这是最关键的因素。ALGORITHM选项:显式或隐式指定的算法。新增字段的属性:是否允许NULL?是否有默认值?默认值类型?字段位置?表的大小和存储引擎:InnoDB的行为与MyISAM不同(本文主要讨论InnoDB)。并发负载:操作期间对表的读写压力。一、真实案例场景:血泪教训场景1:电商大促前夜,核心订单表加字段(
- Hutool Java工具类库-StrUtil
〃冷·夏ぐ
Hutooljava
一、依赖:cn.hutoolhutool-all5.4.5二、常用方法:方法名参数返回值作用备注isEmptyIfStr(Objectobj)obj:对象boolean如果对象是字符串是否为空串,空的定义如下:null空字符串:""该方法与isBlankIfStr(Object)的区别是:该方法不校验空白字符。isBlankIfStr(Objectobj)obj:对象boolean如果对象是字符串
- 第一次阶段考试
性感迦娜在线吹风丶三百一位
1、在11月内,每天早上6点到12点,每隔2小时执行一次/usr/bin/httpd.sh怎么实现?答:006-12/2*11*/bin/bash/usr/bin/httd.sh&>/dev/null2、已知oldboy.txt文件有如下内容:183.250.220.178|-l[20/jul/2017:10:35:14+0800]|POST/audiosearch/searchHTTP/1.1|
- java List<Map> 去重
Perfect珈蓝
java
publicstaticList>removeRepeatMapByKey(List>list,StringmapKey){if(CollectionUtils.isNullOrEmpty(list))returnnull;List>listMap=newArrayListmsp=newHashMap=0;i--){Mapmap=list.get(i);Stringid=map.get(mapKe
- Guava——Collections New collection types
爱吃菜的流浪狗
1.Multiset在Collection的基础上,拓展了对重复元素的处理方法。publicinterfaceMultisetextendsCollection{intcount(@NullableObjectvar1);intadd(@NullableEvar1,intvar2);intremove(@NullableObjectvar1,intvar2);intsetCount(Evar1,i
- leetcode-112. 二叉树路径总和
JlexZzzz
leetcode数据结构leetcode深度优先算法二叉树
leetcode-112.二叉树路径总和给你二叉树的根节点root和一个表示目标和的整数targetSum。判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和targetSum。如果存在,返回true;否则,返回false。叶子节点是指没有子节点的节点。示例1:输入:root=[5,4,8,11,null,13,4,7,2,null,null,null,1],target
- vue + uniapp + 高德地图实现微信小程序地图polyline、marker展示
1.使用uniapp提供的map组件作为承载页面data(){return{mapCtx:null}}mounted(){this.mapCtx=uni.createMapContext('store-order-map',this)},获取路径方法fetchRoutePolyline(options){const{start,end,waypoints}=optionsconstdefaultO
- mysql-数据表-DDL语句
---表名,列名,列属性,表属性---列属性PRIMARYKEY主键约束,表中只能有一个,非空且唯一NOTNULL非空约束,不允许有空值UNIQUEKEY唯一建约束,不允许有空值DEFAULT一般配合NOTNULL一起使用UNSIGNED无符号,配合数字列使用,表示非负数COMMENT注释写一个标准的,符合规范的建表语句createtablestu(idintprimarykeynotnullau
- 前端进化论·JavaScript 篇 · 数据类型
像素笔记
篇javascript面试原理解析初学者数据类型安全操作符
1.JavaScript有哪些数据类型,它们的区别?JavaScript共有八种数据类型,分别是Undefined、Null、Boolean、Number、String、Object、Symbol、BigInt。其中Symbol和BigInt是ES6中新增的数据类型:Symbol代表创建后独一无二且不可变的数据类型,它主要是为了解决可能出现的全局变量冲突的问题。BigInt是一种数字类型的数据,它
- MySQL操作进阶
BUG召唤师
数据库mysql
系列文章目录MySQL的基础操作-CSDN博客目录系列文章目录前言一、数据库的约束1.约束类型:notnull2.约束类型:unique3.约束类型:default4.约束类型:primarykey5.约束条件:foreignkey二、表的设计1.一对一2.一对多3.多对多三、查询操作进阶1.插入搭配查询2.聚合查询1.sql中的聚合函数2.groupby3.联合查询1.内连接2.外连接3.自连接
- js中的基本类型和引用类型
凡凡的小web
基本数据类型:按值访问,可操作保存在变量中的实际的值。基本类型值指的是简单的数据段。基本数据类型有这五种:Undefined、Null、String、Number、Boolean。引用类型:当复制保存着对象的某个变量时,操作的是对象的引用,但在为对象添加属性时,操作的是实际的对象。引用类型值指那些可能为多个值构成的对象。引用类型有这几种:object、Array、RegExp、Date、Funct
- MySQL - 力扣刷题
程序员老石
MySQLjavamysql
1、MySQL查询第二高薪水编写一个SQL查询,获取Employee表中第二高的薪水(Salary)。±—±-------+|Id|Salary|±—±-------+|1|100||2|200||3|300|±—±-------+例如上述Employee表,SQL查询应该返回200作为第二高的薪水。如果不存在第二高的薪水,那么查询应返回null。±--------------------+|Se
- 华为GaussDB数据库:CHECK约束与数据验证
Clf丶忆笙
华为GaussDB数据库教程数据库gaussdbsql
文章目录一、CHECK约束基础概念与原理1.1CHECK约束的定义与作用1.2CHECK约束与其他约束类型的比较1.3CHECK约束的语法结构二、CHECK约束的高级应用2.1复杂业务规则的实现2.1.1时间范围验证2.1.2状态转换验证2.1.3多列组合验证2.2CHECK约束与NULL值的交互2.3CHECK约束的性能考虑三、GaussDB特有的CHECK约束特性3.1GaussDB对CHEC
- linux中进程的替换
前言进程的替换目的是为了节省资源,假设现在又A、B、C三个应用程序需要执行,如果我每执行一个程序都创建一个进程,目的是可以实现的,但是会浪费资源,那么可以创建一个进程,然后让进程在一个进程进行替换,那么就可以避免创建过多的进程导致资源的浪费。一、exec函数族intexecl(constchar*pathname,constchar*arg,.../*(char*)NULL*/);intexecl
- 标准IO:freopen重定向打开文件
xueningshiny
服务器linux运维
freopen(文件路径,打开文件方式,文件流指针)返回值:成功“返回文件流指针”失败“NULL”打开方式:r:只读,流被定义到文件开头r+:可读可写,流在文件开头w:只写,文件不存在创建存在清空,流定义在文件开头w+:可读可写,文件不存在创建存在清空,流在文件开头a:追加,文件不存在创建存在追加,流在文件末尾a+:可读可写,文件不存在创建存在追加,读从头读写时在文件末尾freopen("./te
- vue 上下滚动通知组件
vue上下滚动淡入淡出通知组件:效果:子组件:提示{{text.val}}exportdefault{name:'TextScroll',props:{dataList:{type:Array,default(){return[]},},},data(){return{count:0,//当前索引intervalId:null,//定时器IDplayTime:10000,//定时器执行间隔}},c
- Javascript高频面试题
守灯者
前端找工作之路前端JavaScript高频面试题
系列文章目录文章目录系列文章目录前言1.JavaScript常见数据类型null和undefind区别symbol(ES6新增)、bigInt(ES10新增)2.JavaScript判断数据类型的方式3.==和===区别,分别在什么情况使用?4.变量声明var、let、const的区别5.作用域6.作用域链7.垃圾回收机制8.闭包什么是闭包?闭包的作用?闭包引起的问题9.JS的变量提升var声明的
- 2023年最新Flutter+Getx仿小米商城项目实战视频教程-V3版
包括:Dart入门基础教程16讲、Nullsafety、late关键字、空类型声明符?、非空断言!、required、Flutter入门基础、Flutter瀑布流布局、Flutter动画、Flutter异步流、GlobalKey、Flutter国际化、FlutterNative、Getx、Get_Cli、Flutter+Getx仿小米商城项目(真实Api接口、真实交互、真实企业级项目实战)、仿小米
- JUnit5测试实例大全
Junit测试实例以下是常用的JUnit测试示例,涵盖基础到进阶场景,适合学习和日常使用。示例基于JUnit5(Jupiter),部分兼容JUnit4。基础断言测试@TestvoidbasicAssertions(){assertEquals(4,2+2);assertTrue(5>3);assertNull(null);assertNotSame(newObject(),newObject())
- pycharm控制台报错:xmlrpc.client.Fault: Fault 0: 'java.lang.NullPointerException
wangjinyu124419
刚才打开pycharm控制台报错了:/usr/bin/python3.5/mnt/hgfs/vm_share/pycharm-2018.2.4/helpers/pydev/pydevconsole.py3796343001importsys;print('Python%son%s'%(sys.version,sys.platform))sys.path.extend(['/home/wangjin
- SQL 魔法:LEFT JOIN 与 MAX 的奇妙组合
YangRyeon
数据库开发语言hivepythonmysql
一、引言在数据库操作的领域中,数据的关联与聚合处理是核心任务之一。LEFTJOIN作为一种常用的连接方式,能够将左表中的所有记录与右表中满足连接条件的记录进行关联,即便右表中没有匹配的记录,左表的记录也会被保留,右表对应的字段则用NULL填充。而MAX函数则是用于返回一组值中的最大值,在数据聚合分析时起着关键作用。当LEFTJOIN与MAX函数组合使用时,能解决许多复杂的数据查询问题,在实际业务场
- Java - Map 集合简单介绍
希尔大
本文简单介绍一下Java中Map集合,包括HashMap,HashTable,LinkedHashMap。HashMapHashMap内部用于存放键值对,其中key可以为null。HashMap内部使用数组加链表(1.8+红黑树)的结构实现。数组元素的类型为Entry,Entry是链表的节点,也代表了一个键值对。HashMap初始化时可以指定两个参数:initialCapacity(默认为16)与
- Hadoop(一)
朱辉辉33
hadooplinux
今天在诺基亚第一天开始培训大数据,因为之前没接触过Linux,所以这次一起学了,任务量还是蛮大的。
首先下载安装了Xshell软件,然后公司给了账号密码连接上了河南郑州那边的服务器,接下来开始按照给的资料学习,全英文的,头也不讲解,说锻炼我们的学习能力,然后就开始跌跌撞撞的自学。这里写部分已经运行成功的代码吧.
在hdfs下,运行hadoop fs -mkdir /u
- maven An error occurred while filtering resources
blackproof
maven报错
转:http://stackoverflow.com/questions/18145774/eclipse-an-error-occurred-while-filtering-resources
maven报错:
maven An error occurred while filtering resources
Maven -> Update Proje
- jdk常用故障排查命令
daysinsun
jvm
linux下常见定位命令:
1、jps 输出Java进程
-q 只输出进程ID的名称,省略主类的名称;
-m 输出进程启动时传递给main函数的参数;
&nb
- java 位移运算与乘法运算
周凡杨
java位移运算乘法
对于 JAVA 编程中,适当的采用位移运算,会减少代码的运行时间,提高项目的运行效率。这个可以从一道面试题说起:
问题:
用最有效率的方法算出2 乘以8 等於几?”
答案:2 << 3
由此就引发了我的思考,为什么位移运算会比乘法运算更快呢?其实简单的想想,计算机的内存是用由 0 和 1 组成的二
- java中的枚举(enmu)
g21121
java
从jdk1.5开始,java增加了enum(枚举)这个类型,但是大家在平时运用中还是比较少用到枚举的,而且很多人和我一样对枚举一知半解,下面就跟大家一起学习下enmu枚举。先看一个最简单的枚举类型,一个返回类型的枚举:
public enum ResultType {
/**
* 成功
*/
SUCCESS,
/**
* 失败
*/
FAIL,
- MQ初级学习
510888780
activemq
1.下载ActiveMQ
去官方网站下载:http://activemq.apache.org/
2.运行ActiveMQ
解压缩apache-activemq-5.9.0-bin.zip到C盘,然后双击apache-activemq-5.9.0-\bin\activemq-admin.bat运行ActiveMQ程序。
启动ActiveMQ以后,登陆:http://localhos
- Spring_Transactional_Propagation
布衣凌宇
springtransactional
//事务传播属性
@Transactional(propagation=Propagation.REQUIRED)//如果有事务,那么加入事务,没有的话新创建一个
@Transactional(propagation=Propagation.NOT_SUPPORTED)//这个方法不开启事务
@Transactional(propagation=Propagation.REQUIREDS_N
- 我的spring学习笔记12-idref与ref的区别
aijuans
spring
idref用来将容器内其他bean的id传给<constructor-arg>/<property>元素,同时提供错误验证功能。例如:
<bean id ="theTargetBean" class="..." />
<bean id ="theClientBean" class=&quo
- Jqplot之折线图
antlove
jsjqueryWebtimeseriesjqplot
timeseriesChart.html
<script type="text/javascript" src="jslib/jquery.min.js"></script>
<script type="text/javascript" src="jslib/excanvas.min.js&
- JDBC中事务处理应用
百合不是茶
javaJDBC编程事务控制语句
解释事务的概念; 事务控制是sql语句中的核心之一;事务控制的作用就是保证数据的正常执行与异常之后可以恢复
事务常用命令:
Commit提交
- [转]ConcurrentHashMap Collections.synchronizedMap和Hashtable讨论
bijian1013
java多线程线程安全HashMap
在Java类库中出现的第一个关联的集合类是Hashtable,它是JDK1.0的一部分。 Hashtable提供了一种易于使用的、线程安全的、关联的map功能,这当然也是方便的。然而,线程安全性是凭代价换来的――Hashtable的所有方法都是同步的。此时,无竞争的同步会导致可观的性能代价。Hashtable的后继者HashMap是作为JDK1.2中的集合框架的一部分出现的,它通过提供一个不同步的
- ng-if与ng-show、ng-hide指令的区别和注意事项
bijian1013
JavaScriptAngularJS
angularJS中的ng-show、ng-hide、ng-if指令都可以用来控制dom元素的显示或隐藏。ng-show和ng-hide根据所给表达式的值来显示或隐藏HTML元素。当赋值给ng-show指令的值为false时元素会被隐藏,值为true时元素会显示。ng-hide功能类似,使用方式相反。元素的显示或
- 【持久化框架MyBatis3七】MyBatis3定义typeHandler
bit1129
TypeHandler
什么是typeHandler?
typeHandler用于将某个类型的数据映射到表的某一列上,以完成MyBatis列跟某个属性的映射
内置typeHandler
MyBatis内置了很多typeHandler,这写typeHandler通过org.apache.ibatis.type.TypeHandlerRegistry进行注册,比如对于日期型数据的typeHandler,
- 上传下载文件rz,sz命令
bitcarter
linux命令rz
刚开始使用rz上传和sz下载命令:
因为我们是通过secureCRT终端工具进行使用的所以会有上传下载这样的需求:
我遇到的问题:
sz下载A文件10M左右,没有问题
但是将这个文件A再传到另一天服务器上时就出现传不上去,甚至出现乱码,死掉现象,具体问题
解决方法:
上传命令改为;rz -ybe
下载命令改为:sz -be filename
如果还是有问题:
那就是文
- 通过ngx-lua来统计nginx上的虚拟主机性能数据
ronin47
ngx-lua 统计 解禁ip
介绍
以前我们为nginx做统计,都是通过对日志的分析来完成.比较麻烦,现在基于ngx_lua插件,开发了实时统计站点状态的脚本,解放生产力.项目主页: https://github.com/skyeydemon/ngx-lua-stats 功能
支持分不同虚拟主机统计, 同一个虚拟主机下可以分不同的location统计.
可以统计与query-times request-time
- java-68-把数组排成最小的数。一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的。例如输入数组{32, 321},则输出32132
bylijinnan
java
import java.util.Arrays;
import java.util.Comparator;
public class MinNumFromIntArray {
/**
* Q68输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。
* 例如输入数组{32, 321},则输出这两个能排成的最小数字32132。请给出解决问题
- Oracle基本操作
ccii
Oracle SQL总结Oracle SQL语法Oracle基本操作Oracle SQL
一、表操作
1. 常用数据类型
NUMBER(p,s):可变长度的数字。p表示整数加小数的最大位数,s为最大小数位数。支持最大精度为38位
NVARCHAR2(size):变长字符串,最大长度为4000字节(以字符数为单位)
VARCHAR2(size):变长字符串,最大长度为4000字节(以字节数为单位)
CHAR(size):定长字符串,最大长度为2000字节,最小为1字节,默认
- [强人工智能]实现强人工智能的路线图
comsci
人工智能
1:创建一个用于记录拓扑网络连接的矩阵数据表
2:自动构造或者人工复制一个包含10万个连接(1000*1000)的流程图
3:将这个流程图导入到矩阵数据表中
4:在矩阵的每个有意义的节点中嵌入一段简单的
- 给Tomcat,Apache配置gzip压缩(HTTP压缩)功能
cwqcwqmax9
apache
背景:
HTTP 压缩可以大大提高浏览网站的速度,它的原理是,在客户端请求网页后,从服务器端将网页文件压缩,再下载到客户端,由客户端的浏览器负责解压缩并浏览。相对于普通的浏览过程HTML ,CSS,Javascript , Text ,它可以节省40%左右的流量。更为重要的是,它可以对动态生成的,包括CGI、PHP , JSP , ASP , Servlet,SHTML等输出的网页也能进行压缩,
- SpringMVC and Struts2
dashuaifu
struts2springMVC
SpringMVC VS Struts2
1:
spring3开发效率高于struts
2:
spring3 mvc可以认为已经100%零配置
3:
struts2是类级别的拦截, 一个类对应一个request上下文,
springmvc是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应
所以说从架构本身上 spring3 mvc就容易实现r
- windows常用命令行命令
dcj3sjt126com
windowscmdcommand
在windows系统中,点击开始-运行,可以直接输入命令行,快速打开一些原本需要多次点击图标才能打开的界面,如常用的输入cmd打开dos命令行,输入taskmgr打开任务管理器。此处列出了网上搜集到的一些常用命令。winver 检查windows版本 wmimgmt.msc 打开windows管理体系结构(wmi) wupdmgr windows更新程序 wscrip
- 再看知名应用背后的第三方开源项目
dcj3sjt126com
ios
知名应用程序的设计和技术一直都是开发者需要学习的,同样这些应用所使用的开源框架也是不可忽视的一部分。此前《
iOS第三方开源库的吐槽和备忘》中作者ibireme列举了国内多款知名应用所使用的开源框架,并对其中一些框架进行了分析,同样国外开发者
@iOSCowboy也在博客中给我们列出了国外多款知名应用使用的开源框架。另外txx's blog中详细介绍了
Facebook Paper使用的第三
- Objective-c单例模式的正确写法
jsntghf
单例iosiPhone
一般情况下,可能我们写的单例模式是这样的:
#import <Foundation/Foundation.h>
@interface Downloader : NSObject
+ (instancetype)sharedDownloader;
@end
#import "Downloader.h"
@implementation
- jquery easyui datagrid 加载成功,选中某一行
hae
jqueryeasyuidatagrid数据加载
1.首先你需要设置datagrid的onLoadSuccess
$(
'#dg'
).datagrid({onLoadSuccess :
function
(data){
$(
'#dg'
).datagrid(
'selectRow'
,3);
}});
2.onL
- jQuery用户数字打分评价效果
ini
JavaScripthtmljqueryWebcss
效果体验:http://hovertree.com/texiao/jquery/5.htmHTML文件代码:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>jQuery用户数字打分评分代码 - HoverTree</
- mybatis的paramType
kerryg
DAOsql
MyBatis传多个参数:
1、采用#{0},#{1}获得参数:
Dao层函数方法:
public User selectUser(String name,String area);
对应的Mapper.xml
<select id="selectUser" result
- centos 7安装mysql5.5
MrLee23
centos
首先centos7 已经不支持mysql,因为收费了你懂得,所以内部集成了mariadb,而安装mysql的话会和mariadb的文件冲突,所以需要先卸载掉mariadb,以下为卸载mariadb,安装mysql的步骤。
#列出所有被安装的rpm package rpm -qa | grep mariadb
#卸载
rpm -e mariadb-libs-5.
- 利用thrift来实现消息群发
qifeifei
thrift
Thrift项目一般用来做内部项目接偶用的,还有能跨不同语言的功能,非常方便,一般前端系统和后台server线上都是3个节点,然后前端通过获取client来访问后台server,那么如果是多太server,就是有一个负载均衡的方法,然后最后访问其中一个节点。那么换个思路,能不能发送给所有节点的server呢,如果能就
- 实现一个sizeof获取Java对象大小
teasp
javaHotSpot内存对象大小sizeof
由于Java的设计者不想让程序员管理和了解内存的使用,我们想要知道一个对象在内存中的大小变得比较困难了。本文提供了可以获取对象的大小的方法,但是由于各个虚拟机在内存使用上可能存在不同,因此该方法不能在各虚拟机上都适用,而是仅在hotspot 32位虚拟机上,或者其它内存管理方式与hotspot 32位虚拟机相同的虚拟机上 适用。
- SVN错误及处理
xiangqian0505
SVN提交文件时服务器强行关闭
在SVN服务控制台打开资源库“SVN无法读取current” ---摘自网络 写道 SVN无法读取current修复方法 Can't read file : End of file found
文件:repository/db/txn_current、repository/db/current
其中current记录当前最新版本号,txn_current记录版本库中版本