大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
1. 准备
LMDB和SQLite/MySQL等关系型数据库不同,属于key-value数据库(把LMDB想成dict会比较容易理解),键key与值value都是字符串。
安装:
pip install lmdb
使用时import lmdb。
2. 操作流程
概况地讲,操作LMDB的流程是:
- 通过env = lmdb.open()打开环境
- 通过txn = env.begin()建立事务
- 通过txn.put(key, value)进行插入和修改
- 通过txn.delete(key)进行删除
- 通过txn.get(key)进行查询
- 通过txn.cursor()进行遍历
- 通过txn.commit()提交更改
3. 操作实例
3.1 建立环境
#!/usr/bin/env python
import lmdb
env = lmdb.open("students");
运行一下,查看当前目录的变化:
可以看到当前目录下多了students目录,里面有data.mdb和lock.mdb两个文件。
3.2 插入、删除、修改
插入与修改都用put实现,删除用delete实现。
#!/usr/bin/env python
import lmdb
env = lmdb.open("students");
txn = env.begin(write=True);
txn.put(str(1), "Alice");
txn.put(str(2), "Bob");
txn.put(str(3), "Peter");
txn.delete(str(1));
txn.put(str(3), "Mark");
txn.commit();
注意用txn = env.begin()创建事务时,只有write=True
才能够写数据库。
3.3 查询
查单条记录用get(key),遍历数据库用cursor。
#!/usr/bin/env python
import lmdb
env = lmdb.open("students");
# txn = env.begin(write=True);
txn = env.begin();
print txn.get(str(2));
for key, value in txn.cursor():
print (key, value);
env.close();
运行一下,输出结果为:
3.4 完整的例子
#!/usr/bin/env python
import lmdb
import os, sys
def initialize():
env = lmdb.open("students");
return env;
def insert(env, sid, name):
txn = env.begin(write = True);
txn.put(str(sid), name);
txn.commit();
def delete(env, sid):
txn = env.begin(write = True);
txn.delete(str(sid));
txn.commit();
def update(env, sid, name):
txn = env.begin(write = True);
txn.put(str(sid), name);
txn.commit();
def search(env, sid):
txn = env.begin();
name = txn.get(str(sid));
return name;
def display(env):
txn = env.begin();
cur = txn.cursor();
for key, value in cur:
print (key, value);
env = initialize();
print "Insert 3 records."
insert(env, 1, "Alice");
insert(env, 2, "Bob");
insert(env, 3, "Peter");
display(env);
print "Delete the record where sid = 1."
delete(env, 1);
display(env);
print "Update the record where sid = 3."
update(env, 3, "Mark");
display(env);
print "Get the name of student whose sid = 3."
name = search(env, 3);
print name;
env.close();
os.system("rm -r students");
运行一下,输出结果为:
转载自:
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/187835.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...