Lezione 9 - Interfacciamento con Java a data base


Le applicazioni in questa lezione sono state prese dai materiali del seminario tenuto al Cern da Raúl Ramos-Pollán.Allo stesso indirizzo al Cern e' disponibile una copia zippata dello stesso materiale, mentre la S accanto al titolo di ogni applicazione punta a una copia locale dello stesso materiale.
Java puo' comunicare con un data base attraverso 2 diversi meccanismi:
  1. Un meccanismo detto JDBC(Java Database Connectivity):un pacchetto applicativo(API) per collegarsi a database relazionali SQL.
  2. Attraverso API fornite dagli stessi fornitori di database per accedere a database ad oggetti: e' il caso dell'API Java di Objectivity.In questo caso e' lo stesso database che fornisce in maniera automatica la persistenza di alcuni oggetti definiti in maniera speciale.

Ci sono vari tipi o modelli di database ma il piu' comune e' il database relazionale che si presenta appunto come una serie di tabelle e di relazioni tra le stesse. Inoltre nel gergo dei database relazionali le righe di una tabella sono record e le colonne sono campi(fields in inglese). Ogni campo e' individuato da un nome ed ogni record da uno o piu' campi particolari che fanno da identificatore o chiave primaria dello stesso. I DBMS piu' diffusi come Filemaker , Oracle e Access sono relazionali. Ma un altro tipo di database, quello ad oggetti, si sta diffondendo in seguito al successo dei linguaggi di programmazione ad oggetti.

Per i data base relazionali o RDBMS e' stato creato un linguaggio standard di creazione e interrogazione di database che permette la comunicazione con RDBMS . Il linguaggio si chiama SQL o Structured Query Language ed e' capito dalla maggioranza dei database(nel nostro caso Access e MySql capiscono l'SQL , Filemaker no). Un programma che acceda a un database usando SQL dovrebbe poter essere usato con database di diverso tipo,basta che capiscano l'SQL. Perche' questo avvenga il costruttore di ogni database deve fornire un insieme di classi detto JDBC driver che contiene le caratteristiche specifiche del database.

Questo significa che se volete accedere a un database,ad es. MySQL, dovete:


Applicazione 1:Accesso a tabella MySQL . S

    file Employee.java


import java.sql.*;

class Employee
{
 public static void main (String args [])
 {
  try {
    // Load the MySQL JDBC driver
    try {
      Class.forName("org.gjt.mm.mysql.Driver");
    } catch (ClassNotFoundException e) {
      System.out.println ("MySQL device driver does not exist");
      System.exit(1);
    }

    // Connect to the database
    // You can put a database name after the @ sign in the connection URL.
    Connection conn =
    DriverManager.getConnection ("jdbc:mysql://localhost/rpc?user=pinco&password=pallino");

    // Create a Statement
    Statement stmt = conn.createStatement ();

    // Select the ENAME column from the EMP table
    ResultSet rset = stmt.executeQuery ("SELECT ID, ChamberID, Chamber_type, Status from Chamber");

    // Iterate through the result and print the employee names
    while (rset.next ())  {
      System.out.print   ("Name "+rset.getString (1));
      System.out.print   (" Job "+rset.getString(2));
      System.out.print   (" Salary "+ rset.getString(3));
      System.out.println (" HDate "+ rset.getString(4));
    }
     

    // Close the RseultSet
    rset.close();

    // Close the Statement
    stmt.close();

    // Close the connection
    conn.close();   
   } catch (SQLException e) {
      System.out.println("Error accessing DB ");
      System.out.println("  Error code is : "+e.getErrorCode());
      System.out.println("  Error message is :"+e.getMessage());
   }
  }
}

INDIETRO a Imparate Java in una settimana
INDIETRO a Seminario su Java
Maintained by Giuseppe Zito: Giuseppe.Zito@cern.ch
Ultimo aggiornamento: