Lmdb----java api 封装

本文介绍了如何对Lmdb进行Java API封装,包括针对不同操作系统的初始化方法,注意在Linux和Mac OS上可能遇到的文件权限问题。作者提到官方jar包可能不适用于所有操作系统,建议自定义封装。此外,分享了一个解决缺少操作系统匹配文件的小技巧,即在虚拟机上生成文件并封装到jar中。文章还强调了日志在调试中的重要性,并提醒读者在服务停止时进行必要的容器关闭操作。
摘要由CSDN通过智能技术生成

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("
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

斌19

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值