db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel A Keefe <dan.ke...@convergys.com>
Subject RE: problem with embedded driver
Date Tue, 19 Apr 2011 19:49:48 GMT
Steve;

When you connect to the derby db via ij, the available db connections is NULL.

dk

________________________________________
From: steve lescure [stevelescure@yahoo.com]
Sent: Tuesday, April 19, 2011 3:45 PM
To: derby-user@db.apache.org
Subject: problem with embedded driver

I create a java desktop application using Netbeans that uses the embedded derby driver.  it
works fine as long as i connect to the database manually within Netbeans.  If I don't, i get
a return code of 8000/4001 connection refused.

I created a project in Netbeans using the derby demo application too, so i could see if the
problem was my code or something else.  I have the same problem.  it only works if i right
click on the database in Netbeans and
choose "connect".

i seem to be missing something fundamental here.

can anybody help?

package ondemand;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Properties;

public class DemandDatabase {

    private String framework = "embedded";
    private String driver = "org.apache.derby.jdbc.EmbeddedDriver";
    private String protocol = "jdbc:derby:";

    public DemandDatabase() {
        System.out.println("in constructor ");
    }

    public ArrayList go()
    {
        System.out.println("about to load the driver in " + framework + " mode");
        loadDriver();
        Connection conn = null;

        ArrayList statements = new ArrayList();
        ArrayList jobnames = new ArrayList();

        Statement s = null;
        ResultSet rs = null;

        try {
            Properties props = new Properties(); // connection properties
            props.put("user", "nbuser");
            props.put("password", "nbuser");
            String dbName = "//localhost:1527/users"; // the name of the database
            conn = DriverManager.getConnection(protocol + dbName
                    + ";create=false", props);
            System.out.println("Connected to database " + dbName);

            conn.setAutoCommit(true);
            s = conn.createStatement();
            statements.add(s);
            rs = s.executeQuery(
                    "SELECT JOBNAME, USERID FROM APP.JOBS");
            String txtJobname;
            String txtUserID;

            while (rs.next()) {
                txtJobname = rs.getString("JOBNAME");
                System.out.println("value of jobname is " + txtJobname);
                txtUserID = rs.getString("USERID");
                System.out.println("value of User ID is " + txtUserID);
                jobnames.add(txtJobname);
            }

            try {
                // the shutdown=true attribute shuts down Derby
                DriverManager.getConnection("jdbc:derby:;shutdown=true");
            } catch (SQLException se) {
                if (((se.getErrorCode() == 50000)
                        && ("XJ015".equals(se.getSQLState())))) {
                    // we got the expected exception
                    System.out.println("Derby shut down normally");
                    // Note that for single database shutdown, the expected
                    // SQL state is "08006", and the error code is 45000.
                } else {
                    // if the error code or SQLState is different, we have
                    // an unexpected exception (shutdown failed)
                    System.out.println("Derby did not shut down normally");
                    printSQLException(se);
                }
            }
        } catch (SQLException sqle) {
            printSQLException(sqle);
        } finally {
            // release all open resources to avoid unnecessary memory usage
            try {
                if (rs != null) {
                    rs.close();
                    rs = null;
                }
            } catch (SQLException sqle) {
                printSQLException(sqle);
            }

            // Statements and PreparedStatements
            int i = 0;
            while (!statements.isEmpty()) {
                // PreparedStatement extend Statement
                Statement st = (Statement) statements.remove(i);
                try {
                    if (st != null) {
                        st.close();
                        st = null;
                    }
                } catch (SQLException sqle) {
                    printSQLException(sqle);
                }
            }
            //Connection
            try {
                if (conn != null) {
                    conn.close();
                    conn = null;
                }
            } catch (SQLException sqle) {
                printSQLException(sqle);
            }
        }
        return jobnames;
    }

    private void loadDriver() {
        try {
            Class.forName(driver).newInstance();
            System.out.println("Loaded the appropriate driver");
        } catch (ClassNotFoundException cnfe) {
            System.err.println("\nUnable to load the JDBC driver " + driver);
            System.err.println("Please check your CLASSPATH.");
            cnfe.printStackTrace(System.err);
        } catch (InstantiationException ie) {
            System.err.println(
                    "\nUnable to instantiate the JDBC driver " + driver);
            ie.printStackTrace(System.err);
        } catch (IllegalAccessException iae) {
            System.err.println(
                    "\nNot allowed to access the JDBC driver " + driver);
            iae.printStackTrace(System.err);
        }
    }

    private void reportFailure(String message) {
        System.err.println("\nData verification failed:");
        System.err.println('\t' + message);
    }

    public static void printSQLException(SQLException e) {
        // Unwraps the entire exception chain to unveil the real cause of the
        // Exception.
        while (e != null) {
            System.err.println("\n----- SQLException -----");
            System.err.println("  SQL State:  " + e.getSQLState());
            System.err.println("  Error Code: " + e.getErrorCode());
            System.err.println("  Message:    " + e.getMessage());
            // for stack traces, refer to derby.log or uncomment this:
            //e.printStackTrace(System.err);
            e = e.getNextException();
        }
    }
}

NOTICE:  The information contained in this electronic mail transmission is intended by Convergys
Corporation for the use of the named individual or entity to which it is directed and may
contain information that is privileged or otherwise confidential.  If you have received this
electronic mail transmission in error, please delete it from your system without copying or
forwarding it, and notify the sender of the error by reply email or by telephone (collect),
so that the sender's address records can be corrected.

Mime
View raw message