Null pointer exception when setting up a global oracle data source

Hi,

In the following code i am trying to create a global oracle connection. But I am getting a null pointer exception when setting the oracle url. Any ideas why, also what is the best practise of creating a global database connection which can be used in all parts of the code
public class CheckFirst {
  
 
 
// Set up Oracle Data Structures
 
public static OracleDataSource ods;
public static Connection conn; 
public static ResultSet rset;
public static Statement stmt;
 
//Set up Teradata Data Structures
 
 
 
public static void openOrclConn()
{
	try
    {	
	ods.setURL("jdbc:oracle:thin:@//alpha.beta.abc.com:1521/alpha");
	ods.setUser("abc123");
	ods.setPassword("abc123");		
	ods.getConnection();
	conn.setAutoCommit (false);
	stmt = conn.createStatement ();
    } catch (Exception e) {
        e.printStackTrace();
   }
}
 
public static void closeOrclConn()
{
	try
    {
	rset.close();
	stmt.close();
	conn.close();
    } catch (Exception e) {
        e.printStackTrace();
   }
}
 
 
public static void main (String args []) 
 
{
	
	openOrclConn();
	
}
 
}

Open in new window

anshumaEngineeringAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

sirtamCommented:
Hi.

Could you please post the error message?
0
anshumaEngineeringAuthor Commented:
java.lang.NullPointerException
      at CheckFirst.openOrclConn(CheckFirst.java:58)
      at CheckFirst.main(CheckFirst.java:87)

The line numbers can be off a little bit because I removed two three lines when I posted the code

Its happening in this line

      ods.setURL("jdbc:oracle:thin:@//bia.vip.ebay.com:1521/bia");


0
anshumaEngineeringAuthor Commented:
ok this is what i did and it seems to have fixed it

I added the line

ods = new OracleDataSource();  in the function

public static void openOrclConn()
0
Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

sirtamCommented:
Yes, you cannot open an object before making it.

When you are using object like this the variable will be there, but empty, therefore you will get an null pointer.

And a tip:
If possible I would try to declare the variables  ods, conn, rset and stmt as not static.
If you use static variables you say its only one (ever) object of it, and that can make problems later.
0
sirtamCommented:
But to make this work you'll have to make all the mothods (except main) not static too. Dont bother fixing it if it works.

An example how to write it:
public class CheckFirst {
  
 
 
// Set up Oracle Data Structures
 
public OracleDataSource ods;
public Connection conn; 
public ResultSet rset;
public Statement stmt;
 
//Set up Teradata Data Structures
 
 
 
public void openOrclConn()
{
        try
    {   
        ods = new OracleDataSource();
        ods.setURL("jdbc:oracle:thin:@//alpha.beta.abc.com:1521/alpha");
        ods.setUser("abc123");
        ods.setPassword("abc123");              
        ods.getConnection();
        conn.setAutoCommit (false);
        stmt = conn.createStatement ();
    } catch (Exception e) {
        e.printStackTrace();
   }
}
 
public void closeOrclConn()
{
        try
    {
        rset.close();
        stmt.close();
        conn.close();
    } catch (Exception e) {
        e.printStackTrace();
   }
}
 
 
public static void main (String args []) 
 
{
        
        openOrclConn();
        
}
 
}

Open in new window

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
anshumaEngineeringAuthor Commented:
Thanks alot for this
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Java

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.