Database connectivity in single class

Hi,
I am currently developing an application which reads and writes to an access db. For my current problem I use three tables which reference to each other:
Table 1: organization (id, name)
Table 2: departments(id, name, id_of_organization)
Table 3: personel (id, surname, firstname, id_of_department, id_of_organization)
Since I do not like managing the database connectivity in each and every class I wrote a class that manages database connectivity and has one public function which accepts a string as argument ( the SQL string) and returns a ResultSet after executing the query. Every class that uses the database has an instance of the "database class".
When listing the personell I would like to list the names of departments and organization, not the id's. The listing is accomplished by moving through the resultset in a while loop (while(rs.next()) )and retrieving the data using the getString() method. In the while loop I also retrieve the other data using the id's.
The problem is that as soon as I retrieve department or organization data the ResultSet containing the personell is closed (even though it is a mere copy of the original ResultSet of the "database class").......
My application (very much shortened of course ;-))
The "database class" DbConnect.class
/* Header, initialize connection and so on*/
public ResultSet Query(String queryIn)
// execute Select Query and return Result as ResultSet
try
rs = stmt.executeQuery(queryIn);
rs.first();
catch(SQLException esql)
JOptionPane.showMessageDialog(null, "Fehler in SQL Verbindung: " + esql.getMessage());
return rs;
What I do later:
/* some code
DbConnect database = new DbConnect();
ResultSet personell = database.Query("SELECT * FROM personell");
while (personell.next())
ResultSet department = database.Query("SELECT name FROM department WHERE id = " + personell.getLong("department"));
System.out.println("Name: " + personell.getString("name") ....... and so on, never gets executed since the SQL exception "ResultSet closed" is fired.
What am I doing wrong?

I agree with your method of doing db access through a single helper class. However there is one glaring problem. After each statement is done you must close the statement and the connection. Now you really want to do this in the Query() method, but you can't because you expose the ResultSet to the world and require clients to close the statement and connection that they can't see.
The solution is to package the result set into another collection, then close the statement and connection. Here's code that I use for executing arbitrary queries with a dynamic number of parameters. I use a map in this example to store each rows column values, but you can also use a List of Arrays or a List or Lists or a List of Value Objects.
   * General purpose Query executor method.
   * Statements to be executed MUST return result sets.
   * A list entry is created for each row which contains a Map of
   * column values, keys are the column names, therefore each computed column in
   * the query must be named.
   * @param sql The sql to execute
   * @param connection An open DB Connection
   * @param params Array of params to be applied to the statement. The number of
   * parameter holders in the SQL statement must match the number of entries in this array.
   * @param list instance of a List, that will be populated with results.
   * @throws SQLException
  private static final void executeQuery(final String sql,
                                         final Connection connection,
                                         final Object[] params,
                                         final List list ) throws SQLException {
    PreparedStatement statement = null;
    try {
      statement = connection.prepareStatement(sql);
      /* populate any parameters */
      for (int i = 0,j = 1; i < params.length; i++,j++) {
        statement.setObject(j,params);
ResultSet rs = statement.executeQuery();
/* Get meta data for column names and #columns */
ResultSetMetaData rsmd = rs.getMetaData();
int columns = rsmd.getColumnCount();
/* Process each row */
while (rs.next()) {
HashMap map = new HashMap(columns);
list.add(map);
/* Process each column */
for (int i = 1; i <= columns; i++) {
map.put(rsmd.getColumnName(i),rs.getObject(i));
} // for
} // while
} // try
finally {
if(statement!=null) statement.close();
if(connection!=null) connection.close();
} // executeQuery()

