【问题标题】:JDBC MySQL Editing/Updating a current Entry in the DatabaseJDBC MySQL 编辑/更新数据库中的当前条目
【发布时间】:2023-03-18 11:57:01
【问题描述】:

如何在 MySQL 中编辑某个数据条目?例如我有一个关于个人信息的表格,但我只想编辑名字表格,我可以这样做吗?

"Update Personal_Info
set first_name='"+getFirstName()+"' ,last_name = ?
where emp_id = 2011-01015" 

姓氏中的问号将保留其价值。我正在使用这种方法,因为我不想对所有内容进行硬编码。您在我的 UI 中看到,我将使用一个表单,用户将在该表单中选择是否只更新名字和姓氏。我想出了这个主意,因为这对我来说会更容易。但欢迎提出建议。

【问题讨论】:

    标签: java mysql database jdbc


    【解决方案1】:

    仅包括您要更新其值的那些列。假设如果你想更新 first_name 那么语句将是:

    String sql="Update Personal_Info set first_name=? where emp_id=?";
    PreparedStatement ps=conn.prepareStatement(sql);
    ps.setString(1,getFirstName()); // set parameter value for first_name
    ps.setString(2,"2011-01015");   //     parameter value for emp_id    
    ps.executeUpdate();
    ps.close();
    conn.close();
    

    编辑:

    String sql="Update Personal_Info set first_name=? where emp_id='2011-01015'";
    PreparedStatement ps=conn.prepareStatement(sql);
    ps.setString(1,getFirstName()); // set parameter value for first_name
    ps.executeUpdate();
    ps.close();
    conn.close();
    

    【讨论】:

    • @user962206 - 您可以使用变量或类似 getEmpid() 的东西。
    • 除此之外?我可以 setString(1,defaultvalueofthatfield);有没有类似的东西或保留它的当前价值??
    • 谢谢!很抱歉提供迟到的反馈,这仍然是去年,但确实有帮助!对不起。无论如何,非常感谢!
    【解决方案2】:

    是的,你可以这样做。 但是您应该考虑使用PreparedStatements 来省略您的应用中可能的SQL 注入。

    【讨论】:

    • 带问号的意思是我会保留姓氏的当前值
    • 那我该怎么做呢?有什么办法吗?
    猜你喜欢
    • 1970-01-01
    • 2017-12-04
    • 2017-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-10
    相关资源
    最近更新 更多