1/*- 2 * See the file LICENSE for redistribution information. 3 * 4 * Copyright (c) 1997,2008 Oracle. All rights reserved. 5 * 6 * $Id: SequenceExample.java,v 12.7 2008/01/08 20:58:32 bostic Exp $ 7 */ 8 9package db; 10 11import com.sleepycat.db.*; 12import java.io.File; 13import java.io.FileNotFoundException; 14import java.io.IOException; 15import java.io.PrintStream; 16 17class SequenceExample { 18 private static final int EXIT_SUCCESS = 0; 19 private static final int EXIT_FAILURE = 1; 20 21 public SequenceExample() { 22 } 23 24 public static void usage() { 25 System.out.println("usage: java " + 26 "db.SequenceExample [-r] [database]\n"); 27 System.exit(EXIT_FAILURE); 28 } 29 30 public static void main(String[] argv) { 31 boolean removeExistingDatabase = false; 32 String databaseName = "access.db"; 33 34 for (int i = 0; i < argv.length; i++) { 35 if (argv[i].equals("-r")) 36 removeExistingDatabase = true; 37 else if (argv[i].equals("-?")) 38 usage(); 39 else if (argv[i].startsWith("-")) 40 usage(); 41 else { 42 if ((argv.length - i) != 1) 43 usage(); 44 databaseName = argv[i]; 45 break; 46 } 47 } 48 49 try { 50 SequenceExample app = new SequenceExample(); 51 app.run(removeExistingDatabase, databaseName); 52 } catch (DatabaseException dbe) { 53 System.err.println("SequenceExample: " + dbe.toString()); 54 System.exit(EXIT_FAILURE); 55 } catch (FileNotFoundException fnfe) { 56 System.err.println("SequenceExample: " + fnfe.toString()); 57 System.exit(EXIT_FAILURE); 58 } 59 System.exit(EXIT_SUCCESS); 60 } 61 62 public void run(boolean removeExistingDatabase, String databaseName) 63 throws DatabaseException, FileNotFoundException { 64 65 // Remove the previous database. 66 if (removeExistingDatabase) 67 new File(databaseName).delete(); 68 69 // Create the database object. 70 // There is no environment for this simple example. 71 DatabaseConfig dbConfig = new DatabaseConfig(); 72 dbConfig.setErrorStream(System.err); 73 dbConfig.setErrorPrefix("SequenceExample"); 74 dbConfig.setType(DatabaseType.BTREE); 75 dbConfig.setAllowCreate(true); 76 Database table = new Database(databaseName, null, dbConfig); 77 78 SequenceConfig config = new SequenceConfig(); 79 config.setAllowCreate(true); 80 DatabaseEntry key = 81 new DatabaseEntry("my_sequence".getBytes()); 82 Sequence sequence = table.openSequence(null, key, config); 83 84 for (int i = 0; i < 10; i++) { 85 long seqnum = sequence.get(null, 1); 86 System.out.println("Got sequence number: " + seqnum); 87 } 88 89 sequence.close(); 90 table.close(); 91 } 92} 93