Не удается выполнить обновление в MS ACCESS 2007 с использованием подготовленного STMT с использованием JDBC - PullRequest
0 голосов
/ 30 марта 2011

Я пишу код для обновления определенного столбца в 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.

1 Ответ

0 голосов
/ 30 марта 2011

попробуйте UPDATE Dummy set TRANSLATION='GER' & TRANSLATION where READABLEKEY=12297 чтобы обновить существующее значение строкой

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...