Consenso all'uso dei cookies

SITO1 -- SITO2 -- Forum1 -- CercaGlobale -- Informativa su Cookie e Privacy


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
JAVA - uso di database access
#1
Ho scaricato i driver UCanAccess-4.0.4-bin, ho aperto un nuovo progetto, clic destro sul nome, proprietà, librerie, come in allegato, poi ho provato questo semplicissimo codice di connessione, non ottengo errori in compilazione ma la connessione non avviene
Codice:
package dbaccess;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;

public class DBaccess {
   public static void main(String[] args) throws SQLException {
        try{
             Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");//Loading Driver
             Connection connection= DriverManager.getConnection("jdbc:ucanaccess://F:\\Documenti\\NetBeansProjects\\DBaccess\\rubri.accdb");//Establishing Connection
             System.out.println("Connected Successfully");

         }catch(Exception e){
             System.out.println("Error in connection");

         }
   }
   
}


Allegati Anteprime
   
Cita messaggio
Grazie da:
#2
Mi sembra che manchi un .jar, vedi qui
https://stackoverflow.com/questions/2195...7#21955257
Il mio blog: ZEROZEROCENT.BLOGSPOT.COM
LEGGE DI MURPHY: SE QUALCOSA PUO' ANDAR MALE, LO FARA'
VERSIONE QUANTISTICA DELLA LEGGE DI MURPHY: TUTTO VA MALE CONTEMPORANEAMENTE
Cita messaggio
Grazie da:
#3
Grazie, ora funziona, però questo è solo il primo passo, voglio arrivare a visualizzarlo in una jtable, ci risentiremo presto
Cita messaggio
Grazie da:
#4
ho risolto così:
Codice:
package DbToTable;

import java.awt.*;
import java.io.*;
import java.sql.*;
import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
import javax.swing.table.*;

public class DbToTable extends JFrame{
public DbToTable() {
Vector columnNames = new Vector();
Vector data = new Vector();

try {
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");//Loading Driver
Connection connect =DriverManager.getConnection("jdbc:ucanaccess://rubri.accdb");

String sql = "Select * from db1";
Statement stmt = connect.createStatement();
ResultSet rs = stmt.executeQuery( sql );
ResultSetMetaData md = rs.getMetaData();
int columns = md.getColumnCount();
for (int i = 1; i <= columns; i++) {
columnNames.addElement( md.getColumnName(i) );
}
while (rs.next()) {
Vector row = new Vector(columns);
for (int i = 1; i <= columns; i++) {
row.addElement( rs.getObject(i) );
}
data.addElement( row );
}
rs.close();
stmt.close();
}
catch(Exception e) {
System.out.println( e );
}
JTable table = new JTable(data, columnNames);

JScrollPane scrollPane = new JScrollPane( table );
getContentPane().add( scrollPane );

JPanel buttonPanel = new JPanel();
getContentPane().add( buttonPanel, BorderLayout.SOUTH );
}
public static void main(String[] args)
{


DbToTable frame = new DbToTable();
frame.setDefaultCloseOperation( EXIT_ON_CLOSE );
frame.pack();
frame.setTitle("Rubrica");
frame.setVisible(true);
}
}
ma come si fa a salvare sul DB le modifiche fatte alla tabella ?
Cita messaggio
Grazie da:
#5
mmmh
le Jtable sarebbe meglio usarle solo in visualizzazione, le celle contengono stringhe mentre dal database in genere visualizzi anche altri tipi di dato (per es. numeri). Ti sconsiglierei di fare le modifiche direttamente da lì.
Inoltre una tabella ottenuta da db è la "traduzione visiva" di una query SQL, nel senso che alla tabella visualizzata non corrisponde necessariamente un tabella reale sul database (vedi per esempio il caso del join tra più tabelle di db).
Se la corrispondenza è 1:1 (tabella visualizzata esattamente coincidente con tabella database) prova a mettere un pulsante <Update> che, selezionata na riga, esegue l'update del db con un comando SQL e facendo prima le eventuali conversioni di tipo. Quando funziona su una riga, te lo puoi fare su tutta la tabella.
Il mio blog: ZEROZEROCENT.BLOGSPOT.COM
LEGGE DI MURPHY: SE QUALCOSA PUO' ANDAR MALE, LO FARA'
VERSIONE QUANTISTICA DELLA LEGGE DI MURPHY: TUTTO VA MALE CONTEMPORANEAMENTE
Cita messaggio
Grazie da:
#6
non c'è in java un qualcosa che corrisponda al binding di vb.net che ciò che modifichi nella tabella si riflette sul db ?
Cita messaggio
Grazie da:
#7
non lo so, probabilmente c'è ma non so come si fa
ho sempre fatto le modifiche via SQL,
Il mio blog: ZEROZEROCENT.BLOGSPOT.COM
LEGGE DI MURPHY: SE QUALCOSA PUO' ANDAR MALE, LO FARA'
VERSIONE QUANTISTICA DELLA LEGGE DI MURPHY: TUTTO VA MALE CONTEMPORANEAMENTE
Cita messaggio
Grazie da:


Vai al forum:


Utenti che stanno guardando questa discussione: 1 Ospite(i)