EnvExample.java
上传用户:tsgydb
上传日期:2007-04-14
资源大小:10674k
文件大小:4k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /*-
  2.  * See the file LICENSE for redistribution information.
  3.  *
  4.  * Copyright (c) 1997, 1998, 1999, 2000
  5.  * Sleepycat Software.  All rights reserved.
  6.  *
  7.  * $Id: EnvExample.java,v 11.7 2000/09/25 13:16:51 dda Exp $
  8.  */
  9. package com.sleepycat.examples;
  10. import com.sleepycat.db.*;
  11. import java.io.FileNotFoundException;
  12. import java.io.OutputStream;
  13. /*
  14.  * An example of a program using DbEnv to configure its DB
  15.  * environment.
  16.  *
  17.  * For comparison purposes, this example uses a similar structure
  18.  * as examples/ex_env.c and examples_cxx/EnvExample.cpp.
  19.  */
  20. public class EnvExample
  21. {
  22.     private static final String progname = "EnvExample";
  23.     private static final String DATABASE_HOME = "/tmp/database";
  24.     private static void db_application()
  25.         throws DbException
  26.     {
  27.         // Do something interesting...
  28.         // Your application goes here.
  29.     }
  30.     private static void db_setup(String home, String data_dir,
  31.                                   OutputStream errs)
  32.          throws DbException, FileNotFoundException
  33.     {
  34.         //
  35.         // Create an environment object and initialize it for error
  36.         // reporting.
  37.         //
  38.         DbEnv dbenv = new DbEnv(0);
  39.         dbenv.set_error_stream(errs);
  40.         dbenv.set_errpfx(progname);
  41.         //
  42.         // We want to specify the shared memory buffer pool cachesize,
  43.         // but everything else is the default.
  44.         //
  45.         dbenv.set_cachesize(0, 64 * 1024, 0);
  46. // Databases are in a subdirectory.
  47. dbenv.set_data_dir(data_dir);
  48. // Open the environment with full transactional support.
  49.         //
  50.         // open() will throw a DbException if there is an error.
  51.         //
  52.         // open is declared to throw a FileNotFoundException, which normally
  53.         // shouldn't occur with the DB_CREATE option.
  54.         //
  55.         dbenv.open(DATABASE_HOME,
  56.                    Db.DB_CREATE | Db.DB_INIT_LOCK | Db.DB_INIT_LOG |
  57.                    Db.DB_INIT_MPOOL | Db.DB_INIT_TXN, 0);
  58.         try {
  59.             // Start your application.
  60.             db_application();
  61.         }
  62.         finally {
  63.             // Close the environment.  Doing this in the
  64.             // finally block ensures it is done, even if
  65.             // an error is thrown.
  66.             //
  67.             dbenv.close(0);
  68.         }
  69.     }
  70.     private static void db_teardown(String home, String data_dir,
  71.                                     OutputStream errs)
  72.          throws DbException, FileNotFoundException
  73.     {
  74. // Remove the shared database regions.
  75.         DbEnv dbenv = new DbEnv(0);
  76.         dbenv.set_error_stream(errs);
  77.         dbenv.set_errpfx(progname);
  78. dbenv.set_data_dir(data_dir);
  79.         dbenv.remove(home, 0);
  80.     }
  81.     public static void main(String[] args)
  82.     {
  83.         //
  84.         // All of the shared database files live in /tmp/database,
  85.         // but data files live in /database.
  86.         //
  87.         // Using Berkeley DB in C/C++, we need to allocate two elements
  88.         // in the array and set config[1] to NULL.  This is not
  89.         // necessary in Java.
  90.         //
  91.         String home = DATABASE_HOME;
  92.         String config = "/database/files";
  93.         try {
  94.             System.out.println("Setup env");
  95.             db_setup(home, config, System.err);
  96.             System.out.println("Teardown env");
  97.             db_teardown(home, config, System.err);
  98.         }
  99.         catch (DbException dbe) {
  100.             System.err.println(progname + ": environment open: " + dbe.toString());
  101.             System.exit (1);
  102.         }
  103.         catch (FileNotFoundException fnfe) {
  104.             System.err.println(progname +
  105.                                ": unexpected open environment error  " + fnfe);
  106.             System.exit (1);
  107.         }
  108.     }
  109. }