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.
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