rcm9445
asked on
Reading a ResultStatement(Oracle Database) into an array and then returning it to method.
I have a program that uses the JDBC-ODBC bridge to read the firstName and lastName from and Oracle database, it saves the first and last names into a string and then saves each full_name into an array. However, when I return my array it saves the 1st two names as null in the array and only gets the last full_name correctly. The connection works fine, and it will even do a System.out.println of all the names fine, and while in the while(rs.next()) loop when I check to make sure the names got put in the array...they have. But, once I'm out of the loop to return my array...the 1st two names are gone. I also get 3 warnings...but..I don't think they are the cause of the problems,
Nov 15, 2003 8:00:51 PM java.util.prefs.WindowsPre ferences <init>
WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0
x80000002. Windows RegCreateKeyEx(...) returned error code 5.
Nov 15, 2003 8:00:51 PM java.util.prefs.WindowsPre ferences WindowsRegOpenKey1
WARNING: Trying to recreate Windows registry node Software\JavaSoft\Prefs at roo
t 0x80000002.
Nov 15, 2003 8:00:51 PM java.util.prefs.WindowsPre ferences openKey
WARNING: Could not open windows registry node Software\JavaSoft\Prefs at root 0x
80000002. Windows RegOpenKey(...) returned error code 2.
The method with the problem is (the username and password have been ommitted),
public static String[] loadConnectionandNames()
{
try
{ System.out.println("Right before trying to load the driver class...");
//String url = "jdbc:odbc:Oracle";
Class.forName("sun.jdbc.od bc.JdbcOdb cDriver");
System.out.println("Loaded the driver class!");
}
catch (ClassNotFoundException e)
{
System.out.println("Unable to load Driver Class");
return null;
}
try {
System.out.println("Right before trying to make connection");
Connection con = DriverManager.getConnectio n("jdbc:od bc:Oracle" , " ", " ");
System.out.println("Create d the connection...");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT lastName, firstName FROM CUSTOMER");
while(rs.next()) {
last_name = rs.getString("lastName");
System.out.println("Got last Name");
first_name = rs.getString("firstName");
System.out.println("Got first Name");
String cust_full_name = first_name + " " + last_name;
System.out.println("Custom ers names = " + cust_full_name);
full_name = new String[max_length];
full_name[t] = cust_full_name;
System.out.println("Custom ers names = " + full_name[t] + "??? " + t);
System.out.println("Fullna me value " + full_name[t]);
++t;
System.out.println("After t is added one = " + t); //return full_name;
}
for (int z=0; z<t; ++z)
{//This is where the 1st names are no longer in my array
System.out.println("final loop" + full_name[z] +"???"+t); } return full_name;
}
catch (SQLException se) {
System.out.println("A SQL Exception occurred." + se.getMessage());
se.printStackTrace(System. out);
System.out.println("Return ing null values for customers"); return null; }
Sorry for all the System.out.println's, I've been trying to fix this for awhile, If anyone could help
me it would be very much appreciated...Thanks! :)
Nov 15, 2003 8:00:51 PM java.util.prefs.WindowsPre
WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0
x80000002. Windows RegCreateKeyEx(...) returned error code 5.
Nov 15, 2003 8:00:51 PM java.util.prefs.WindowsPre
WARNING: Trying to recreate Windows registry node Software\JavaSoft\Prefs at roo
t 0x80000002.
Nov 15, 2003 8:00:51 PM java.util.prefs.WindowsPre
WARNING: Could not open windows registry node Software\JavaSoft\Prefs at root 0x
80000002. Windows RegOpenKey(...) returned error code 2.
The method with the problem is (the username and password have been ommitted),
public static String[] loadConnectionandNames()
{
try
{ System.out.println("Right before trying to load the driver class...");
//String url = "jdbc:odbc:Oracle";
Class.forName("sun.jdbc.od
System.out.println("Loaded
}
catch (ClassNotFoundException e)
{
System.out.println("Unable
return null;
}
try {
System.out.println("Right before trying to make connection");
Connection con = DriverManager.getConnectio
System.out.println("Create
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT lastName, firstName FROM CUSTOMER");
while(rs.next()) {
last_name = rs.getString("lastName");
System.out.println("Got last Name");
first_name = rs.getString("firstName");
System.out.println("Got first Name");
String cust_full_name = first_name + " " + last_name;
System.out.println("Custom
full_name = new String[max_length];
full_name[t] = cust_full_name;
System.out.println("Custom
System.out.println("Fullna
++t;
System.out.println("After t is added one = " + t); //return full_name;
}
for (int z=0; z<t; ++z)
{//This is where the 1st names are no longer in my array
System.out.println("final loop" + full_name[z] +"???"+t); } return full_name;
}
catch (SQLException se) {
System.out.println("A SQL Exception occurred." + se.getMessage());
se.printStackTrace(System.
System.out.println("Return
Sorry for all the System.out.println's, I've been trying to fix this for awhile, If anyone could help
me it would be very much appreciated...Thanks! :)
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Not sure on the warning, have never used the new prefs package.
Have a look at this link and see if it helps u:
http://mindprod.com/jgloss/preferences.html
Have a look at this link and see if it helps u:
http://mindprod.com/jgloss/preferences.html
ASKER
Well....I'm not using the prefs package either...I decided to import java.util to see if that would help ..and it didn't. It doesn't come up with the errors until my entire program is finished. I must just have something set up incorrectly in my java folders.
> I'm not using the prefs package either
Perhaps its a problem with your Java install.
Perhaps its a problem with your Java install.
ASKER
Yep...perhaps so...its on the school computer though so...not gonna mess with it :)
Thanks again for you help.
Thanks again for you help.
ASKER