Similar Messages

  • How to use Forms Default Database Connection in java class

    When a form based application is started, a connection is made with underlying database. This is the Default (Primay) Database Connection.
    The problem is I have some of my business logic implemented in a java class. In this class I have to make a another connection with the same database. What I want to do is to use the original Database Connection in the java class. In this I may avoid the overhead of reconnection.
    Could anyone pls guide me in this way...

    you can't share the forms connection. Sorry :(

  • Database connectivity without using Class.forName()

    Hi,
    Can anyone please tell how we can connect to a database without in java without using the Class.forName() method , and then how the database driver gets loaded.
    Regards,
    Tanmoy

    Hi,
    I recently wrote code that connects to a database without using Class.forName() in order to be compatible with Microsoft's JVM. I read about it here:
    http://www.idssoftware.com/faq-e.html#E1
    Basically, you create a new Driver object and use its connect method.
    Here's what my particular code ended up being:
    String url = "jdbc:mysql://localhost:3306/test?user=root&password=mypass";
    Driver drv = new org.gjt.mm.mysql.Driver();
    Connection con = drv.connect(url,null);

  • Problem in Oracle Database Connectivity in JSP

    I am having big problem such as Oracle Database connectivity problem
    Following code i am used for database connection. but it throw an exception call class not found exception.
    Pls any one can help me. With a sample code for Oracle Database connection in JSP
    Class.forName ("oracle.jdbc.driver.OracleDriver");
    String url="jdbc:oracle:thin:@172.25.44.54:1521:bbo";
    con = DriverManager.getConnection(url,"user", "user123");
    Thank you

    Well i've never used oracle or their drivers before but i'm presuming that you'd go to oracle.com or something and look for downloads. Otherwise you could goodle for Oracle JDBC drivers. Then just follow the instructions.
    Again i've never used JSP but if you have a manifest file somewhere you'll need to put a class-path: entry in their referecning the jar file with the driver so that it is availble at run-time.
    Wes

  • How I can close Database connection?

    I am using the following to open Database connections in Java class.
    Class.forName("oracle.jdbc.driver.OracleDriver");
    con = DriverManager.getConnection("URL","user","password");
    But I do not know how I can have it closed.
    This cause an SQL error: Maximum open cursors exceeded.

    Thanks so much. Your explanation is so clear.
    Here is the whole code. Thanks for your help.
    package xxx.xx.xxx;
    import java.io.*;
    import java.sql.*;
    import java.util.*;
    public class Format_BaseTable {
    Connection con = null;
    Statement stmt = null;
    Statement stmt1 = null;
    ResultSet rs = null;
    ResultSet rs1 = null;
    PreparedStatement ps = null;
    PreparedStatement ps1 = null;
    public Format_BaseTable() {}
    public static String valueOf(String oldStr)
    StringTokenizer st = new StringTokenizer(oldStr.trim(), "-");
    char zero = '0';
    String dem_zero = ".0";
    String newStr = "";
    while(st.hasMoreTokens()) {
    String degree = st.nextToken();
    String minute = st.nextToken();
    String second = st.nextToken();     
    if (minute.length() == 1) {
    minute = zero + minute;
    if (second.length() == 1) {
    second = zero + second;
    if (second.length() == 2) {
    second = second + dem_zero;
    if (second.length() == 3) {
    second = zero + second;
    if (second.length() == 5) {
    double d = Double.parseDouble(second);
    second = String.valueOf(Math.round(d));
    newStr = degree + " " + minute + " " + second;
    return newStr;
    public static double feetToMeter(int ft)
    double mt = ft * 0.305;
    return mt;
    public void doConvert() { 
    try {
    Class.forName("oracle.jdbc.driver.OracleDriver");
    con = DriverManager.getConnection("url","user","password");
    stmt = con.createStatement();
    stmt1 = con.createStatement();
    rs = stmt.executeQuery("SELECT cla_seqnum, str_leased, nad27_lat, nad27_lon, nad83_lat, nad83_lon, ge_ft, sh_ft, osh_ft, ov_faa_approv_ft, ant_tip_ft, ant_ctr_line_ft FROM cl_antenna_base WHERE application_user_id = 'SQL LOADER'");
    rs1 = stmt1.executeQuery("SELECT mwa_seqnum, nad27_lat, nad27_lon, nad83_lat, nad83_lon, ge_ft, osh_ft, cl_ft FROM mw_antenna_base WHERE application_user_id = 'SQL LOADER'");
    int cl_seqnum = 0;
    String leased = "";
    String ownership = "";
    String str_code = "";
    String cl_nad27_lat = "";
    String cl_nad27_lon = "";
    String cl_nad83_lat = "";
    String cl_nad83_lon = "";
    int cl_ge_ft = 0;
    int cl_ge_mt = 0;
    int cl_sh_ft = 0;
    int cl_sh_mt = 0;
    int cl_osh_ft = 0;
    int cl_osh_mt = 0;
    int cl_ov_faa_approv_ft = 0;
    int cl_ov_faa_approv_mt = 0;
    int cl_ant_tip_ft = 0;
    int cl_ant_tip_mt = 0;
    int cl_ant_ctr_line_ft = 0;
    int cl_ant_ctr_line_mt = 0;
    int i = 1;
    int mw_seqnum = 0;
    String mw_nad27_lat = "";
    String mw_nad27_lon = "";
    String mw_nad83_lat = "";
    String mw_nad83_lon = "";
    int mw_ge_ft = 0;
    int mw_ge_mt = 0;
    int mw_osh_ft = 0;
    int mw_osh_mt = 0;
    int mw_cl_ft = 0;
    int mw_cl_mt = 0;
    int j = 1;
    while(rs.next())                    // For Cellular/PCS
    System.out.println("\n\nCellular/PCS Record #" + i);
    cl_seqnum = rs.getInt("cla_seqnum");
    System.out.println("cla_seqnum =" + cl_seqnum);
    if (rs.getString("str_leased") != null) {
    leased = rs.getString("str_leased");
    } else {
    leased = "";
         StringTokenizer st = new StringTokenizer(leased, "/");
    while(st.hasMoreTokens()) {
         ownership = st.nextToken();
         str_code = st.nextToken();
    if (rs.getString("nad27_lat") != null) {
    cl_nad27_lat = valueOf(rs.getString("nad27_lat"));
    } else {
    cl_nad27_lat = "";
         System.out.println("cl_nad27_lat = " + cl_nad27_lat);
    if (rs.getString("nad27_lon") != null) {
    cl_nad27_lon = valueOf(rs.getString("nad27_lon"));
    } else {
    cl_nad27_lon = "";
    System.out.println("cl_nad27_lon = " + cl_nad27_lon);
    if (rs.getString("nad83_lat") != null) {
    cl_nad83_lat = valueOf(rs.getString("nad83_lat"));
    } else {
    cl_nad83_lat = "";
    System.out.println("cl_nad83_lat = " + cl_nad83_lat);
    if (rs.getString("nad83_lon") != null) {
    cl_nad83_lon = valueOf(rs.getString("nad83_lon"));
    } else {
    cl_nad83_lon = "";
    System.out.println("cl_nad83_lon = " + cl_nad83_lon);
    cl_ge_mt = (int)feetToMeter(rs.getInt("ge_ft"));
    System.out.println("&&&&&&&&&&&&&&&&&&&cl_ge_mt = " + cl_ge_mt);
    cl_sh_mt = (int)feetToMeter(rs.getInt("sh_ft"));
    System.out.println("&&&&&&&&&&&&&&&&&&&cl_sh_mt = " + cl_sh_mt);
    cl_osh_mt = (int)feetToMeter(rs.getInt("osh_ft"));
    System.out.println("&&&&&&&&&&&&&&&&&&&cl_osh_mt = " + cl_osh_mt);
    cl_ov_faa_approv_mt = (int)feetToMeter(rs.getInt("ov_faa_approv_ft"));
    System.out.println("&&&&&&&&&&&&&&&&&&&cl_ov_faa_approv_mt = " + cl_ov_faa_approv_mt);
    cl_ant_tip_mt = (int)feetToMeter(rs.getInt("ant_tip_ft"));
    System.out.println("&&&&&&&&&&&&&&&&&&&cl_ant_tip_mt = " + cl_ant_tip_mt);
    cl_ant_ctr_line_mt = (int)feetToMeter(rs.getInt("ant_ctr_line_ft"));
    System.out.println("&&&&&&&&&&&&&&&&&&&cl_ant_ctr_line_mt = " + cl_ant_ctr_line_mt);
         // update NAD27 and NAD83 data in CL_ANTENNA table
    ps = con.prepareStatement("UPDATE cl_antenna_base SET str_leased = ?, structure_code = ?, nad27_lat = ?, nad27_lon =?, nad83_lat = ?, nad83_lon = ?, ge_mt = ?, sh_mt = ?, osh_mt = ?, ov_faa_approv_mt = ?, ant_tip_mt = ?, ant_ctr_line_mt = ? WHERE cla_seqnum = " + cl_seqnum);
    ps.setString(1, ownership);
    ps.setString(2, str_code);
    ps.setString(3, cl_nad27_lat);
    ps.setString(4, cl_nad27_lon);
    ps.setString(5, cl_nad83_lat);
    ps.setString(6, cl_nad83_lon);
    ps.setInt(7, cl_ge_mt);
    ps.setInt(8, cl_sh_mt);
    ps.setInt(9, cl_osh_mt);
    ps.setInt(10, cl_ov_faa_approv_mt);
    ps.setInt(11, cl_ant_tip_mt);
    ps.setInt(12, cl_ant_ctr_line_mt);
         ps.executeUpdate();          
         i++;
    } // end of while
    while(rs1.next())                    // For Microwave
    System.out.println("\n\nMicrowave Record #" + j);
    mw_seqnum = rs1.getInt("mwa_seqnum");
    System.out.println("mw_seqnum =" + mw_seqnum);
    if (rs1.getString("nad27_lat") != null) {
    mw_nad27_lat = valueOf(rs1.getString("nad27_lat"));
    } else {
    mw_nad27_lat = "";
    System.out.println("mw_nad27_lat = " + mw_nad27_lat);
    if (rs1.getString("nad27_lon") != null) {
    mw_nad27_lon = valueOf(rs1.getString("nad27_lon"));
    } else {
    mw_nad27_lon = "";
    System.out.println("mw_nad27_lon = " + mw_nad27_lon);
    if (rs1.getString("nad83_lat") != null) {
    mw_nad83_lat = valueOf(rs1.getString("nad83_lat"));
    } else {
    mw_nad83_lat = "";
    System.out.println("mw_nad83_lat = " + mw_nad83_lat);
    if (rs1.getString("nad83_lon") != null) {
    mw_nad83_lon = valueOf(rs1.getString("nad83_lon"));
    } else {
    mw_nad83_lon = "";
    System.out.println("mw_nad83_lon = " + mw_nad83_lon);
    mw_ge_mt = (int)feetToMeter(rs1.getInt("ge_ft"));
    System.out.println("&&&&&&&&&&&&&&&&&&&mw_ge_mt = " + mw_ge_mt);
    mw_osh_mt = (int)feetToMeter(rs1.getInt("osh_ft"));
    System.out.println("&&&&&&&&&&&&&&&&&&&mw_osh_mt = " + mw_osh_mt);
    mw_cl_mt = (int)feetToMeter(rs1.getInt("cl_ft"));
    System.out.println("&&&&&&&&&&&&&&&&&&&mw_cl_mt = " + mw_cl_mt);
    // update NAD27 and NAD83 data in MW_ANTENNA table
    ps1 = con.prepareStatement("UPDATE mw_antenna_base SET nad27_lat = ?, nad27_lon =?, nad83_lat = ?, nad83_lon = ?, ge_mt = ?, osh_mt = ?, cl_mt = ? WHERE mwa_seqnum = " + mw_seqnum);
    ps1.setString(1, mw_nad27_lat);
    ps1.setString(2, mw_nad27_lon);
    ps1.setString(3, mw_nad83_lat);
    ps1.setString(4, mw_nad83_lon);
    ps1.setInt(5, mw_ge_mt);
    ps1.setInt(6, mw_osh_mt);
    ps1.setInt(7, mw_cl_mt);
    ps1.executeUpdate();
    j++;
    } // end of while
    } catch(SQLException se) {
         System.out.println("SQL Exc" + se.getMessage());
    se.printStackTrace();
    } catch(Exception e) {
    System.out.println(" Exc" + e.getMessage());
    e.printStackTrace();
    finally
              try
                   rs.close();
                   stmt.close();
                   dbConn.freeConnection("system", conn);
                   conn.close();
              } catch (SQLException e)
    } // end of doConvert
    public static void main(String args[]) {
    Format_BaseTable old_nad = new Format_BaseTable();
    old_nad.doConvert();
    } // end of class

  • Why do I get a class conflict between the Prepare SQL.vi and the Get Column Name.vi with the SQL Toolkit compatibility vis from the Database Connectivity Toolkit?

    I have done extensive programming with the SQL Toolkit with LabVIEW versions through 6.1. My customer now wants to upgrade to Windows 7, so I am trying to upgrade to LabVIEW 2009 (my latest purchased version) using the Database Connectivity Toolkit, and the SQL Toolkit Compatibility vis. Everything seemed to be going okay with the higher level SQL operations, but I ran into trouble with the Get Column Name.vi. 
    The pictures below show the problem. The original SQL Toolkit connected the Prepare SQL.vi with the Get Column Name.vi with a cluster of two references, one for connection, and one for sql. The new compatibility vis have a class conflict in the wire because the Prepare SQL.vi contains a cluster with connection, and command references, but the Get Column Name.vi expects a cluster with connection and recordset references. 
    How do I resolve this conflict?
    Thank You.
    Dan

    I've never worked with the old version of the toolkit, so I don't know how it did things, but looking inside the SQL prep VI, it only generates a command, and the the column name VI wants a recordset. I'm not super familiar with all the internals of ADO, but my understanding is that is standard - you only have the columns after you execute the command and get the recordset back. What you can apparently do here is insert the Execute Prepared SQL VI in the middle and that will return what you need.
    I'm not sure why it worked before. Maybe the execute was hidden inside the prep VI or maybe you can get the column names out of the command object before execution. In general, I would recommend considering switching to the newer VIs.
    Try to take over the world!

  • Multiple DataBase Connection in a Single Form

    hi all
    Is it Possible to have Multiple Database Connection With a Single Form
    Block a : Retriving data from a database Service a/Schema A.
    Block b : Retriving data from a Remote Database Service b / Schema B.
    If yes how to do this.
    regards
    jai
    email:[email protected]

    Sure you can access a database this way,
    but can you base a block on this database connect? No you can't.
    Frank

  • Can i use single database connection in a hole java application?

    can i use single database connection in a hole java application?.I have so many forms to use database connection.

    Theoretically you can. Not only theoretically. I've seen lots of application which only uses one database connection (they were using, oracle or mysql)
    The first reply given here assumed that the answer to
    your question depends only on the design of your
    application. That is not true.Yes it's true. Nothing in the original questions says that you aren't allowed to open or close the single connection that you have. It's looks more like the OP is interested in sharing a connection (i.e having a singleton or a connection pool with only one connection)
    It does also depend on the behaviour of the database
    in the background.
    Most databases have a time out for connections that
    are idle Not a problem. Most implementations of connection pools and applications which keeps a connection open have a timer which calls e.g. select * from dual (if you are using oracle) when the connection has been idle for X minutes.
    (some, like db2 on z/OS, even cancel
    connections, that are not idle, if they are open a
    certain amount of time or have reached a given limit
    of cpu seconds.)You would also have that problem if you had a connection pool with several connections.
    In essence: If you have no control over the time
    your application runs (and therefore your connection
    is open) or over type or the configuration of the
    database you are accessing, you can't do it.See above.
    The closest thing to what you want would be using
    PooledConnections, iif those are supported for the
    database you want to access.Not true.
    Kaj

  • Connecting to database in a thread class

    HI,
    I am have a problem when trying to get a conneciton to a database. I am trying to create the connection in a class that extends Thread.
    Everythign else is set up correctly, i have ran the same code from the main class of my project and it works fine, the problem occurs when I try to get the connection from the class spawned by the main class.
    The exception thrown is an SQL exception: No suitable driver found, however the driver was loaded previously (no class not found exception was thrown when loading).
    The only reason I can think of that coudl be causing a problem is the fact the class creating the connection extends thread and runs in the run method i.e. a different thread.
    Does anybody know of any issues regarding threads and JDBC?
    NOTE: I and using the COM.ibm.db2.jdbc.net.DB2Driver for connecting to DB2.
    Cheers :)

    Here is the output
    Driver loaded
    Authorising for: test - testpass
    Protocol connecting to database
    Exception in Protocol: java.sql.SQLException: No suitable driver
    java.sql.SQLException: No suitable driver
         at java.sql.DriverManager.getConnection(DriverManager.java:532)
         at java.sql.DriverManager.getConnection(DriverManager.java:171)
         at baeauthserver.AuthProtocol.getPMConnection(AuthProtocol.java:66)
         at baeauthserver.AuthServerThread.run(AuthServerThread.java:38)The program is a server daemon or service that listens for connections from a client. On connection the server spawns a "work" thread to deal with authorising the user and creating a database connection. I can make a connection in the main server class (i.e. the main thread) but as soon as I move this to the "work" class it seems to lose the driver.
    I've just done some more tests and I can't even grab the driver as a driver object on the work thread so it's not just the getConnection method.
    I'm initialising the driver in a static block in the main server program. I've moved it around to various constructors on both the main class and the work class to no avail.
    It has me stumped so far :p
    Thanks for the input though :)

  • How to get database connection in common java class

    hi friendz,
    plz help me...
    I am using JDEV 11.1.2.2.0 version.
    my problem is I'm writing common java class which can reuse any application.
    in this case when im create database connection like this,
    String username = "a";
    String password = "b";
    String thinConn = "jdbc:oracle:thin:@IP:1521:database";
    DriverManager.registerDriver(new OracleDriver());
    Connection conn =
    DriverManager.getConnection(thinConn, username, password);
    conn.setAutoCommit(false);
    return conn;
    but this statement not working in java class.its working only backing bean.
    import oracle.jdbc.OracleDriver;
    DriverManager.registerDriver(new OracleDriver());
    how can i do that??
    hope your help
    -Harsh-

    What is the error message in Java class?
    With JDBC 4.0 driver the DriverManager class has added support for the Java SE Service Provider mechanism to the getConnection() and getDrivers() methods using which JDBC drivers may be loaded automatically. The following Class.forName() method is not required to be invoked.
    Class.forName(“oracle.jdbc.OracleDriver”);
    Only the following is required to obtain a connection.
    String url="jdbc:oracle:thin:@localhost:1521:ORCL";
    Connection connection = DriverManager.getConnection(url,"oe", "pw");

  • Database connection pool to stand alone java class

    Hi all,
    I would like to know the best way to use a database connection pool with a stand alone java class.
    In my web applications I usually use JDBC Data Source version 5 to connect to my database. In this case, I connect to an Oracle database. But in this scene, I've a WebSphere Application Server to provide this connection pool. But for stand alone applications, I don't know how to do because I don't have a Application server to run on.
    Can enyone help me with this beginner question?
    Best regards.

    I tried to find the pool class I created but it must be on another CD. Anyway, you can easily create a number of connections and place them on a stack (your own or java's). When you need one, pop it off. When you are finished, push it back.
    Good luck.

  • Java database connection method class for review

    Can you guys tell me any specific coding standard has to be followed here(i guess i need not hard code the pwd's)
    import java.sql.*;
    public class DBLocator {
         * Obtains and returns a connection to database
         * @return database connection
         public static Connection getConnection() {
         Connection con = null;
         try {
              Class.forName("com.informix.jdbc.IfxDriver");
              String url = "jdbc:informix-sqli://151.140.160.201:1527/ssde_db:INFORMIXSERVER=ssde_infx";
         con = DriverManager.getConnection(url,"haha06","123123");
    } catch (ClassNotFoundException e) {
                   System.out.println("Driver not found");
              } catch (SQLException e) {
                   System.out.println("SQL exception");
                   e.printStackTrace();
              return con; // returns connection
    }

    Can you guys tell me any specific coding standard has
    to be followed here(i guess i need not hard code the
    pwd's)More than just the passwords. Why are the driver class and URL hard-coded?
    I wouldn't use this class. It's not very useful as written. It's a poor abstraction for one. There's lots of other useful things that you could include, like methods for closing and rolling back a connection, closing a statement and result set. You don't log any exceptions or messages. You preclude the use of a connection pool managed by an Java EE app server.
    %

  • Packaging a Database Connection Class

    Hi,
    I am trying to create a database connection class, which allows me to establish a database connection and subsequently uses this connection to query the database.
    The code for the package is as follows:
    package com.mycom.javaloader;
    import java.io.*;
    import java.sql.*;
    import oracle.jdbc.driver.*;
    import com.mycom.javaloader.*;
    public class DatabaseConnection
    // Database connection objects
    private Connection DatabaseConnection;
    private Statement DatabaseStatement;
    private String ConnectionString;
    // Object constructor
    public DatabaseConnection (String HostName, String DatabasePort, String DatabaseName) throws SQLException, IOException
    ConnectionString = "jdbc:oracle:thin:@" + HostName + ":" + DatabasePort + ":" + DatabaseName;
    public boolean ConnectDatabase () throws SQLException, IOException
    try
    DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver());
    DatabaseConnection = DriverManager.getConnection (ConnectionString, "psicpk", "psicpk");
    DatabaseStatement = DatabaseConnection.createStatement ();
    System.out.println ("Database connection OK");
    return true;
    catch (SQLException e)
    System.out.println ("Database connection failed");
    return false;
    public static void main (String args[]) throws SQLException, IOException
    CustomFile LogFile = new CustomFile ("LogFile.txt", "Output");
    DatabaseConnection PSIConnection = new DatabaseConnection ("10.80.45.93", "1521", "psicpk");
    PSIConnection.ConnectDatabase (LogFile);
    LogFile.CloseFile();
    The odd thing is, when I compile the above as a program (by removing the package statement), it works fine. But, when I compile it as a package and instantiate the class in another program, I get the following error:
    Exception in thread "main" java.lang.NoClassDefFoundError: oracle/jdbc/driver/OracleDriver
    at com.mycom.javaloader.DatabaseConnection.ConnectDatabase(Datab
    aseConnection.java:35)
    at TestPackage.main(TestPackage.java:35)
    I didn't think it is any problem with my CLASSPATH setting, as the program runs well on its own.
    Is there any code I need to change when accessing JDBC connections in a package?
    Please help.
    Thanks and regards,
    SiowLing

    No, you don't need to put all the required classes in the same directory. Just include them in the classpath and it should work.
    You can check whether you required classes are in the path or not, as follows,
    commandPrompt:\>javap <full.path.ClassNameofTheClasses12.jar> <enter>
    this should show you all the public methods, variables etc. if the Class is in the path, otherwise "Class /<full.path.ClassNameofTheClasses12.jar>' not found" will be displayed.
    Regards,
    Ketan

  • Parallel database connection​s and single query between databases

    Hi, I am looking to execute this SQL query between 2 different databases to update a local database based on data selected from a remote one.
    e.g.:
    - Local database name: db1
    - local database schema: dbo
    - local database table1
    - remote database name: db2
    - remote database schema: dbo
    - Remote database table: table2
    - Query: "SELECT * FROM db2.dbo.table2 WHERE NOT EXISTS(SELECT * FROM db1.dbo.table1)" <- This gets e the record set i would need to insert, and I already have a vi to do that kinda thing.
    How do I go about this?
    Thanks,
    Mohamed

    Mohamed,
    There is a VI in the Database Connectivity Toolkit that allows you to execute SQL queries:  DB Tools Execute Query.
    http://zone.ni.com/reference/en-XX/help/370016E-01​/lvdatabase/db_tools_execute_query/
    Is this what you are looking for?
    Drew T.
    NIC AE Specialist

  • How to add multiple databases for a single frontend

    We have a project based on distributed databases and we have to workout on .Net framework.I want to know some information of connecting multiple databases for a single frontend and how can we access them.
    If so we have connected 2 databases for a single frontend in future if I want add one more database to it how it will be possible to do it without disturbing the current connectivity.
    Please help me in resolving this problem.
    Thanks......

    hi,
    what do you mean by connecting 2 databases? can you explain further?
    using entityframework you can connect to different databases
    public class CustomerContext : DbContext
    public ReportContext()
    : base("DefaultConnection")
    public DbSet<Customers> Customers { get; set; }
    and your connectionstring (config file)
    <connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=D:\\Database\Project.mdf;Integrated Security=True" providerName="System.Data.SqlClient" />
    </connectionStrings>
    you can add more connection strings on it.
    https://msdn.microsoft.com/en-us/library/vstudio/cc716756(v=vs.100).aspx
    https://msdn.microsoft.com/en-us/library/ms254978(v=vs.110).aspx
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

Maybe you are looking for

  • ITunes says my computer is not authorized but when I sign in it says it is...but won't play purchaces

    I am using a laptop from my home family of computers but when I try to play a movie I have transferred from my desktop, first iTunes says I am not authorized to play this movie.  Then when I sign in to authorize the movie, it says that I am authorize

  • Make Screen field non editable

    Hi All, We have following requirement in our project: When entering infotype 1 in any action a check should be made to set default values in Work Contract. If Employee Group =u2019 1u2019, Work Contract u2018ZFu2019 should be set and this value must

  • Unrecognized printer

    I am trying to connect an HP6480 printer. I have installed the sw, but the computer says there is no driver installed. The software does show up in my applications folder. I uninstalled and downloaded the driver from the HP website to see if this wou

  • Not able to create an entry in oc4j-ra.xml ,

    Please ignore this Edited by: user5527930 on Oct 19, 2009 1:59 AM

  • How to do sizing in XI ..and how do SAP license for this

    Hi, I am working on a Impl proj..customer wants to know the size of the message and is their any method to calculate the sizing process.. and if i need to calculate the size of the message from..where i need to take that.. regards rupash