diff options
Diffstat (limited to 'examples_java/src/db/AccessExample.java')
-rw-r--r-- | examples_java/src/db/AccessExample.java | 182 |
1 files changed, 0 insertions, 182 deletions
diff --git a/examples_java/src/db/AccessExample.java b/examples_java/src/db/AccessExample.java deleted file mode 100644 index 841dae5..0000000 --- a/examples_java/src/db/AccessExample.java +++ /dev/null @@ -1,182 +0,0 @@ -/*- - * See the file LICENSE for redistribution information. - * - * Copyright (c) 1997-2009 Oracle. All rights reserved. - * - * $Id$ - */ - - -package db; - -import com.sleepycat.db.*; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.InputStreamReader; -import java.io.IOException; -import java.io.PrintStream; - -class AccessExample { - private static final int EXIT_SUCCESS = 0; - private static final int EXIT_FAILURE = 1; - - public AccessExample() { - } - - public static void usage() { - System.out.println("usage: java " + - "db.AccessExample [-r] [database]\n"); - System.exit(EXIT_FAILURE); - } - - public static void main(String[] argv) { - boolean removeExistingDatabase = false; - String databaseName = "access.db"; - - for (int i = 0; i < argv.length; i++) { - if (argv[i].equals("-r")) - removeExistingDatabase = true; - else if (argv[i].equals("-?")) - usage(); - else if (argv[i].startsWith("-")) - usage(); - else { - if ((argv.length - i) != 1) - usage(); - databaseName = argv[i]; - break; - } - } - - try { - AccessExample app = new AccessExample(); - app.run(removeExistingDatabase, databaseName); - } catch (DatabaseException dbe) { - System.err.println("AccessExample: " + dbe.toString()); - System.exit(EXIT_FAILURE); - } catch (FileNotFoundException fnfe) { - System.err.println("AccessExample: " + fnfe.toString()); - System.exit(EXIT_FAILURE); - } - System.exit(EXIT_SUCCESS); - } - - // Prompts for a line, and keeps prompting until a non blank - // line is returned. Returns null on error. - // - public static String askForLine(InputStreamReader reader, - PrintStream out, String prompt) { - String result = ""; - while (result != null && result.length() == 0) { - out.print(prompt); - out.flush(); - result = getLine(reader); - } - return result; - } - - // Not terribly efficient, but does the job. - // Works for reading a line from stdin or a file. - // Returns null on EOF. If EOF appears in the middle - // of a line, returns that line, then null on next call. - // - public static String getLine(InputStreamReader reader) { - StringBuffer b = new StringBuffer(); - int c; - try { - while ((c = reader.read()) != -1 && c != '\n') { - if (c != '\r') - b.append((char)c); - } - } catch (IOException ioe) { - c = -1; - } - - if (c == -1 && b.length() == 0) - return null; - else - return b.toString(); - } - - public void run(boolean removeExistingDatabase, String databaseName) - throws DatabaseException, FileNotFoundException { - - // Remove the previous database. - if (removeExistingDatabase) - new File(databaseName).delete(); - - // Create the database object. - // There is no environment for this simple example. - DatabaseConfig dbConfig = new DatabaseConfig(); - dbConfig.setErrorStream(System.err); - dbConfig.setErrorPrefix("AccessExample"); - dbConfig.setType(DatabaseType.BTREE); - dbConfig.setAllowCreate(true); - Database table = new Database(databaseName, null, dbConfig); - - // - // Insert records into the database, where the key is the user - // input and the data is the user input in reverse order. - // - InputStreamReader reader = new InputStreamReader(System.in); - - for (;;) { - String line = askForLine(reader, System.out, "input> "); - if (line == null) - break; - - String reversed = (new StringBuffer(line)).reverse().toString(); - - // See definition of StringDbt below - // - StringEntry key = new StringEntry(line); - StringEntry data = new StringEntry(reversed); - - try { - if (table.putNoOverwrite(null, key, data) == OperationStatus.KEYEXIST) - System.out.println("Key " + line + " already exists."); - } catch (DatabaseException dbe) { - System.out.println(dbe.toString()); - } - } - - // Acquire an iterator for the table. - Cursor cursor; - cursor = table.openCursor(null, null); - - // Walk through the table, printing the key/data pairs. - // See class StringDbt defined below. - // - StringEntry key = new StringEntry(); - StringEntry data = new StringEntry(); - while (cursor.getNext(key, data, null) == OperationStatus.SUCCESS) - System.out.println(key.getString() + " : " + data.getString()); - cursor.close(); - table.close(); - } - - // Here's an example of how you can extend DatabaseEntry in a - // straightforward way to allow easy storage/retrieval of strings, - // or whatever kind of data you wish. We've declared it as a static - // inner class, but it need not be. - // - static /*inner*/ - class StringEntry extends DatabaseEntry { - StringEntry() { - } - - StringEntry(String value) { - setString(value); - } - - void setString(String value) { - byte[] data = value.getBytes(); - setData(data); - setSize(data.length); - } - - String getString() { - return new String(getData(), getOffset(), getSize()); - } - } -} |