/ / Nie można wykonać aktualizacji w MS ACCESS 2007 przy użyciu przygotowanego STMT przy użyciu jdbc - java, ms-access, jdbc

Nie można wykonać aktualizacji w MS ACCESS 2007 przy użyciu przygotowanego STMT przy użyciu jdbc - java, ms-access, jdbc

Piszę kod, aby zaktualizować określoną kolumnę w bazie danych dostępu, wykonując kod Java. Oto, co zrobiłem do tej pory.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.io.*;

public class Main
{

private static Connection getConnection() throws Exception{
String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
String url = "jdbc:odbc:repo3";
String username = "";
String password = "";
Class.forName(driver);
return DriverManager.getConnection(url, username, password);
}


public static void main(String[] args) throws Exception
{
Connection conn = getConnection();
Statement st = conn.createStatement();

ResultSet rs = st.executeQuery("SELECT READABLEKEY,OBJECTID,LOCALEID,REFTRANSLATION FROM Dummy where TRANSLATION =""");
int i=0;
try {
while(rs.next())
{
i++;
String Readable_Key=rs.getString("READABLEKEY");
String Object_Id=rs.getString("OBJECTID");
int Locale_Id=rs.getInt("LOCALEID");
//String RefTranslation=rs.getString("REFTRANSLATION");
System.out.println("here");
BufferedReader br = new BufferedReader(new InputStreamReader(rs.getAsciiStream("REFTRANSLATION")));
String RefTranslation = br.readLine();
br.close();


System.out.println("locale id is"+Locale_Id);

switch(Locale_Id)
{
case 12297:
String UpdtTranslation="UPDATE Dummy set TRANSLATION="GER"+RefTranslation+""WHERE LOCALEID="+Locale_Id+"";
System.out.println("update query is "+UpdtTranslation);
st.executeUpdate(UpdtTranslation);

int r=st.executeUpdate(UpdtTranslation);
System.out.println(r+"rows updated successfully!");

}

}
System.out.println("I is "+i);//to see no.of records.
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
try
{
st.close();
conn.close();
}
catch(Exception e)
{

}
finally
{

}
}

}

}

Wiem, że możemy również skorzystać z oświadczenia Prepared. Próbowałem nawet tego użyć. Ale nie wiem, jak zaktualizować wszystkie wiersze przy użyciu przygotowanego STMT. Próbowałem użyć pętli. Ale, jaki powinien być warunek? Mam na myśli, czy muszę określić liczbę wierszy myslef? Czy powinienem napisać osobny kod do liczenia? Daj mi znać, czy moje powyższe podejście jest prawidłowe, czy nie. Jeśli NIE, proszę powiedz mi o zapętleniu w przygotowanym STMT.

Odpowiedzi:

0 dla odpowiedzi № 1

próbować UPDATE Dummy set TRANSLATION="GER" & TRANSLATION where READABLEKEY=12297 zaktualizować istniejącą wartość za pomocą łańcucha