Newsgroup: it.comp.java
Titolo: JDBC: connessione al database

  |
|  Delete WORLD from address, to send |
+-------------------------------------+

 proprio capito come connettermi al database.
Vedi articolo su 
www.soft-land.org
Davide

 wrote in message news:3c397...@212.7.64.37...

Ti invio una classe in java per accedere ad un db access.
************************************* INIZIO
*************************************
import java.util.Vector;
import java.sql.Connection;
import java.sql.*;
public class Access
{
        public  Connection        conn = null;
        public  Statement         stat = null;
        public  ResultSet         rset = null;
        public  ResultSetMetaData meta = null;
 
 
        public Access( String DSNName, String user, String password )
        {
                try
                {
						DSNName = "jdbc:odbc:" + DSNName;
 
					    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
 
						System.out.println("Apertura connessione database in corso...");
 
					    conn = DriverManager.getConnection(DSNName, user, password);
                        stat = conn.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
													 ResultSet.CONCUR_UPDATABLE );
 
						System.out.println("fatto!");
                		System.out.println("");
                }
                catch (ClassNotFoundException ex)
                {
                        System.err.println("Impossibile trovare i driver di
connessione.");
                        System.err.println(ex);
						System.err.println("");
				}
                catch (SQLException ex)
                {
                        System.err.println("Impossibile connettersi al
database.");
                        System.err.println(ex);
						System.err.println("");
				}
        }
 
        public boolean isConnected()
        {
                if ((conn == null) && (stat == null))
                        return false;
                else
                        return true;
        }
 
        public ResultSet executeQuery( String query )
        {
                if (conn == null)
                {
                        System.out.println("Impossibile eseguire la query.
Connessione non presente.");
                        System.out.println("");
                        return null;
                }
                else if (stat == null)
                {
                        System.out.println("Impossibile eseguire la query.
Database non presente.");
                        System.out.println("");
                        return null;
                }
 
                try
                {
                        System.out.println("Esecuzione query in corso...");
 
                        rset = stat.executeQuery( query );
 
						System.out.println("...fatto!");
						System.out.println("");
                        return rset;
                }
                catch (SQLException ex)
                {
                        System.err.println("Impossibile eseguire la query.");
                        System.err.println(ex);
                        System.err.println("");
                        return null;
                }
        }
 
        public int executeUpdate( String query )
        {
                if (conn == null)
                {
                        System.out.println("Impossibile eseguire la query.
Connessione non presente.");
                        return -1;
                }
                else if (stat == null)
                {
                        System.out.println("Impossibile eseguire la query.
Database non presente.");
                        return -1;
                }
 
                try
                {
                        System.out.println("Esecuzione query in corso...");
                        int iRec = stat.executeUpdate( query );
                        System.out.println("...fatto!");
                        System.out.println("");
                        return iRec;
                }
                catch (SQLException ex)
                {
                        System.err.println("Impossibile eseguire la query.");
                        System.err.println(ex);
                        System.err.println("");
                        return -1;
                }
        }
        public ResultSetMetaData getInfo()
        {
                if ((conn == null) && (stat == null) && (rset == null))
                        return null;
                else
                {
                        try
                        {
                                System.out.println("Prelievo informazioni
database in corso....");
                                meta = rset.getMetaData();
                        		System.out.println("fatto!");
                        		System.out.println("");
 
								return meta;
                        }
                        catch (SQLException ex)
                        {
                                System.err.println("Impossibile prelevare
informazioni del database.");
                                System.err.println(ex);
                                System.err.println("");
                                return null;
                        }
                }
        }
		public void close()
		{
				try
				{
						System.out.println("Chiusura connessione database in corso...");
						rset.close();
						stat.close();
						conn.close();
						System.out.println("...fatto!");
						System.out.println("");
				}
				catch (SQLException ex)
				{
				        System.err.println("Impossibile chiudere il database.");
				        System.err.println(ex);
						System.err.println("");
				}
		}
		protected void finalize() throws Throwable
		{
				//close();
				super.finalize();
		}
}
************************************* FINE
*************************************
Si usa cosi':
DB = new Access("AliasDB", "username", "password");
ResultSet rs1 = DB.executeQuery(  "SELECT * FROM TABELLA" );
ResultSet rs2 = DB.executeUpdate( "DELETE   FROM TABELLA" );
Ciao Luigi ;)
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG


Su "Thinking in java" ci dovrebbe essere un esempio di collegamento a DB
access
Se ancora non hai il libro scaricalo da qua, ti tornerà sicuramente utile
http://www.mindview.net/Books/TIJ/
Ciao
--
Massimo Zanette
http://massimozanette.it
 ....non appena ci metto qualcosa :)

> Ti invio una classe in java per accedere ad un db access.
Innanzitutto grazie per il disturbo. Ho provato la classe e funziona.
Ho però un problema e volevo sapere se c'è soluzione.
Ho creato un piccolo database di prova. La mia versione di Access è la XP,
ma il formato è quello di 2000.
Se creo lo statement con il flag ResultSet.CONCUR_UPDATABLE (come c'è nel
tuo codice), nel momento in cui richiamo la executeQuery mi spara questa
eccezione: "Caratteristica opzionale non implementata".
Per far funzionare il tuo codice devo mettere ResultSet.CONCUR_READ_ONLY ma
temo che così facendo non riesca a fare modifiche sul database.


Da cosi' 
stat = conn.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE );
fai cosi'
stat = conn.createStatement();


 stat = conn.createStatement();
Non funziona. Ho provato di tutto ma le uniche query che riesce a fare sono
le "CREATE TABLE" e le "SELECT".
Se faccio query di inserimento o modifica, mi da sempre questo errore:
java.sql.SQLException: [Microsoft][Driver ODBC Microsoft
Access]Caratteristica opzionale non implementata
Da notare che se creo lo statement con  createStatement()  non mi da nessun
errore ma le query non hanno effetto.
Aiuto!!


Ma usi executeQuery per le Select 
ed executeUpdate per gli Insert,Update,Delete,Create, ecc?!?


 ed executeUpdate per gli Insert,Update,Delete,Create, ecc?!?
Sě, ma non c'č verso di farle funzionare.
Per il momento ho risolto usando un altro DBMS: HyperSonicSQL (vedi thread
"Archivi senza DataBase").
