JAVA E I DATABASE
In questo articolo vedremo come usare il popolare DBMS (Database Management System) MySQL Server in Java. Inizieremo dall’installazione di MySQL, io sto lavorando con un S.O MacOS Ventura e la procedura che ti farò vedere è valida per questo Sistema Operativo. Per Windows e Linux fare riferimento alla documentazione di MySQL. Andare con il proprio browser all’indirizzo https://dev.mysql.com/downloads/mysql/ e selezionare il proprio sistema operativo e la giusta architettura (nel mio caso macOS versione di MySQL 8.0.34 architettura ARM 64) e scaricare il file.
Adesso con un video ti illustro la procedura di installazione su macOS.
MySQL Server rimane in ascolto sulla porta 3306 di default, nel mio caso l’avvio dell’istanza fallisce in quanto sulla porta 3306 ho un’altra istanza di MySQL su Container Docker. Devo cambiare la porta di default, impostando ad esempio la 3307. Nel video ti illustro come fare su MacOS. Se non hai questa esigenza lascia pure la porta di default 3306.
Una volta installato MySQL occorre installare MySQL Workbench 8.0.34 andando al seguente URL: https://dev.mysql.com/downloads/workbench/ io ho già scaricato e installato il programma, la procedura è molto semplice. Ora con un video ti mostro come configurare la connessione a MySQL. Ovviamente devi assicurarti che l’istanza di MySQL sia attiva.
Una volta configurata la connessione apri il progetto scaricato da GITHUB, recati nel seguente package it.corso.java.database, qui trovi un file con estensione .sql da copiare e incollare in MySQL Workbench per creare database e tabella. In questo package trovi anche il codice di esempio. Mi raccomando di immettere nel codice la password della tua istanza MySQL e la porta. Prima di poter eseguire tale codice devi installare il JDBC Connector che trovi già disponibile nel codice GITHUB. Nel prossimo video ti mostro come configurare il driver JDBC in Visual Studio Code.
Un ultima osservazione sull’editor. All’inizio di questo corso ti ho consigliato Visual Studio Code in quanto è un editor completo, ricco di funzionalità e gratuito. Tuttavia se intendi sviluppare in Java il mio consiglio è quello di scegliere un editor professionale come Intellij IDEA, è un editor a pagamento, ma ti assicuro che sono 20€ mensili circa spesi bene.
package it.corso.java.database; import com.mysql.cj.jdbc.MysqlDataSource; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class Clienti { private Connection connection; public static void main(String[] args) { try { Clienti clienti = new Clienti(); clienti.Insert("Marco","Albasini","malbasini@gmail.com","999999999"); clienti.Insert("Mario","Rossi","mario.rossi@gmail.com","2222222222"); clienti.Insert("Luca","Verdi","luca.verdi@gmail.com","1223445678"); clienti.Update("12345678",1); clienti.Select("Rossi"); clienti.Delete(3); } catch(SQLException e){ String s = e.getMessage(); System.out.println(s); } } private void Insert(String nome, String cognome, String email, String telefono) throws SQLException { String sql = "INSERT INTO clienti(nome, cognome, email, telefono) "+ "VALUES('"+nome+"', '"+cognome+"', '"+email+"', '"+telefono+"')"; PreparedStatement ps = getConnection().prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); ps.executeUpdate(); ResultSet rs = ps.getGeneratedKeys(); rs.next(); System.out.println("l'id generato è: " + rs.getInt(1)); } private void Select(String cognome) throws SQLException { String sql = "SELECT * FROM clienti WHERE cognome = ?"; PreparedStatement ps = getConnection().prepareStatement(sql); ps.setString(1, cognome); ResultSet rs = ps.executeQuery(); while(rs.next()) { System.out.println("id = " + rs.getInt(1)); System.out.println("nome = " + rs.getString(2)); System.out.println("cognome = " + rs.getString(3)); System.out.println("email = " + rs.getString(4)); System.out.println("telefono = " + rs.getString(5)); System.out.println("------------------------------------------------"); } } private void Delete(int id) throws SQLException { String sql = "DELETE FROM clienti WHERE id = ?"; PreparedStatement ps = getConnection().prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); ps.setInt(1, id); ps.executeUpdate(); connection.close(); } private void Update(String telefono, int id) throws SQLException { String sql = "UPDATE clienti SET telefono = ? WHERE id = ?"; PreparedStatement ps = getConnection().prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); ps.setString(1, telefono); ps.setInt(2, id); ps.executeUpdate(); } private Connection getConnection() throws SQLException { if(connection == null) { MysqlDataSource dataSource = new MysqlDataSource(); dataSource.setServerName("127.0.0.1"); dataSource.setPortNumber(3307); dataSource.setUser("root");//root dataSource.setPassword("**************");//pwd di MySQL dataSource.setDatabaseName("CorsoJava"); connection = dataSource.getConnection(); } return connection; } }
LINK AI POST PRECEDENTI
LINK AL CODICE SU GITHUB
ESECUZIONE DEL CODICE DI ESEMPIO
Per questo esempio mettere in esecuzione il main del file Clienti.java che si trova nel package it.corso.java.database.
Scrivi un commento