Olá, eu estou tento problemas na atualização das tabelas ProductsShop e ProductsOnline, elas são para um programa que atualiza os produtos de uma loja vendidos na internet com os vendidos na loja.
As tabelas são feitas no Access.
Mas os produtos são atualizados aleatoriamente. Eu uso o loop while(resultSet.next()) parece que algo ali está errado.
Ficaria muito agradecido pela ajuda de vocês.
O código é:
import java.sql.*;
public class Synchronizer{
private Connection connectionLocal;
private Connection connectionOnline;
public Synchronizer( Connection c, Connection d )
{
connectionLocal = c;
connectionOnline = d;
}
public void DoSync()
{
try
{
Statement statementLocal = connectionLocal.createStatement();
Statement statementLocal2 = connectionLocal.createStatement();
Statement statementOnline = connectionOnline.createStatement();
String query = "SELECT codProduct, amount, synchronized FROM ProductsShop WHERE synchronized = false";
System.out.println("\nSending query: " + connectionLocal.nativeSQL( query ) + "\n" );
ResultSet resultSet = statementLocal.executeQuery(query);
int codPro;
int amo;
while(resultSet.next()){
codPro= resultSet.getInt("codProduct");
amo = resultSet.getInt("amount");
query = "UPDATE ProductsOnline SET amount1= " + amo +
" WHERE codProduct1=" + codPro;
statementOnline.executeUpdate( query );
System.out.println("amount updated " + query);
query = "UPDATE ProductsShop SET synchronized= true"+
" WHERE codProduct = " +codPro;
statementLocal2.executeUpdate(query);
System.out.println("Product: "+codPro+" synchronized");
}
}
catch ( SQLException sqlex )
{
sqlex.printStackTrace();
System.err.println(sqlex.toString());
}
}
}
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.*;
public class SychronizerTest {
/**
* @param args
*/
public static void main(String[] args) {
String urlLocal = "jdbc:odbc:LocalShop";
String urlOnline = "jdbc:odbc:OnlineShop";
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection connectionLocal = DriverManager.getConnection(urlLocal, "", "");
Connection conncetionOnline = DriverManager.getConnection(urlOnline, "", "");
Synchronizer sync = new Synchronizer(connectionLocal, conncetionOnline);
sync.DoSync();
}
catch(ClassNotFoundException cnfex){
System.err.println("Failed to load JDBC/ODBC driver.");
cnfex.printStackTrace();
System.exit(1);
}
catch(SQLException sqlex){
System.err.println("Unable to connect");
sqlex.printStackTrace();
}
}
}