JDBC, come accedere ad un database da Java

5 settembre 2009

Premetto che io dispongo del JDK 1.6.0_14 della Sun installato in /usr/lib/jvm/java-6-sun-1.6.0.14 sulla mia Ubuntu e del database MySQL 5.0.51a e che farò riferimento a questi strumenti per la mia guida.

Per poter accedere al database da Java è necessario scaricare il driver di MySQL da qui.

Estrarre il file tar.gz con il comando tar zxfv mysql-connector-java-5.1.8.tar.gz (cambiate i numeri 5.1.8 in base alla versione del driver che avete scaricato).

Dopo di ciò bisogna copiare il driver nella directory /usr/lib/jvm/java-6-sun-1.6.0.14/jre/lib/ext

sudo cp mysql-connector-java-5.1.8-bin.jar /usr/lib/jvm/java-6-sun-1.6.0.14/jre/lib/ext

e modificare la variabile di sistema CLASSPATH:

export CLASSPATH=$CLASSPATH:mysql-connector-java-5.1.8-bin.jar

Anche se sinceramente ho visto che a me funziona anche settare suddetta variabile.

Ora bisogna passare al codice:

Aggiungiamo il package import java.sql.*;

poi le variabili

Connection con = null;
Statement st = null;
ResultSet rs = null;

Aggiungiamo ora il driver con la riga

Class.forName("com.mysql.jdbc.Driver");
o esclusivamente la riga
DriverManager.registerDriver(new com.mysql.jdbc.Driver());

A questo punto abbiamo il driver, aggiungiamo la connessione:

con = DriverManager.getConnection("jdbc:mysql://localhost/nome_database", "nome_utente", "password");

Se il database non ha password si può utilizzare la funzione:

con = DriverManager.getConnection("jdbc:mysql://localhost/nome_database");

Per eseguire le query abbiamo bisogno di uno statement, quindi:

st = con.createStatement();

Ora per eseguire effettivamente la query si utilizza la riga

rs = st.executeQuery("select * from cliente");

e per vedere i risultati:

while (rs.next())
{
System.out.println("Codice cliente: " + rs.getString(1));
System.out.println("Partita IVA: " + rs.getString(2));
System.out.println("Ragione sociale: " + rs.getString(3));
System.out.println(" ");
}

Quando abbiamo finito con il database chiudiamo la connessione:

con.close();

Un esempio completo lo si trova di seguito:


mport java.sql.*;

public class DBConn
{

public static void main(String args[])
{
new DBConn();
}

public DBConn()
{
Connection con = null;
Statement st = null;
ResultSet rs = null;

try
{
//Class.forName("com.mysql.jdbc.Driver");
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
}/*catch(ClassNotFoundException e)
{
System.out.println("Errore: " + e.getException().getMessage());
System.exit(1);
}*/catch(SQLException e)
{
System.out.println("Errore : " + e.getSQLState());
System.exit(1);
}

try
{
con = DriverManager.getConnection("jdbc:mysql://localhost/cremonesi", "michele", "hellasverona");
}catch(SQLException e)
{
System.out.println("Errore : " + e.getSQLState());
System.exit(1);
}

try
{
st = con.createStatement();
}catch(SQLException e)
{
System.out.println("Errore : " + e.getSQLState());
System.exit(1);
}

try
{
rs = st.executeQuery("select * from cliente");
}catch(SQLException e)
{
System.out.println("Errore : " + e.getSQLState());
System.exit(1);
}

System.out.println();
try
{
while (rs.next())
{
System.out.println("Codice cliente: " + rs.getString(1));
System.out.println("Partita IVA: " + rs.getString(2));
System.out.println("Ragione sociale: " + rs.getString(3));
System.out.println(" ");
}
}catch(SQLException e)
{
System.out.println("Errore : " + e.getSQLState());
System.exit(1);
}

try
{
con.close();
}catch(SQLException e)
{
System.out.println("Errore : " + e.getSQLState());
System.exit(1);
}

}
}

Risorse:

http://dev.mysql.com/usingmysql/java/
http://www.soft-land.org/articoli/jdbc

Annunci

I linguaggi di programmazione più utilizzati

9 aprile 2009

Oggi ho voluto fare una ricerca su quali fossero i linguaggi di programmazione più utilizzati nel mondo e secondo la TIOBE Software ad Aprile 2009 domina il Java, seguito da C e C++.

  1. Java
  2. C
  3. C++
  4. PHP
  5. (Visual) Basic
  6. Python
  7. C#
  8. JavaScript
  9. Perl
  10. Ruby

Per visitare la classifica completa seguite questo link.

Per una classifica degli script utilizzati nel web dalle pubbliche amministrazioni notiamo che al secondo posto troviamo ASP.NET, seguito dal PHP:

  1. Non definito          50.82%      con 3706 hit su 7291
  2. ASP.NET               23.43%      con 1708 hit su 7291
  3. PHP                     16.91%      con 1233 hit su 7291
  4. Servlet                   0.37%      con 27 hit su 7291
  5. JSP                       0.04%       con 3 hit su 7291

Da considerare anche che quanto scritto su TIOBE:

ASP and ASP.NET are not programming languages because they make use of other languages such as JavaScript and VBScript or .NET compatible languages.

ASP e ASP-NET non sono considerati linguaggi di programmaizone perché fanno uso di altri linguaggi come JavaScript e VBScript o linguaggi compatibili con .NET.

Per quanto riguarda i servers abbiamo:

  1. Apache           43.56%    con 3176 hit su 7291
  2. Microsoft IIS   29.68%    con 2164 hit su 7291
  3. Altro              18.78%    con 1369 hit su 7291
  4. Non definito     7.98%    con   582 hit su 7291

Sono stati sommati i risultati di tutte le pubbliche amministrazioni e prese le percentuali sul totale.

I riferimenti sono stati presi da http://web-pa.tektank.it/.