English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

JDBC 更新结果集示例

以下是使用Result Set教程中描述的ResultSet.CONCUR_UPDATABLEResultSet.TYPE_SCROLL_INSENSITIVE示例。本示例将说明对表的INSERT,UPDATE和DELETE操作。

应该注意的是,您正在处理的表应正确设置主键。

该示例代码是根据前几章中的环境和数据库设置编写的。

复制并粘贴以下示例到JDBCExample.java中,如下编译并运行:

// 步骤1.导入所需的软件包
import java.sql.*;
public class JDBCExample {
   // JDBC驱动程序名称和数据库URL
   static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
   static final String DB_URL = "jdbc:mysql://localhost/EMP";
   // 数据库凭证
   static final String USER = "username";
   static final String PASS = "password";
   
 public static void main(String[] args) {
   Connection conn = null;
   try{
      // 步骤2:注册JDBC驱动程序
      Class.forName("com.mysql.jdbc.Driver");
      // 步骤3:建立连接
      System.out.println("Connecting to database...");
      conn = DriverManager.getConnection(DB_URL,USER,PASS);
      // 步骤4:执行查询以创建陈述
      // RS示例的必需参数。
      System.out.println("Creating statement...");
      Statement stmt = conn.createStatement(
                           ResultSet.TYPE_SCROLL_INSENSITIVE,
                           ResultSet.CONCUR_UPDATABLE);
     //Passaggio 5: Esegui la query
      String sql = "SELECT id, first, last, age FROM Employees";
      ResultSet rs = stmt.executeQuery(sql);
      System.out.println("Elenco dei risultati per riferimento....");
      printRs(rs);
      //Passaggio 6: Esplora il risultato e aumenta di 5 anni l'età
      //Sposta alla posizione BFR per far funzionare correttamente il ciclo while
      rs.beforeFirst();
      //Passaggio 7: Estrai i dati dal risultato
      while(rs.next()){
         //Ricerca per nome di colonna
         int newAge = rs.getInt("age") + 5;
         rs.updateDouble("age",newAge);
         rs.updateRow();
      }
      System.out.println("Elenco dei risultati mostrando i nuovi età...");
      printRs(rs);
      //Inserisci una nuova riga nel tavolo.
      //Spostati per utilizzare updateXXX() per inserire una riga e aggiungere dati delle colonne
      System.out.println("Inserendo un nuovo record...");
      rs.moveToInsertRow();
      rs.updateInt("id",104);
      rs.updateString("first","John");
      rs.updateString("last","Paul");
      rs.updateInt("age",40);
      //Conferma la riga
      rs.insertRow();
      System.out.println("Elenco dei risultati mostrando il nuovo set...");
      printRs(rs);
      
      //Elimina la seconda riga dal tavolo.
      //Imposta la posizione iniziale sul secondo record
      rs.absolute(2);
      System.out.println("Elenco del record prima dell'eliminazione...");
      //Ricerca per nome di colonna
      int id = rs.getInt("id");
      int age = rs.getInt("age");
      String first = rs.getString("first");
      String last = rs.getString("last");
      //Visualizzazione dei valori
      System.out.print("ID: " + id);
      System.out.print(", Età: " + age);
      System.out.print(", Primo: " + first);
      System.out.println(", Ultimo: " + last);
     //Elimina la riga
      rs.deleteRow();
      System.out.println("Elenco dei risultati dopo ", "Elenco dei risultati dopo ")
                Eliminazione di un record...
      printRs(rs);
      //Passo 8: Pulizia dell'ambiente
      rs.close();
      stmt.close();
      conn.close();
   }
      //Gestione degli errori JDBC
      se.printStackTrace();
   }
      //Gestione dell'errore di Class.forName
      finally{
   }
      //Utilizzato per chiudere le risorse
      try{
         if(conn!=null)
            conn.close();
      }
         se.printStackTrace();
      }
   }
   System.out.println("Arrivederci!");
//Fine di main
   public static void printRs(ResultSet rs) throws SQLException{
      //Assicurarsi di iniziare dalla riga 1
      rs.beforeFirst();
      while(rs.next()){
         //Ricerca per nome di colonna
         int id = rs.getInt("id");
         int age = rs.getInt("age");
         String first = rs.getString("first");
         String last = rs.getString("last");
         //Visualizzazione dei valori
         System.out.print("ID: " + id);
         System.out.print(", Età: " + age);
         System.out.print(", Primo: " + first);
         System.out.println(", Ultimo: " + last);
     }
     System.out.println();
   //Fine di printRs()
//Fine di JDBCExample

Ora, compiliamo l'esempio sopra riportato come segue:

C:\>javac JDBCExample.java
C:\>

Al runtimeJDBCExampleEcco il risultato che produrrà:

C:\>java JDBCExample
Connessione al database...
Creazione dello statement...
Elenco dei risultati della query per riferimento...
ID: 100, Età: 33, Nome: Zara, Cognome: Ali
ID: 101, Età: 40, Nome: Mahnaz, Cognome: Fatma
ID: 102, Età: 50, Nome: Zaid, Cognome: Khan
ID: 103, Età: 45, Nome: Sumit, Cognome: Mittal
Elenca il result set mostrando i nuovi anni...
ID: 100, Età: 38, Nome: Zara, Cognome: Ali
ID: 101, Età: 45, Nome: Mahnaz, Cognome: Fatma
ID: 102, Età: 55, Nome: Zaid, Cognome: Khan
ID: 103, Età: 50, Nome: Sumit, Cognome: Mittal
Inserendo un nuovo record...
Elenca il result set mostrando il nuovo set...
ID: 100, Età: 38, Nome: Zara, Cognome: Ali
ID: 101, Età: 45, Nome: Mahnaz, Cognome: Fatma
ID: 102, Età: 55, Nome: Zaid, Cognome: Khan
ID: 103, Età: 50, Nome: Sumit, Cognome: Mittal
ID: 104, Età: 40, Nome: John, Cognome: Paul
Elenca il record prima di eliminarlo...
ID: 101, Età: 45, Nome: Mahnaz, Cognome: Fatma
Elenca il result set dopo aver eliminato un record...
ID: 100, Età: 38, Nome: Zara, Cognome: Ali
ID: 102, Età: 55, Nome: Zaid, Cognome: Khan
ID: 103, Età: 50, Nome: Sumit, Cognome: Mittal
ID: 104, Età: 40, Nome: John, Cognome: Paul
Ciao!
C:\>