Derby - Storing ClientDataSource Objects on File System

This section describes how to store a Derby JDBC ClientDataSource object in the file system using JNDI File System Service Provider.

JNDI File System Service Provider offers a directory service which allows you to store Java objects on the local file system. You can use this feature to create a Derby JDBC ClientDataSource object and store it on the local file system. That stored ClientDataSource object can be retrieved later whenever you want to use it.

To store a ClientDataSource object on the local file system, I need to:

I wrote the following sample program to store my ClientDataSource object to the file system via JNDI:

/* DerbyJndiBind.java
 * Copyright (c) HerongYang.com. All Rights Reserved.
 */
import java.util.*;
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
import org.apache.derby.jdbc.*;
public class DerbyJndiBind {
  public static void main(String [] args) {
    Connection con = null;
    try {

// Starting the Directory service
      Hashtable env = new Hashtable();
      env.put(Context.INITIAL_CONTEXT_FACTORY,
        "com.sun.jndi.fscontext.RefFSContextFactory");
      env.put(Context.PROVIDER_URL, "file:/local/fscontext");
      Context ctx = new InitialContext(env);

// Creating a DataSource object
      ClientDataSource ds
        = new org.apache.derby.jdbc.ClientDataSource();
      ds.setServerName("localhost");
      ds.setDatabaseName("TestDB");

// Storing the DataSource object
      ctx.bind("DerbyTestDB", ds);
      System.out.println("ClientDataSource object stored ok.");

    } catch (Exception e) {
      System.err.println("Exception: "+e.getMessage());
    }
  }
}

Here is the output of compilation and execution of the program:

herong> javac -cp .;derbyclient.jar DerbyJndiBind.java
Note: DerbyJndiBind.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

herong> java -cp .;derbyclient.jar;fscontext.jar;providerutil.jar \
   DerbyJndiBind
ClientDataSource object stored ok.

herong> java -cp .;derbyclient.jar;fscontext.jar;providerutil.jar \
   DerbyJndiBind
Exception: DerbyTestDB

Note that:

Table of Contents

 About This Book

 JDBC (Java Database Connectivity) Introduction

 JDK (Java SE) Installation

 Installing and Running Derby (Java DB)

 Derby (Java DB) JDBC Driver

Derby (Java DB) JDBC DataSource Objects

 Derby - Connection with DataSource Objects

 Derby - Using ClientDataSource Directly

 Installing JNDI File System Service Provider

Derby - Storing ClientDataSource Objects on File System

 Derby - Looking Up ClientDataSource Objects on File System

 What Happens If Client JDBC DataSource JAR Is Missing?

 Derby (Java DB) - DML Statements

 Derby (Java DB) - ResultSet Objects of Queries

 Derby (Java DB) - PreparedStatement

 Summary of JDBC Drivers and Database Servers

 Using Connection Pool with JDBC

 Archived Tutorials

 References

 Full Version in PDF/EPUB