Java JDBC Sample Connection

2011 February 23
// libreria classi per utilizzare i driver JDBC
import java.sql.*;

/**
 * Questa classe di esempio illustra come connettersi ad un DB
 * @version 23/11/2010
 */
public class testJDBC {

	public static void main(String[] args) {
		try {
			//PASSO1: Caricamento del driver <- dipende dal database
			// Carichiamo un driver di tipo 1 (bridge jdbc-odbc)
			
			Class.forName("com.mysql.jdbc.Driver");
		
			//PASSO2: stringa di connessione (URL) e creazione dell'oggetto Connection
			// Creiamo la stringa di connessione
			// accesso al database 'test' con user 'root' e password ''
			String url = "jdbc:mysql://localhost/test?user=root&password=";

			//Otteniamo una connessione con username e password
			Connection con = DriverManager.getConnection (url);

			//PASSO3: Creazione dell'oggetto Statement e esecuzione della query
			// Creiamo un oggetto Statement per poter interrogare il db
			Statement cmd = con.createStatement ();

			cmd.executeUpdate("DROP TABLE `test`.`myTable`");
			 
			//eseguo la query ('executeUpdate' viene utilizzata per lanciare tutte le query tranne quelle di selezione che si utilizza 'executeQuery')			
			cmd.executeUpdate("CREATE TABLE `test`.`myTable` ("+
					          "`nome` VARCHAR( 20 ) NOT NULL ," +
					          "`anno` INT NOT NULL " +
					          ") ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_unicode_ci;");

			cmd.executeUpdate("INSERT INTO `test`.`myTable` (`nome`,`anno`) " +
						      "VALUES ('Matteo',1988), " +
					          "('Simone','1985')");
			
			//Eseguiamo una query e immagazziniamone i risultati
			// in un oggetto ResultSet
			String qry = "SELECT * FROM `test`.`myTable`";
			ResultSet res = cmd.executeQuery(qry);

			//PASSO4: elaborazione dei risultati tramite ResultSet
			// Stampiamone i risultati riga per riga
			while (res.next()) {
				System.out.println(res.getString("nome"));
				System.out.println(res.getString("anno"));
			}

			//Rilascio delle risorse
			res.close();
			cmd.close();
			con.close();
		} catch (SQLException e) {
			e.printStackTrace();
		// java non trova il driver per il database	
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
}