JDBC Tutorials - Herong's Tutorial Examples - v3.14, by Herong Yang
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
JDBC (Java Database Connectivity) Introduction
Installing and Running Derby (Java DB)
►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