Я пишу код для обновления определенного столбца в db доступа путем выполнения кода Java.
Вот что я сделал до сих пор.
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
{
}
}
}
}
Я знаю, что мы также можем использовать Подготовленное утверждение. Я даже пытался использовать это. Но я не знаю, как обновить все строки, используя подготовленный STMT. Я пытался использовать для цикла. Но какое должно быть условие? я имею в виду, я должен указать номер строки myslef? или я должен написать отдельный код для получения количества?
Пожалуйста, дайте мне знать, является ли мой вышеуказанный подход правильным или нет. Если НЕТ, пожалуйста, скажите мне цикл в подготовленном STMT.