开源的文件数据库,介于关系数据库和内存数据库之间,按键值对方式存储
下面是一个实例,是网上抄的,然后自己本机运行的
package org; import java.io.File; import java.io.UnsupportedEncodingException; import java.util.concurrent.TimeUnit; import com.sleepycat.je.Database; import com.sleepycat.je.DatabaseConfig; import com.sleepycat.je.DatabaseEntry; import com.sleepycat.je.Environment; import com.sleepycat.je.EnvironmentConfig; import com.sleepycat.je.LockMode; import com.sleepycat.je.OperationStatus; import com.sleepycat.je.Transaction; import com.sleepycat.je.TransactionConfig; public class BerkeleyDB { private Environment environment = null; //数据库环境 private DatabaseConfig dbConfig = null; //数据库配置 private Database database = null; //数据库对象 private String fileName = "D:\\wzx"; private String dbName = "wzx"; public void openDatabase(){ EnvironmentConfig envConfig = new EnvironmentConfig(); envConfig.setAllowCreate(true); envConfig.setTransactional(true); envConfig.setReadOnly(false); envConfig.setTxnTimeout(10000, TimeUnit.MILLISECONDS); envConfig.setLockTimeout(10000, TimeUnit.MILLISECONDS); File file = new File(fileName); if(!file.exists()){ file.mkdirs(); } environment = new Environment(file, envConfig); dbConfig = new DatabaseConfig(); dbConfig.setAllowCreate(true); dbConfig.setTransactional(true); dbConfig.setReadOnly(false); if(database == null) database = environment.openDatabase(null, dbName, dbConfig); } public boolean insert(String key, String value, boolean isOverWrite){ try { DatabaseEntry theKey = new DatabaseEntry(key.getBytes("UTF-8")); DatabaseEntry theData = new DatabaseEntry(value.getBytes("UTF-8")); OperationStatus os = null; Transaction transaction = null; TransactionConfig txnConfig = new TransactionConfig(); txnConfig.setSerializableIsolation(true); transaction = environment.beginTransaction(null, txnConfig); if(isOverWrite){ os = database.put(transaction, theKey, theData); }else{ os = database.putNoOverwrite(transaction, theKey, theData); } transaction.commit(); if(os == OperationStatus.SUCCESS){ return true; }else{ return false; } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return false; } public String query(String key){ try { DatabaseEntry theKey = new DatabaseEntry(key.getBytes("UTF-8")); DatabaseEntry theData = new DatabaseEntry(); Transaction transaction = null; TransactionConfig txnConfig = new TransactionConfig(); txnConfig.setSerializableIsolation(true); transaction = environment.beginTransaction(null, txnConfig); OperationStatus os = database.get(transaction, theKey, theData, LockMode.DEFAULT); transaction.commit(); if(os == OperationStatus.SUCCESS){ String value = new String(theData.getData(), "UTF-8"); return value; }else{ return ""; } } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } public void close(){ if(database != null){ database.close(); } if(environment != null){ environment.cleanLog(); environment.close(); } } public static void main(String[] args) { BerkeleyDB berkeleyDb = new BerkeleyDB(); berkeleyDb.openDatabase(); /*berkeleyDb.insert("China", "北京", true); berkeleyDb.insert("US", "纽约", true);*/ System.out.println(berkeleyDb.query("China")); } }
相关推荐
BerkeleyDB和Sqlite是当前最流行的嵌入式开源数据库。
Berkeley DB是一个开源的文件数据库,介于关系数据库与内存数据库之间,使用方式与内存数据库类似,它提供的是一系列直接访问数据库的函数,而不是像关系数据库那样需要网络通讯、SQL解析等步骤
Berkeley DB,开源的嵌入式数据库。效率很高,这是一个帮助文档(英文的)
Java-Edition-BerkeleyDB-3.1.0,国外的开源数据库,供大家参考
Berkeley DB是一个开源的文件数据库,介于关系数据库与内存数据库之间,使用方式与内存数据库类似,它提供的是一系列直接访问数据库的函数,而不是像关系数据库那样需要网络通讯、SQL解析等步骤,本文件是早期版本
berkeley DB 是一个非常优秀的开源嵌入式数据库~几乎可以用于目前所有的操作系统。
Berkeley DB是一个开源的文件数据库,介于关系数据库与内存数据库之间,使用方式与内存数据库类似,它提供的是一系列直接访问数据库的函数,而不是像关系数据库那样需要网络通讯、SQL解析等步骤。
嵌入式开源数据库资料+源码 学习 PostgresSQL Postgres 可追溯至1986年的加州柏克莱大学。该大学在1994年以BSD授权方式将程式码开放给开源码社群,社群则加入了SQL支援,然後一直研发该软体至今。部分原始程式码与...
嵌入式开源数据库系统对比 Derby\H2\SqlLite\ HSQLDB \ oracle Berkeley DB各有优劣
Greybird DB 是一个 Java 框架,用于基于 Sleepycat Software 的 Berkeley DB 构建嵌入式数据库应用程序。 麻省理工学院执照。 需要 Java 1.3.1+ 和 Berkeley DB 4.0.14。
(5.3.28)-开源版本Berkeley DB的最新版本,该版本已获得Berkeley数据库许可(也称为Sleepycat软件产品许可)的许可。 从下一个版本12.1。(6.0.20)开始,这些开源版本已获得许可。 要查看发行和安装的原始文档,...
深入分析、比较Berkeley DB和sQLite。Berkel ey DB和sQLite是源码开放的嵌入式数据库管理系统,无需安装,体积小巧,速度又很快;可以很方便地应用在掌上电脑、PDA、车载设备、移动电话等MySQL、SQL Server这些大中...
伯克利数据库管理工具(BMT)希望成为一种基于提供的定义来打开/搜索/编辑/浏览伯克利数据库的工具。 可以使用文本命令行界面以及图形前端进行操作。
为了提高该监控系统的可靠性和稳定性,采用嵌入式数据库Berkeley DB,利用交叉编译器对数据库文件进行交叉编译,并且在ARM系统上添加动态链接库的方法实现数据库在ARMLinux环境下的稳定运行,实现了基于Berkeley DB...
为了提高该监控系统的可靠性和稳定性,采用嵌入式数据库Berkeley DB,利用交叉编译器对数据库文件进行交叉编译,并且在ARM系统上添加动态链接库的方法实现数据库在ARMLinux环境下的稳定运行,实现了基于Berkeley DB...
这个是最流行的嵌入式高性能开源数据库内核开发包,java企业开发必备。
SQLite是目前最流行的开源嵌入式数据库,和很多其他嵌入式存储引擎相比(NoSQL),如BerkeleyDB、MemBASE等,SQLite可以很好的支持关系型数据库所具备的一些基本特征,如标准SQL语法、事务、数据表和索引等。...
封装了几种使用的数据库,大型关系数据库PeostgreDB,嵌入式NOSQL数据库BerkeleyDB,SQL内存数据库sqlite,NOSQL内存数据库Perst以及多模式数据库 H2,这些数据库是在服务端进行组合使用的,以后会封装使用框架。并且...
#SimpleDB这是我的合作伙伴一个基本的数据库管理系统,我为UC Berkeley的Database类CS186编写了代码。 它称为SimpleDB,由4个项目组成。 ### SimpleDB包含: 表示字段,元组和元组模式的类; 将谓词和条件应用于...