最新公告
  • 欢迎您光临码农资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!加入我们
  • 如何使用 JDBC 程序更新 ResultSet 的内容?

    如何使用 jdbc 程序更新 resultset 的内容?

    To update the contents of the ResultSet you need to create a statement by passing the ResultSet type updatable, as:

    //Creating a Statement object
    Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
    ResultSet.CONCUR_UPDATABLE);

    就像getXXX()和setXXX()方法一样,ResultSet接口还提供了updateXXX()方法来更新结果集中行的内容。

    这些方法接受表示要更新的行的索引或列标签的字符串值。

    请注意,如果您需要更新ResultSet的内容,表格应该有一个主键。

    示例

    假设我们有一个名为Employees的表,其中有5条记录,如下所示:

    +----+---------+--------+----------------+
    | Id | Name    | Salary | Location       |
    +----+---------+--------+----------------+
    |  1 | Amit    | 3000   | Hyderabad      |
    |  2 | Kalyan  | 4000   | Vishakhapatnam |
    |  3 | Renuka  | 6000   | Delhi          |
    |  4 | Archana | 9000   | Mumbai         |
    |  5 | Sumith  | 11000  | Hyderabad      |
    +----+---------+--------+----------------+

    以下示例演示了如何更新结果集的内容:

    import java.sql.*;
    public class ResultSetExample {
       public static void main(String[] args) throws Exception {
          //Registering the Driver
          DriverManager.registerDriver(new com.mysql.jdbc.Driver());
          //Getting the connection
          String mysqlUrl = "jdbc:mysql://localhost/TestDB";
          Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
          System.out.println("Connection established......");
          //Creating a Statement object
          Statement stmt = con.createStatement(
          ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
          //Retrieving the data
          ResultSet rs = stmt.executeQuery("select * from Employees");
          //Printing the contents of the table
          System.out.println("Contents of the table: ");
          printRs(rs);
          //Moving the pointer to the starting point in the ResultSet
          rs.beforeFirst();
          //Updating the salary of each employee by 5000
          while(rs.next()){
             //Retrieve by column name
             int newSal = rs.getInt("Salary") + 5000;
             rs.updateInt( "Salary", newSal );
             rs.updateRow();
          }
          System.out.println("Contents of the ResultSet after increasing salaries");
          printRs(rs);
          // Set position to second record first
          rs.beforeFirst();
          rs.absolute(2);
          System.out.println("Record we need to delete: ");
          System.out.print("ID: " + rs.getInt("id"));
          System.out.print(", Salary: " + rs.getInt("Salary"));
          System.out.print(", Name: " + rs.getString("Name"));
          System.out.println(", Location: " + rs.getString("Location"));
          System.out.println(" ");
          //Deleting the row
          rs.deleteRow();
          System.out.println("Contents of the ResultSet after deleting one records...");
          printRs(rs);
          System.out.println("Goodbye!");
       }
       public static void printRs(ResultSet rs) throws SQLException{
          //Ensure we start with first row
          rs.beforeFirst();
          while(rs.next()){
             System.out.print("ID: " + rs.getInt("id"));
             System.out.print(", Salary: " + rs.getInt("Salary"));
             System.out.print(", Name: " + rs.getString("Name"));
             System.out.println(", Location: " + rs.getString("Location"));
          }
          System.out.println();
       }
    }

    输出

    Connection established......
    Contents of the table:
    ID: 1, Salary: 3000, Name: Amit, Location: Hyderabad
    ID: 2, Salary: 4000, Name: Kalyan, Location: Vishakhapatnam
    ID: 3, Salary: 6000, Name: Renuka, Location: Delhi
    ID: 4, Salary: 9000, Name: Archana, Location: Mumbai
    ID: 5, Salary: 11000, Name: Sumith, Location: Hyderabad
    Conetnets of the resultset after increaing salaries
    ID: 1, Salary: 8000, Name: Amit, Location: Hyderabad
    ID: 2, Salary: 9000, Name: Kalyan, Location: Vishakhapatnam
    ID: 3, Salary: 11000, Name: Renuka, Location: Delhi
    ID: 4, Salary: 14000, Name: Archana, Location: Mumbai
    ID: 5, Salary: 16000, Name: Sumith, Location: Hyderabad
    Record we need to delete:
    ID: 2, Salary: 9000, Name: Kalyan, Location: Vishakhapatnam
    Contents of the resultset after deleting one records...
    ID: 1, Salary: 8000, Name: Amit, Location: Hyderabad
    ID: 3, Salary: 11000, Name: Renuka, Location: Delhi
    ID: 4, Salary: 14000, Name: Archana, Location: Mumbai
    ID: 5, Salary: 16000, Name: Sumith, Location: Hyderabad
    Goodbye!
    想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
    本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
    如有侵权请发送邮件至1943759704@qq.com删除

    码农资源网 » 如何使用 JDBC 程序更新 ResultSet 的内容?
    • 5会员总数(位)
    • 23123资源总数(个)
    • 748本周发布(个)
    • 196 今日发布(个)
    • 183稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情