After 10 Inserts old values are inserted even though variable has updated value. is it Driver Problem
Posted by: Sudhakar Vankamamidi
Date: January 08, 2005 03:17PM

Hi,

In the below code show in between the coment, is inserting old value DATA_ID_F even though it is updated properly. But when i incremented i sequentially and used in place of DATA_ID_F, inserts are happening with the correct i value. but when DATA_ID_F is used i am getting old values after 10 sucessful inserts. i.e. after 10th insert the value of DATA_ID_F is comming again again even though it is updated.

Please suggest any solutions.

Thanks
Sudhakar

rs = stmt.executeQuery("SELECT DATA_ID, TRAINING_DATA FROM TRAINING_SET WHERE TRAINING_SET_ID=" + TRAINING_SET_ID + " ORDER BY DATA_DATE_TIME ASC");
rs = stmt.getResultSet();
int i=0,j=0;
while(rs.next()) {
DATA_ID_F = 0;
DATA_ID_F = rs.getDouble(1);
if (DATA_ID_F<=10) i++;
else j++;
TRAINING_DATA = rs.getFloat(2);
System.out.println("DATA_ID_F1 " + DATA_ID_F);
CONST_R = fCompSeedAdd + TRAINING_DATA;
conn2 = util.getDBConnection();
Statement insertStmt2 = conn2.createStatement();
/*****************************************************************/
insertStmt2.executeUpdate("INSERT INTO CONDITION (DATA_ID_F, CONDITION_SYMBOL2, CONST_R) VALUES (" + DATA_ID_F + ", '" + CONDITION_SYMBOL2 + "', " + CONST_R + ")", Statement.RETURN_GENERATED_KEYS);
/*****************************************************************/

System.out.println("first condition insert done");
double CONDITION_ID_F = 0;
int AND_OR = 1;
ResultSet rsID = insertStmt2.getGeneratedKeys();
if (rsID.next()) {
CONDITION_ID_F = rsID.getDouble(1);
System.out.println("CONDITION_ID_F " + CONDITION_ID_F);
} else {
// throw an exception from here
System.out.println("rsID.next() failed.");
}
rsID.close();
rsID = null;

================================================================

Completete Code:

import java.sql.*;

public class populateConditionSet {
public static void main(String arg[]) {
//java populateConditionSet <TRAINING_SET_ID> <fCompSeed>
// Example: java populateConditionSet 1 10

float fCompSeedAdd = 0;
double DATA_ID_F = 0;
String CONDITION_SYMBOL2 = ">=";
float CONST_R = 0;
double TRAINING_SET_ID = 0;
float TRAINING_DATA = 0;
Connection conn = null, conn2=null;
Statement stmt = null;
Statement insertStmt = null;
//Statement condSetStmt = null;
ResultSet rs = null;

fCompSeedAdd = Float.parseFloat(arg[1]);
TRAINING_SET_ID = Double.parseDouble(arg[0]);
Utilities util = new Utilities();
Utilities util2 = new Utilities();

try {
conn = util2.getDBConnection();
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT DATA_ID, TRAINING_DATA FROM TRAINING_SET WHERE TRAINING_SET_ID=" + TRAINING_SET_ID + " ORDER BY DATA_DATE_TIME ASC");
rs = stmt.getResultSet();
int i=0,j=0;
while(rs.next()) {
DATA_ID_F = 0;
DATA_ID_F = rs.getDouble(1);
if (DATA_ID_F<=10) i++;
else j++;
TRAINING_DATA = rs.getFloat(2);
System.out.println("DATA_ID_F1 " + DATA_ID_F);
CONST_R = fCompSeedAdd + TRAINING_DATA;
conn2 = util.getDBConnection();
Statement insertStmt2 = conn2.createStatement();
insertStmt2.executeUpdate("INSERT INTO CONDITION (DATA_ID_F, CONDITION_SYMBOL2, CONST_R) VALUES (" + i + ", '" + CONDITION_SYMBOL2 + "', " + CONST_R + ")", Statement.RETURN_GENERATED_KEYS);
System.out.println("first condition insert done");
double CONDITION_ID_F = 0;
int AND_OR = 1;
ResultSet rsID = insertStmt2.getGeneratedKeys();
if (rsID.next()) {
CONDITION_ID_F = rsID.getDouble(1);
System.out.println("CONDITION_ID_F " + CONDITION_ID_F);
} else {
// throw an exception from here
System.out.println("rsID.next() failed.");
}
rsID.close();
rsID = null;

System.out.println("before fetching second training set row data");
double CONDITION_ID_F2 = 0;
int MUTANT = 0;
if (rs.next()) {
DATA_ID_F = 0;
DATA_ID_F = rs.getDouble(1);
if (DATA_ID_F==10) i++;
else j++;
System.out.println("DATA_ID_F2 " + DATA_ID_F);
TRAINING_DATA = rs.getFloat(2);
if (CONST_R < fCompSeedAdd + TRAINING_DATA) {
CONST_R = fCompSeedAdd + TRAINING_DATA;
}
insertStmt2.close();
insertStmt2 = null;
conn2.close();
conn2 = null;
System.out.println("Re-connection");
conn2 = util.getDBConnection();
if (conn2 != null) System.out.println("Re-connection successful");
insertStmt = conn2.createStatement();
System.out.println("Re-statementcreation successful");
insertStmt.execute("INSERT INTO CONDITION (DATA_ID_F, CONDITION_SYMBOL2, CONST_R) VALUES (" + j + ", '" + CONDITION_SYMBOL2 + "', " + CONST_R + ")");
System.out.println("second condition insert done");
rsID = insertStmt.getGeneratedKeys();
if (rsID.next()) {
CONDITION_ID_F2 = rsID.getDouble(1);
System.out.println("CONDITION_ID_F2 " + CONDITION_ID_F2);
} else {
// throw an exception from here
System.out.println("rsID.next() failed.");
}
rsID.close();
rsID = null;
insertStmt.close();
insertStmt = null;
insertStmt = conn.createStatement();
insertStmt.execute("INSERT INTO CONDITION_SET (CONDITION_ID_F, AND_OR, CONDITION_ID_F_ARG, MUTANT) VALUES (" + CONDITION_ID_F + ", '" + AND_OR + "', " + CONDITION_ID_F2 + ", " + MUTANT + ")");

} else {
// throw an exception from here
System.out.println("rs.next() failed. Seems end of training set data");
}
System.out.println("getting second training set row data");

if (rs.next()) {
DATA_ID_F = 0;
DATA_ID_F = rs.getDouble(1);
if (DATA_ID_F==10) i++;
else j++;
System.out.println("DATA_ID_F3 " + DATA_ID_F);
TRAINING_DATA = rs.getFloat(2);
if (CONST_R < fCompSeedAdd + TRAINING_DATA) {
CONST_R = fCompSeedAdd + TRAINING_DATA;
}
insertStmt.close();
insertStmt = null;
conn2.close();
conn2 = null;
conn2 = util.getDBConnection();
insertStmt = conn2.createStatement();
insertStmt.execute("INSERT INTO CONDITION (DATA_ID_F, CONDITION_SYMBOL2, CONST_R) VALUES (" + DATA_ID_F + ", '" + CONDITION_SYMBOL2 + "', " + CONST_R + ")");
double CONDITION_ID_F3 = 0;
rsID = insertStmt.getGeneratedKeys();
if (rsID.next()) {
CONDITION_ID_F3 = rsID.getDouble(1);
System.out.println("CONDITION_ID_F3 " + CONDITION_ID_F3);
} else {
// throw an exception from here
System.out.println("rsID.next() failed.");
}
rsID.close();
rsID = null;
insertStmt.close();
insertStmt = null;
insertStmt = conn.createStatement();
insertStmt.execute("INSERT INTO CONDITION_SET (CONDITION_ID_F, AND_OR, CONDITION_ID_F_ARG, MUTANT) VALUES (" + CONDITION_ID_F2 + ", '" + AND_OR + "', " + CONDITION_ID_F3 + ", " + MUTANT + ")");
} else {
// throw an exception from here
System.out.println("rs.next() failed. Seems end of Training set data");
}

}

System.out.println("Job Done!!!");
System.out.println("i = " + i + " " + j);
rs.close();
stmt.close();
insertStmt.close();
rs=null;
stmt=null;
}
catch (Exception ex) {
// handle the error
System.out.println(ex.toString());
}
}
}

Options: ReplyQuote


Subject
Written By
Posted
After 10 Inserts old values are inserted even though variable has updated value. is it Driver Problem
January 08, 2005 03:17PM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.