java
  • mysql
  • sql
  • swing
  • 2012-11-03 82 views 0 likes 
    0

    我有一個使用MySql和Java JDBC的程序。Java,MySQL更新表使用ID(主鍵)

    我的問題是:

    我有ID因爲只有1列的表(TEMP),並與用戶的個人細節,如ID,姓名,年齡等其他表..

    我試着檢索ID from TEMP表格,並在USER表中更新未填寫的信息,如姓名,年齡,地址等。

    這是我寫的查詢:

    update m_auth_info 
    set name = '"+name+"', 
        addr = '"+addr+"', 
        email = '"+email+"', 
        affiliation = '"+affil+"', 
        status = '"+1+"' 
    where a_id = '"+ResultSet+"'"; 
    

    ,當我getIdMethod檢索ID爲ResultSetTEMP表。我無法更新USER TABLE。

    但它的工作,如果我直接給ID ..例如。

    update m_auth_info 
    set name = '"+name+"', 
        addr = '"+addr+"', 
        email = '"+email+"', 
        affiliation = '"+affil+"', 
        status = '"+1+"' 
    where a_id = '"+8989+"'"; 
    

    請告訴我,如果我必須寫在我的getIdMethod寫哪一步,使病人獲得的價值爲ResultSet

    +0

    哪裏'getIdMethod'方法您正在使用?它是一個存儲過程嗎? –

    回答

    1
    int id=0; 
    String sql = "Select ID from Temp"; 
    ResultSet rs = statement.executeQuery(sql); 
    
    while(rs.next(){ 
        id = rs.getInt(1); 
        /* pass your update query here and use like this it should work for you 
        update m_auth_info set name = '"+name+"', 
        addr = '"+addr+"', email = '"+email+"', 
        affiliation = '"+affil+"', status = '"+1+"' where a_id = '"+id+"'";*/ 
    } 
    
    +0

    謝謝,它的工作。 – user1677685

    +0

    不客氣:) – gks

    0

    我相信你要做的是從ResultSet得到結果,你可以用rs.getLong(0),你的ResultSet variable做些什麼。 getYourIdType0)或columnName

    +0

    進出口我剛剛在這裏給我的更新查詢。我的getIdMethod有這些語句public void getIdMehod(String sql){ResultSet = stmt.executeQuery(sql); },我傳遞了這條語句 - String sql =「select * from TEMP」;此TEMP表將只有一個ID是8989. – user1677685

    相關問題