Java – Interfacciarsi a MYSQL tramite driver JDBC

You are currently viewing Java – Interfacciarsi a MYSQL tramite driver JDBC

Nel seguente articolo , vorrei condividere una classe creata da me utilizzando il driver java JDBC per potersi collegare ed eseguire delle query su un DATABASE MySQL

Come prima cosa occorre scaricare il driver e aggiungere le librerie al proprio progetto.

Il Driver può essere scaricato da qui : https://dev.mysql.com/downloads/connector/j/

Una volta scaricato il pacchetto e decompresso andrà aggiunto al nostro progetto.

Schermata 2018-06-21 alle 23.09.41

 

La classe è la seguente:

*
* 
*/
package sqlconnect;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;

/**
*
* @author vittoriodamato
*/
public class SqlHelper {

private String User = "root";
private String Psw = "root";
private String DBNAME = "NOMEDATABASE";
private String DBAddress = "jdbc:mysql://localhost:8889/"+DBNAME+"? useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";
private Connection conn = null;

//costruttore
SqlHelper() {
}

public void Connect(){

try {
conn = DriverManager.getConnection(DBAddress, User, Psw);
} catch (SQLException ex) {
// handle any errors
System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode());
}

}

public ResultSet runQuery(String Q) throws SQLException {

Statement stmt = conn.createStatement();
stmt.execute(Q);
ResultSet rs = stmt.getResultSet();
return rs;

}

public void stampaRisultato (ResultSet s) throws SQLException {
ResultSetMetaData rsmd = s.getMetaData();
int colonne = rsmd.getColumnCount();
while (s.next()) {

for (int i=1; i<= colonne; i++){
if (i > 1) System.out.print(", ");
String columnValue = s.getString(i);
System.out.print(columnValue + " " + rsmd.getColumnName(i));

}

System.out.println("");
}

}

public void stampaRisultatoColonna (ResultSet s , int numColonna) throws SQLException {
ResultSetMetaData rsmd = s.getMetaData();
int colonne = rsmd.getColumnCount();
while (s.next()) {
System.out.println(s.getString(numColonna)); //prendi i dati della riga impostata
}

}

public void closeConnection() throws SQLException{
conn.close();
}

}

 

 

Ed un suo utilizzo è :

 

....
....

SqlHelper nuovaconnessione = new SqlHelper();
nuovaconnessione.Connect();
ResultSet rs = nuovaconnessione.runQuery("SELECT * FROM Clienti");
nuovaconnessione.stampaRisultato(rs); //stampa tutto il risultato della query
nuovaconnessione.stampaRisultatoColonna(rs,2); // stampa solo la colonna 2
nuovaconnessione.closeConnection();

....

....

 

 

La classe ovviamente può essere modificata e utilizzata come meglio si vuole
Saluti

Condividilo se ti è piaciuto