如何更新表中的列值?

问题描述 投票:0回答: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); 
        }}
    

    这段代码有什么问题?它使用相同的最后一个值更新所有列值。

java
3个回答
0
投票

更新方法后,您应该再次编写列表方法。


0
投票

尝试举这个例子:

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

0
投票

这很明显:

dbcon.updateRows(...)
调用更新方法并且该方法完成这项工作。

但正如 Erhan 所说,你看不到结果,因为你实际上没有使用更新的记录,例如向他们展示等等。至少,如果操作完成,您可以在数据库级别检查它。

© www.soinside.com 2019 - 2024. All rights reserved.