java
  • mysql
  • sql
  • swing
  • 2012-11-03 79 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

    相关问题