2015-12-03 31 views
-3
  • 這段代碼有什麼問題?它在哪裏更新與最後一個相同的所有列值。如何更新表中的列值?

    public class dbconnection { 
    java.sql.Connection con; 
    java.sql.Statement st; 
    ResultSet rs; 
    public EncBean getConnection()throws SQLException{ 
    EncBean encBean1 = new EncBean(); 
    String v_url= "jdbc:oracle:thin:@192.168.2.138:1522:orcl2"; 
    String v_username= "scott"; 
    String v_password = "tiger"; 
    
        try 
        { 
    DriverManager.registerDriver(new oracle.jdbc.OracleDriver()); 
    con = DriverManager.getConnection(v_url,v_username,v_password); 
    System.out.println ("Connection to Oracle database was Established"); 
        } 
    
    
    catch (SQLException e) 
    { 
    e.printStackTrace(); 
    } 
    return encBean1; 
    } 
    
    public EncBean selectRows() 
    
    { 
    EncBean encBean2 = new EncBean(); 
    try 
        { 
    
        String SQLselect="select JOB_NAME from job"; 
        st=con.createStatement(); 
        rs=st.executeQuery(SQLselect); 
    
    while (rs.next()) { 
    
        encBean2.setName(rs.getString("JOB_NAME")); 
           } 
    
        } 
    catch (Exception ex) 
    { 
    ex.printStackTrace(); 
    } 
    
    return encBean2; 
    } 
    
    
    public void updateRows(String updatedname){ 
    
    try 
    { 
    Statement stmt = con.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_UPDATABLE); 
    
    ResultSet srs = stmt.executeQuery("select job_name from job "); 
    
        while (srs.next()) { 
    
        srs.updateString("job_name", updatedname); 
        srs.updateRow(); 
        con.commit();} 
        System.out.println("An existing user was updated successfully!");} 
        catch(SQLException err){ 
        System.out.println(err.getMessage()); 
        }}}  
    

    這是主要的

    public class mainenc { 
    
    public static void main(String[] args) throws Exception{ 
    dbconnection dbcon = new dbconnection(); 
    EncBean encbeancon= dbcon.getConnection(); 
    EncBean encBean5 = dbcon.selectRows(); 
    enc concatinputs = new enc(); 
    EncBean encBeanconcat = concatinputs.funconcat(encBean5.getName()); 
    EncBean encBean4 = concatinputs.inputencryption(encBeanconcat.getConcatenatedData()); 
    String vReserverbin= encBean4.getReversedBinary(); 
    String ascistring= concatinputs.convertBinaryStringToString(vReserverbin); 
        dbcon.updateRows(ascistring); 
        }} 
    

    什麼是這個代碼的問題?它在哪裏更新與最後一個相同的所有列值。

+1

第一個問題:你的縮進是瘋狂的。 – khelwood

+0

第二個問題:你的命名習慣很瘋狂。 – Alexander

回答

0

更新的方法後,你應該再次寫列表方法。

+0

PLZ你可以幫我嗎? –

+0

我將描述birefly.You連接數據庫並列出你的記錄。之後更新它們。到目前爲止沒有問題。現在你應該再次列出method.maybe write getConnection()結束更新方法。 – Erhan

+0

非常感謝您的幫助Erhan –

0

嘗試藉此例如:

UPDATE tableB 
SET tableB.value , tableA.value, tableB.value) 
WHERE tableA.name = 'Joe' 
0

這是一種顯而易見的:在更新方法dbcon.updateRows(...)調用和方法做這項工作。

但是正如Erhan所說,你不會看到結果,因爲你實際上沒有使用更新的記錄,例如,顯示他們等等。至少,如果操作完成,您可以在數據庫級別檢查它。

但我真的不喜歡您的評論:

PLZ你能爲我做到這一點?

你應該做你自己的任務,並在你需要幫助時尋求幫助。但不要指望別人去做你的同事。

+0

感謝您的回覆,但我嘗試了更多,然後我要求他做到這一點 –