- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我似乎找不到用 Java 构建 Berkeley DB 并将记录插入其中的示例代码。有 sample 吗?我也不是指 Berkeley DB Java 版。
最佳答案
如果您下载 db-5.0.21.NC.zip,您会看到大量示例。这是一个似乎做你想做的事
/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 2004, 2010 Oracle and/or its affiliates. All rights reserved.
*
* $Id$
*/
// File: ExampleDatabaseLoad.java
package db.GettingStarted;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
import java.util.Vector;
import com.sleepycat.bind.EntryBinding;
import com.sleepycat.bind.serial.SerialBinding;
import com.sleepycat.bind.tuple.TupleBinding;
import com.sleepycat.db.DatabaseEntry;
import com.sleepycat.db.DatabaseException;
public class ExampleDatabaseLoad {
private static String myDbsPath = "./";
private static File inventoryFile = new File("./inventory.txt");
private static File vendorsFile = new File("./vendors.txt");
// DatabaseEntries used for loading records
private static DatabaseEntry theKey = new DatabaseEntry();
private static DatabaseEntry theData = new DatabaseEntry();
// Encapsulates the databases.
private static MyDbs myDbs = new MyDbs();
private static void usage() {
System.out.println("ExampleDatabaseLoad [-h <database home>]");
System.out.println(" [-i <inventory file>] [-v <vendors file>]");
System.exit(-1);
}
public static void main(String args[]) {
ExampleDatabaseLoad edl = new ExampleDatabaseLoad();
try {
edl.run(args);
} catch (DatabaseException dbe) {
System.err.println("ExampleDatabaseLoad: " + dbe.toString());
dbe.printStackTrace();
} catch (Exception e) {
System.out.println("Exception: " + e.toString());
e.printStackTrace();
} finally {
myDbs.close();
}
System.out.println("All done.");
}
private void run(String args[])
throws DatabaseException {
// Parse the arguments list
parseArgs(args);
myDbs.setup(myDbsPath);
System.out.println("loading vendors db....");
loadVendorsDb();
System.out.println("loading inventory db....");
loadInventoryDb();
}
private void loadVendorsDb()
throws DatabaseException {
// loadFile opens a flat-text file that contains our data
// and loads it into a list for us to work with. The integer
// parameter represents the number of fields expected in the
// file.
List vendors = loadFile(vendorsFile, 8);
// Now load the data into the database. The vendor's name is the
// key, and the data is a Vendor class object.
// Need a serial binding for the data
EntryBinding dataBinding =
new SerialBinding(myDbs.getClassCatalog(), Vendor.class);
for (int i = 0; i < vendors.size(); i++) {
String[] sArray = (String[])vendors.get(i);
Vendor theVendor = new Vendor();
theVendor.setVendorName(sArray[0]);
theVendor.setAddress(sArray[1]);
theVendor.setCity(sArray[2]);
theVendor.setState(sArray[3]);
theVendor.setZipcode(sArray[4]);
theVendor.setBusinessPhoneNumber(sArray[5]);
theVendor.setRepName(sArray[6]);
theVendor.setRepPhoneNumber(sArray[7]);
// The key is the vendor's name.
// ASSUMES THE VENDOR'S NAME IS UNIQUE!
String vendorName = theVendor.getVendorName();
try {
theKey = new DatabaseEntry(vendorName.getBytes("UTF-8"));
} catch (IOException willNeverOccur) {}
// Convert the Vendor object to a DatabaseEntry object
// using our SerialBinding
dataBinding.objectToEntry(theVendor, theData);
// Put it in the database.
myDbs.getVendorDB().put(null, theKey, theData);
}
}
private void loadInventoryDb()
throws DatabaseException {
// loadFile opens a flat-text file that contains our data
// and loads it into a list for us to work with. The integer
// parameter represents the number of fields expected in the
// file.
List inventoryArray = loadFile(inventoryFile, 6);
// Now load the data into the database. The item's sku is the
// key, and the data is an Inventory class object.
// Need a tuple binding for the Inventory class.
TupleBinding inventoryBinding = new InventoryBinding();
for (int i = 0; i < inventoryArray.size(); i++) {
String[] sArray = (String[])inventoryArray.get(i);
String sku = sArray[1];
try {
theKey = new DatabaseEntry(sku.getBytes("UTF-8"));
} catch (IOException willNeverOccur) {}
Inventory theInventory = new Inventory();
theInventory.setItemName(sArray[0]);
theInventory.setSku(sArray[1]);
theInventory.setVendorPrice((new Float(sArray[2])).floatValue());
theInventory.setVendorInventory((new Integer(sArray[3])).intValue());
theInventory.setCategory(sArray[4]);
theInventory.setVendor(sArray[5]);
// Place the Vendor object on the DatabaseEntry object using our
// the tuple binding we implemented in InventoryBinding.java
inventoryBinding.objectToEntry(theInventory, theData);
// Put it in the database. Note that this causes our secondary database
// to be automatically updated for us.
myDbs.getInventoryDB().put(null, theKey, theData);
}
}
private static void parseArgs(String args[]) {
for(int i = 0; i < args.length; ++i) {
if (args[i].startsWith("-")) {
switch(args[i].charAt(1)) {
case 'h':
myDbsPath = new String(args[++i]);
break;
case 'i':
inventoryFile = new File(args[++i]);
break;
case 'v':
vendorsFile = new File(args[++i]);
break;
default:
usage();
}
}
}
}
private List loadFile(File theFile, int numFields) {
List records = new ArrayList();
try {
String theLine = null;
FileInputStream fis = new FileInputStream(theFile);
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
while((theLine=br.readLine()) != null) {
String[] theLineArray = splitString(theLine, "#");
if (theLineArray.length != numFields) {
System.out.println("Malformed line found in " + theFile.getPath());
System.out.println("Line was: '" + theLine);
System.out.println("length found was: " + theLineArray.length);
System.exit(-1);
}
records.add(theLineArray);
}
fis.close();
} catch (FileNotFoundException e) {
System.err.println(theFile.getPath() + " does not exist.");
e.printStackTrace();
usage();
} catch (IOException e) {
System.err.println("IO Exception: " + e.toString());
e.printStackTrace();
System.exit(-1);
}
return records;
}
private static String[] splitString(String s, String delimiter) {
Vector resultVector = new Vector();
StringTokenizer tokenizer = new StringTokenizer(s, delimiter);
while (tokenizer.hasMoreTokens())
resultVector.add(tokenizer.nextToken());
String[] resultArray = new String[resultVector.size()];
resultVector.copyInto(resultArray);
return resultArray;
}
protected ExampleDatabaseLoad() {}
}
关于java - 使用 Java 将记录插入 Berkeley DB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2696034/
Berkeley DB 是否有空间索引,例如 R-tree? 最佳答案 有人问the same question on the Oracle forum .还没有甲骨文回答。但答案是否定的,它没有任何
berkeley-db-je 的最新版本是什么? 来自 oracle , 为 7.5。 但来自maven存储库,它是 18.3.12。 有没有人知道更多的细节? 最佳答案 Berkeley DB Ja
看起来 BerkeleyDB 被 Oracle 收购了,它没有在其网站上发布源代码? 最佳答案 Sleepycat 于 2006 年被 Oracle 收购。该产品继续在原始开源许可下可用,并继续得到增
我正在尝试通读 Berkeley DB XML 上的文档,而且我认为我真的可以使用开发人员的博客文章或概要,当他们遇到问题时发现 Berkeley DB 上的 XML 层是正确的处方。 也许我不明白,
(我已经在网上某个地方看到了这个问题,但是依赖于“100”作为搜索词的搜索查询显然不是一个有希望的查询 - 所以如果这个问题已经被问到,请原谅我) 我刚刚开始使用 Java 中的 berkeley D
几天前我刚刚开始使用 Berkeley DB,所以我想看看在尽可能快地存储数据方面是否遗漏了什么。 以下是有关数据的一些信息: - 它有 512 字节的块 - 大块按顺序排列 - 块将按 FIFO 顺
我有一个现有的 C++ 程序,它使用 Berkeley DB 作为存储后端。我想用 Rust 重写它。有没有办法在 Rust 中编写外部函数接口(interface)以使用 Berkeley DB?我
我正在设计一个基于 Java 的网络应用程序,我需要一个键值存储。 Berkeley DB 似乎很适合我,但似乎有两个 Berkeley DB 可供选择:用 C 实现的 Berkeley DB Cor
我有一个由 C 实现(python bsddb 模块)创建的 berkeley db 文件(*.bdb)。是否可以通过 Berkeley Db 的纯 Java 实现来读取此文件?我尝试使用 berke
我正在尝试从本地比特币数据库中提取数据。据我所知,bitcoin-qt 正在使用 BerkeleyDB。我已经从 Oracle 网站安装了 Berkley db,并在这里找到了 .NET 的 dll:
有没有办法在 Berkeley DB 的 java 接口(interface)上执行非阻塞操作,并使用 Future 或类似的东西获取操作的状态和结果(比如使用 Future 获取 Callable
我在nginx中使用Berkeley DB(BDB)。当请求到达时,nginx 将 URI 作为键传递给 BDB,并检查该键在 BDB 文件中是否有值。 我实际上在一个例子中做到了。我在BDB中添加了
在多线程应用程序中使用 berkeley DB (bdb) 句柄的最佳方法是什么? 让每个线程打开自己的句柄更好吗?或者, 打开单个句柄并让每个线程执行 txn_begin { } txn->comm
好消息!自 4.8 版以来,BerkeleyDB 具有 c# 接口(interface)。 BerkeleyDB 对我来说是一件非常有趣的事情,因为它是非 SQL 的。我知道如果有人想要存储很多键/值
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我正在寻找一些不错的 xml db ,它将嵌入到我的应用程序中。我想使用我的java应用程序中嵌入的berkley db。也就是说,我不想将 berkley db 作为服务运行并访问它,而是想从我的应
我知道在线路上,大多数整数都是大端格式。 但为什么应用程序的负担是在像 sockaddr_in 这样的结构中进行字节交换,而不是内核,所有低级工作实际上都发生在内核中?如果用户空间 API 与平台无关
我使用Java版的BerkeleyDB,DPL。 在将数据解析到 BerkeleyDB 时,我将一些临时信息存储在特定的 PrimaryIndex 中。这个 PrimaryIndex 占用了大量空间,
出于实验原因,我正在研究 Berkeley DB。但我在从数据库读取文件时遇到问题。 当程序像 创建数据库 打开 写 阅读 关闭 在执行中完全没有问题。 但是当我将数据写入数据库文件并关闭它,然后再次
我正在使用 Berkeley DB 将数据持久存储在我的程序中。我在我的SSD上进行了测试,我的SSD写入速度为1.4Gb/s。我测试DB存储速度的程序如下(错误检查省略)。 const char*
我是一名优秀的程序员,十分优秀!