Skip to main content

Application java with DerbyDb

Please note these java.net forums are being decommissioned and use the new and improved forums at https://community.oracle.com/community/java.
No replies
bircastri2
Offline
Joined: 2010-03-25

Hi,

i would realize an appication in java with DerbyDB.
I always used MySql and i don't know DerbyDB.

I have create a project with eclipse and i have create a folder "lib" that contains derby.jar

I have create a database development with eclipse "databasediprova" but i can't connect to it.

<br />
import java.sql.Connection;<br />
import java.sql.DriverManager;<br />
import java.sql.ResultSet;<br />
import java.sql.ResultSetMetaData;<br />
import java.sql.SQLException;<br />
import java.sql.Statement;<br />
import java.util.Vector;</p>
<p>import javax.swing.JTable;</p>
<p>public class Database {<br />
   private String nomeDB;       // Nome del Database a cui connettersi<br />
   private String nomeUtente;   // Nome utente utilizzato per la connessione al Database<br />
   private String pwdUtente;    // Password usata per la connessione al Database<br />
   private String errore;       // Raccoglie informazioni riguardo l'ultima eccezione sollevata<br />
   private static Connection db;       // La connessione col Database<br />
   private boolean connesso;    // Flag che indica se la connessione è attiva o meno<br />
   private String[][] cells = null;<br />
   private String[] columnsName=null;<br />
   public Database(String nomeDB) { this(nomeDB, "", ""); }<br />
   public JTable tabella;<br />
   public Database(String nomeDB, String nomeUtente, String pwdUtente) {<br />
      this.nomeDB = nomeDB;<br />
      this.nomeUtente = "bircastri271187";<br />
      this.pwdUtente = "pentathlon271187";<br />
      connesso = false;<br />
      errore = "";<br />
   }</p>
<p>   // Apre la connessione con il Database<br />
   public boolean connetti() {<br />
      connesso = false;<br />
      try {</p>
<p>         // Carico il driver JDBC per la connessione con il database MySQL<br />
         Class.forName("org.apache.derby.jdbc.EmbeddedDriver");</p>
<p>         // Controllo che il nome del Database non sia nulla<br />
         if (!nomeDB.equals("")) {</p>
<p>            // Controllo se il nome utente va usato o meno per la connessione<br />
            if (nomeUtente.equals("")) {</p>
<p>               // La connessione non richiede nome utente e password<br />
                Connection dbConnection = null;<br />
                String strUrl = "jdbc:derby:ICECREAM;user=dbuser;password=dbuserpwd";<br />
                try {<br />
                    dbConnection = DriverManager.getConnection(strUrl);<br />
                } catch (SQLException sqle) {<br />
                    sqle.printStackTrace();<br />
                }</p>
<p>            } else {</p>
<p>               // La connessione richiede nome utente, controllo se necessita anche della password<br />
               if (pwdUtente.equals("")) {</p>
<p>                  // La connessione non necessita di password<br />
                  db = DriverManager.getConnection("jdbc:derby://localhost:1527/" + nomeDB + "?user=" + nomeUtente);<br />
               } else {<br />
                   db = DriverManager.getConnection("jdbc:derby:databasediprova;create=true");<br />
                  // this.eseguiQuery( "CREATE SCHEMA INGREDIENTI NroArt CHAR(4)" );<br />
                //   db = DriverManager.getConnection("jdbc:derby:ICECREAM;user=nomeUtente;password=pwdUtente");</p>
<p>                   // La connessione necessita della password<br />
                /*   Connection dbConnection = null;<br />
                   String strUrl = "jdbc:derby:ICECREAM;user=dbuser;password=dbuserpwd";<br />
                   try {<br />
                       dbConnection = DriverManager.getConnection(strUrl);<br />
                   } catch (SQLException sqle) {<br />
                       sqle.printStackTrace();<br />
                   }*/</p>
<p>               }<br />
            }</p>
<p>            // La connessione è avvenuta con successo<br />
            connesso = true;<br />
         } else {<br />
            System.out.println("Manca il nome del database!!");<br />
            System.out.println("Scrivere il nome del database da utilizzare all'interno del file \"config.xml\"");<br />
            System.exit(0);<br />
         }<br />
      } catch (Exception e) { errore = e.getMessage(); }<br />
      return connesso;<br />
   }</p>
<p>// Esegue una query di selezione dati sul Database<br />
   // query: una stringa che rappresenta un'istruzione SQL di tipo SELECT da eseguire<br />
   // colonne: il numero di colonne di cui sarà composta la tupla del risultato<br />
   // ritorna un Vector contenente tutte le tuple del risultato</p>
<p>   public Vector eseguiQuery(String query) {<br />
          Vector v = null;<br />
          int colonne = 0;<br />
          try {<br />
             Statement stmt = db.createStatement();     // Creo lo Statement per l'esecuzione della query<br />
            /* ResultSet rs =*/ stmt.executeQuery(query);   // Ottengo il ResultSet dell'esecuzione della query<br />
             v = new Vector();<br />
      //       ResultSetMetaData rsmd = rs.getMetaData();<br />
             //rsmd = rs.getMetaData();<br />
        //     colonne = rsmd.getColumnCount();<br />
    //qualche modifica qui, in modo che si lavori su Vector piuttosto<br />
    //che su String[]<br />
          //   while(rs.next()) {   // Creo il vettore risultato scorrendo tutto il ResultSet<br />
                Vector record = new Vector();<br />
                for (int i=0; i<colonne; i++) {<br />
            //        record.add(rs.getString(i+1));<br />
                }<br />
                v.add(record);<br />
         //    }<br />
        //     rs.close();     // Chiudo il ResultSet<br />
             stmt.close();   // Chiudo lo Statement<br />
          } catch (Exception e) { e.printStackTrace(); errore = e.getMessage(); }</p>
<p>          return v;<br />
       }</p>
<p>   // Esegue una query di aggiornamento sul Database<br />
   // query: una stringa che rappresenta un'istuzione SQL di tipo UPDATE da eseguire<br />
   // ritorna TRUE se l'esecuzione è adata a buon fine, FALSE se c'è stata un'eccezione<br />
   public boolean eseguiAggiornamento(String query) {<br />
      int numero = 0;<br />
      boolean risultato = false;<br />
      try {<br />
         Statement stmt = db.createStatement();<br />
         numero = stmt.executeUpdate(query);<br />
         risultato = true;<br />
         stmt.close();<br />
      } catch (Exception e) {<br />
         e.printStackTrace();<br />
         errore = e.getMessage();<br />
         risultato = false;<br />
      }<br />
      return risultato;<br />
   }<br />
   //metodo aggiunto da me<br />
   public int getRowCount() {</p>
<p>       return cells.length;<br />
       }<br />
   //metodo aggiunto da me<br />
   public int getColumnCount() {</p>
<p>       return columnsName.length;<br />
       }<br />
   //metodo aggiunto da me<br />
   public Object getValueAt(int r, int c)<br />
   {<br />
   return (String)cells[r][c];<br />
   }<br />
   //metodo aggiunto da me<br />
   public String getColumnName(int c)<br />
   {<br />
   return columnsName[c];<br />
   }</p>
<p>   // Chiude la connessione con il Database<br />
   public void disconnetti() {<br />
      try {<br />
         db.close();<br />
         connesso = false;<br />
      } catch (Exception e) { e.printStackTrace(); }<br />
   }</p>
<p>   public boolean isConnesso() { return connesso; }   // Ritorna TRUE se la connessione con il Database è attiva<br />
   public String getErrore() { return errore; }       // Ritorna il messaggio d'errore dell'ultima eccezione sollevata<br />
}</p>
<p>

can you help me???.

some of you have any project of Eclipse with DerbyDB.???????????

excuse me for my english