Lmdb工具封装类
lmdb初始化方法,这里做了对不同操作系统的判断,包含了文件夹的创建,但是,在linux操作系统和mac操作系统上常会有文件创建后写入以及读取权限不足,需要自己在文件创建后增加文件的授权脚本,我这里删除了权限的授权脚本,这个也可以自己封装一个,我比较懒…
ps:官方提供的jar包依赖关系中,包含了对windows,MacOs,Linux三种基本操作系统的数据库初始化文件封装,但是对于某些特别的操作系统来说,初始化文件是不匹配的(会出现lmdb服务无法启动文件无法识别等问题),可以自己通过修改Lmdb源码进行自己的封装使用。
小技巧: 个人在使用时因为没有符合操作系统的文件,所以在虚拟机上自己生成的相关文件进行了jar包的封装。
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.lmdbjava.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import java.io.File;
import java.nio.ByteBuffer;
import java.nio.charset.StandardCharsets;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.Map;
import static java.lang.Integer.BYTES;
import static java.lang.System.getProperty;
import static java.nio.ByteBuffer.allocateDirect;
import static org.lmdbjava.ByteBufferProxy.PROXY_OPTIMAL;
import static org.lmdbjava.DbiFlags.MDB_CREATE;
package com.ruoyi.system.service;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.lmdbjava.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import java.io.File;
import java.nio.ByteBuffer;
import java.nio.charset.StandardCharsets;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.Map;
import static java.lang.Integer.BYTES;
import static java.lang.System.getProperty;
import static java.nio.ByteBuffer.allocateDirect;
import static org.lmdbjava.ByteBufferProxy.PROXY_OPTIMAL;
import static org.lmdbjava.DbiFlags.MDB_CREATE;
/**
* <p>lmdb操作工具类</p>
*
* @author wwb
* @date 2021/6/25 10:22
*/
@Configuration
public class LmdbConfig {
private static final Log logger = LogFactory.getLog(LmdbConfig.class);
/*
* 原本打算用日期生成存储文件,但是后来抛弃了这个操作
* */
@SuppressWarnings("unused")
private static final SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
/**
* lmdb window地址
*/
@Value("