The static Db::open method and the DbInfo class have been removed in the Berkeley DB 3.0 release. The way to open a database file is to use the new Db constructor with two arguments, followed by set_XXX methods to configure the Db object, and finally a call to the new (nonstatic) Db::open(). In comparing the Berkeley DB 3.0 release open method with the 2.X static open method, the second argument is new. It is a database name, which can be null. The DbEnv argument has been removed, as the environment is now specified in the constructor. The open method no longer returns a Db, since it operates on one.
Here's a C++ example opening a Berkeley DB database using the 2.X interface:
// Note: by default, errors are thrown as exceptions Db *table; Db::open("lookup.db", DB_BTREE, DB_CREATE, 0644, dbenv, 0, &table);
In the Berkeley DB 3.0 release, this code would be written as:
// Note: by default, errors are thrown as exceptions Db *table = new Db(dbenv, 0); table->open("lookup.db", NULL, DB_BTREE, DB_CREATE, 0644);
Here's a Java example opening a Berkeley DB database using the 2.X interface:
// Note: errors are thrown as exceptions Db table = Db.open("lookup.db", Db.DB_BTREE, Db.DB_CREATE, 0644, dbenv, 0);
In the Berkeley DB 3.0 release, this code would be written as:
// Note: errors are thrown as exceptions Db table = new Db(dbenv, 0); table.open("lookup.db", null, Db.DB_BTREE, Db.DB_CREATE, 0644);
Note that if the dbenv argument is null, the database will not exist within an environment.