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