mercoledì 12 marzo 2014

Java utilizzo di Apache Derby

Per utilizzare Apache Derby occorre:
  1. Scaricare dal sito l'ultima release ( https://db.apache.org/derby/derby_downloads.html#Latest+Official+Releases );
  2. Dei vari jar scaricati prendere il derby.jar
Di default quando si creano gli archivi sono installati sotto la directory di esecuzione del programma.
In alternativa si può specificare una locazione differente settando la variabile derby.system.home .

Occorre prestare attenzione quando si fanno le insert di campi di tipo varchar a scrivere nelle query il singolo apice invece del doppio apice, per evitare di incappare in un errore di questo tipo:


 Column 'xxxx' is either not in any table in the FROM list or appears within a join specification and is outside the scope of the join specification or appears in a HAVING clause and is not in the GROUP BY list. If this is a CREATE or ALTER TABLE  statement then 'mario' is not a column in the target table.

Di seguito un esempio di codice che crea un db, una tabella, effettua una insert e recupera quindi i dati:

package it.test.derby;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
public class ProvaDerby {
 public static void main(String[] args) throws Exception {
  System.setProperty("derby.system.home", "c:\\lav\\derbyTest");
  String url="jdbc:derby:database_test;create=true;user=root;password=root;";
  Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
  int risultato=0;
  Connection conn=DriverManager.getConnection(url);
  Statement st=conn.createStatement();
  String creazione="create table persona (id integer not null,nome varchar(16),cognome varchar(30), PRIMARY KEY(id))";
  risultato=st.executeUpdate(creazione);
  System.out.println("RISULTATO: "+risultato);
  String insert= "insert into persona (id,nome,cognome) values(1,\"mario\",'rossi')";
  PreparedStatement pst=conn.prepareStatement(insert);
   risultato=pst.executeUpdate();
  System.out.println("RISULTATO INSERT: "+risultato);
  String inquiry="select * from persona";
  pst=conn.prepareStatement(inquiry);
  ResultSet rs=pst.executeQuery();
  while(rs.next()){
   System.out.println("Nome: "+rs.getString("nome"));
   System.out.println("Cognome: "+rs.getString("cognome"));
  }
  rs.close();
  pst.close();
  conn.close();
  

 }

}



Il contenuto della directory derbyTest sarà il seguente:


Nessun commento:

Posta un commento