Skip to content

Latest commit

 

History

History
121 lines (94 loc) · 4.53 KB

Java-JDBC.md

File metadata and controls

121 lines (94 loc) · 4.53 KB

Java:JDBC

JDBC: cos'è

"In informatica JDBC (Java DataBase Connectivity), è un connettore (driver) per database che consente l'accesso e la gestione della persistenza dei dati sulle basi di dati da qualsiasi programma scritto con il linguaggio di programmazione Java, indipendentemente dal tipo di DBMS utilizzato." (cfr. Wikipedia.org)

Come settarlo in Eclipse (molto simile per Intellij)

Click destro sul progetto -> Properties -> Buildpath -> Libraries -> Add External JAR e selezionate “mysql-connector-java-5.1.14-bin.jar” JAR file dalla cartella in cui è stato scaricato.

Immagine

Seguire questa guida.

Come funziona

Esempio:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;

public class TestDatabase {
    private Connection connect = null;
    private Statement statement = null;
    private PreparedStatement preparedStatement = null;
    private ResultSet resultSet = null;

    public void readDataBase() throws Exception {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            // preparo la connessione al database
            connect = DriverManager.getConnection("jdbc:mysql://localhost/database?" + "user=test&password=test");
            // Statement mi permette di creare query ed eseguirle sul database
            statement = connect.createStatement();
            // ResultSet salva il risultato dell'esecuzione della query
            resultSet = statement.executeQuery("select * from database.utente where nome='Marco'");
            //salvo nel ResultSet
            stampaResultSet(resultSet);

            // PreparedStatements può essere usato per inserire i valori nella query - è un metodo molto sicuro per evitare SQLInjection
            preparedStatement = connect.prepareStatement("insert into database.utente values (?, ?, ?)");
            // Parameters iniziano da 1
            preparedStatement.setString(1, "Marco");
            preparedStatement.setString(2, "Rossi");
            preparedStatement.setDate(4, new java.sql.Date(2009, 12, 11));
            preparedStatement.executeUpdate();
  
            //Verifico che sia andato a buon fine l'inserimento
            preparedStatement = connect.prepareStatement("SELECT nome, cognome, data_nascita from database.utente");
            resultSet = preparedStatement.executeQuery();
            //salvo nel ResultSet
            stampaResultSet(resultSet);

            // Rimuovo l'utente
            preparedStatement = connect.prepareStatement("delete from database.utente where nome= ? ; ");
            preparedStatement.setString(1, "Marco");
            preparedStatement.executeUpdate();

            resultSet = statement.executeQuery("select * from database.utente");
            
        } catch (Exception e) {
            throw e;
        } finally {
            close();
        }

    }

  private void stampaResultSet(ResultSet resultSet) throws SQLException {
        while (resultSet.next()) {
            String nome = resultSet.getString("nome");
            String cognome = resultSet.getString("cognome");
            Date date = resultSet.getDate("data_nascita");
            System.out.println("nome: " + nome);
            System.out.println("cognome: " + cognome);
            System.out.println("data_nascita: " + data_nascita);
        }
    }

    private void close() {
        try {
            if (resultSet != null) {
                resultSet.close();
            }

            if (statement != null) {
                statement.close();
            }

            if (connect != null) {
                connect.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

public class Main {
    public static void main(String[] args) throws Exception {
        TestDatabase dao = new TestDatabase();
        dao.readDataBase();
    }

}

Link driver Java: