Newsgroup: it.comp.java
Titolo: Vi prego aiutatemi a connettermi a un db

Ciao.
Il mio dubbio è il seguente...
Ho creato un Jframe contenente un jpanel con al suo interno alcune caselle
di testo e un pulsante (inserisci).
Voglio che premendo il pulsante venga inserito in una tabella di un database
access questo articolo.
Ho quindi la classe buttonAction che implementa ActionListener che ha al suo
interno la funzione ActionPerformed in cui io devo richiamare la connessione
al db e l'inserimento dei dati. Non ho problemi nel prendere i dati dalle
caselle di testo e passarli come stringhe ma essendo neofita di Java non
capisco come devo gestire l'inserimanto dei dati...
Scrivo una classe insertData e faccio per es. insertData data=new insertData
(valori delle textfield) e poi nel file dove avevo la button action metto il
testo della classe insertData??? Per ora mi basta sapere come gestire la
chiamata alla connessione al db (per inserire nel db ho un libro da cui ho
capito abbastanza ma  appunto manca il collegamento al db).
Grazie
Paolo

 capito abbastanza ma  appunto manca il collegamento al db).
[
http://www.mokabyte.it/2001/11/webapp2.htm
]
Dai un'occhiata qui, dovrebbe fare al caso tuo...
In particolare penso che dovresti fare in modo che il costruttore 
della tua InsertData - dopo aver effettuato la connessione al DB
- effettui una INSERT in SQL (tramite il metodo
 executeUpdate della classe Statement) passandogli come parametri le 
stringhe passate al costruttore.
Spero di essere stato chiaro se no fammi sapere...
Per spiegazioni sui costrutti SQL puoi guardare 
www.sqltutorial.it
.
Ciao
Maurizio
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Paolo
Ho provato a risponderti ma ancora non vedo nulla, quindi riposto, dai 
un'occhiata a
http://www.mokabyte.it/2001/11/webapp2.htm
qui c'è una spiegazione passo-passo su come connetterti e effettuare
un piccolo inserimento.


Innanzitutto grazie mille per l'aiuto! (Scusa ma ero lontano dal pc in
precedenza)
Ho guardato il link che mi hai suggerito e sinceramente mi sembra di fare le
stesse cose....
Ora cerco di mettere bene a fuoco i miei errori e poi mi farň risentire in
modo piů preciso se possibile.
Grazie ancora

Allora dopo lunghi impazzimenti ho cercato di attuare la seguente
risoluzione...
ho creato una classe separata (con un nuovo file java nel pacchetto) che ho
chiamato dbconnetti e che fa solo la connessione al db.
A questo punto dalla funzione ActionListener quando premo il pulsante
inserisci voglio prima richiamare la connessione e poi invocare una funzione
che inserisca i dati racchiusi nei textfield del jpanel compilato
dall'utente.
Il mio problema è, penso, limitato alla chiamata della classe dbconnetti e
alla funzione insertData. In particolare io scriverei:
dbconnetti db1=new dbconnetti;
Insert_Data(db1, txt1, txt2, txt3); /*dove txtx sono il contenuto delle
txtfield e db1 la connessione al db
Per chiarezza riporto il codice della classe dbconnetti
import java.sql.*;
public class dbconnetti{
    public Connection connection;
    public String url;
    public dbconnetti() {
        try{
            url = "jdbc:odbc:Condominio";
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            //connection = DriverManager.getConnection( url );
        } catch (ClassNotFoundException cnfex) {
            System.out.println("Errore nel caricamento del driver");
        }
        /*catch (SQLException sqlex) {
            System.out.println("Errore nella creazione della connessione");
        }*/
        rest_conn();
    } // end of constructor
     public void rest_conn() {
         try {
            connection = DriverManager.getConnection( url );
         } catch (SQLException sqlex) {
            System.out.println("Errore nella creazione della connessione");
        }
     }
} // end of class
A questo punto io scrivo la funzione InsertData e mi serve utilizzare
connection perchè sia dai libri in mio possesso che da internet quando
voglio fare un'operazione di scrittura su db la prima istruzione è
Statement stat = connection.createStatement();
Secondo me all'interno di questa funzione io devo riferirmi a connection
come db1.connection.createStatement();
E' corretto???
Io quindi continuerei con le istruzioni
String sqlCommand="INSERT INTO ListaCondomini VALUES (" + txt1," + "'txt2,"
+ "txt3," + ")";
E' corretta... il sito 
sqltutorial.it
 è irraggiungibile e non sono certo
della correttezza della sintassi della stringa sqlCommand
Infine
stat.executeUpdate(sqlCommand);
Pensate sia sulla buona strada??
Vi prego aiutatemi, e ancora grazie a chi lo ha già fatto

In particolare va in errore la connessione perchè viene eseguita l'eccezione
'errore nella creazione della connessione' che è nella classe dbconnetti
Poi di conseguenza va in errore anche l'insertData perchè penso manchi la
connessione e non per altri problemi.
Eppure il mio condominio.mdb è nella stessa cartella del progetto....
Come faccio a farglielo prendere???
Ciao e ancora grazie
Paolo
riposto il pezzo di codice della classe dbconnetti
   public ConnettiDB() {
        try{
            url = "jdbc:odbc:Condominio";
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            //connection = DriverManager.getConnection( url );
        } catch (ClassNotFoundException cnfex) {
            System.out.println("Errore nel caricamento del driver");
        }


Problema risolto ma nuovi imprevisti
Ho iniziato un nuovo thread per maggiore chiarezza!
Grazie a chi ha prestato attenzione aimiei post fin qua!
Ciao
Paolo

access questo articolo.
[CUT]
Per una guida passo-passo sulla connessione a database, puoi guardare
http://java.sun.com/docs/books/tutorial/jdbc/basics/index.html
HTH
-- 
Ciao
	Fabrizio C.