Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    connessione a un database

    Salve, vorrei sapere come effettuare una connessione a un database.

    Il problema e che non riesco a connettermi al driver(non riesco a individuare il mio driver), caricare e ottenere una connessione.

    Mi potete dire per piacere come si effettuano queste operazioni? Grazie mille

  2. #2

  3. #3
    codice:
    
    package database;
    import java.util.*;
    import java.sql.*;
    
    /**
     *
     * @author francesco
     */
    public class Database {
    // JDBC driver name and database URL
       static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
       static final String DB_URL = "jdbc:mysql://localhost:3306/";
    
       //  Database credentials
       static final String USER = "username";
       static final String PASS = "password";
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            // TODO code application logic here
            
            
        Connection conn = null;
       Statement stmt = null;
       try{
          //STEP 2: Register JDBC driver
          Class.forName("com.mysql.jdbc.Driver");
    
          //STEP 3: Open a connection
          System.out.println("Connecting to database...");
          conn = DriverManager.getConnection(DB_URL, USER, PASS);
    
          //STEP 4: Execute a query
          System.out.println("Creating database...");
          stmt = conn.createStatement();
          
          String sql = "CREATE DATABASE STUDENTS";
          stmt.executeUpdate(sql);
          System.out.println("Database created successfully...");
       }catch(SQLException se){
          //Handle errors for JDBC
          se.printStackTrace();
       }catch(Exception e){
          //Handle errors for Class.forName
          e.printStackTrace();
       }finally{
          //finally block used to close resources
          try{
             if(stmt!=null)
                stmt.close();
          }catch(SQLException se2){
          }// nothing we can do
          try{
             if(conn!=null)
                conn.close();
          }catch(SQLException se){
             se.printStackTrace();
          }//end finally try
       }//end try
       System.out.println("Goodbye!");
    }//end main
    }//end JDBCExample

    Ecco i log degli errori:
    codice:
    java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    Goodbye!
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:190)
        at database.Database.main(Database.java:34)
    Qualè il motivo che non carica il driver?

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    442
    che non lo trova...
    hai letto qui?
    http://docs.oracle.com/javase/tutori...ted.html#step3

  5. #5
    Quote Originariamente inviata da Jamie04 Visualizza il messaggio
    Devo installare solamente il Connector/J? Non capisco

  6. #6
    Quote Originariamente inviata da signfra Visualizza il messaggio
    Devo installare solamente il Connector/J? Non capisco
    codice:
    package database;
    import java.util.*;
    import java.sql.*;
    
    /**
     *
     * @author francesco
     */
    public class Database {
    // JDBC driver name and database URL
       static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
       static final String DB_URL = "jdbc:mysql://localhost:3306/";
    
       //  Database credentials
       static final String USER = "username";
       static final String PASS = "password";
        /**
         * @param args the command line arguments
         */
        public static void main(String[] argc)throws SQLException,ClassNotFoundException  {
            // TODO code application logic here
            
            
        Connection conn = null;
       Statement stmt = null;
       try{
          //STEP 2: Register JDBC driver
          Class.forName("com.mysql.jdbc.Driver");
    
          //STEP 3: Open a connection
          System.out.println("Connecting to database...");
          conn = DriverManager.getConnection(DB_URL, USER, PASS);
    
          //STEP 4: Execute a query
          System.out.println("Creating database...");
          stmt = conn.createStatement();
          
          String sql = "CREATE DATABASE STUDENTS";
          stmt.executeUpdate(sql);
          System.out.println("Database created successfully...");
       }catch(SQLException se){
          //Handle errors for JDBC
          se.printStackTrace();
       }catch(Exception e){
          //Handle errors for Class.forName
          e.printStackTrace();
       }finally{
          //finally block used to close resources
          try{
             if(stmt!=null)
                stmt.close();
          }catch(SQLException se2){
          }// nothing we can do
          try{
             if(conn!=null)
                conn.close();
          }catch(SQLException se){
             se.printStackTrace();
          }//end finally try
       }//end try
       System.out.println("Goodbye!");
    }//end main
    }//end JDBCExample
    ;

    Report degli errori
    codice:
    run:
    java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    Goodbye!
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:190)
        at database.Database.main(Database.java:34)
    BUILD SUCCESSFUL (total time: 0 seconds)
    Come mai "com.mysql.jdbc.Driver" è sbagliato? Non capisco

  7. #7
    Quote Originariamente inviata da Jamie04 Visualizza il messaggio
    Ho installato il pacchetto Connector/J. ma da lo stesso errore

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    442
    Quote Originariamente inviata da signfra Visualizza il messaggio
    Ho installato il pacchetto Connector/J. ma da lo stesso errore
    come lo hai installato?
    questo è il mio codice, e funziona


    codice:
    // classi per database
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.sql.ResultSet;
    import java.sql.Statement;
    import java.sql.DatabaseMetaData;
    // classi per leggere file
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.FileNotFoundException;
    // classe per leggere file chiave/valore
    import java.util.Properties;
    
    /**
     * Classe per connettersi a database mysql. Non e' necessario che il database sia 
     * esistente. I parametri per l'accesso devono essere in un file di nome properties.txt
     * nel formato chiave/valore. Si suppone che mysqld sia attivo e funzionante.
     *
     */
    public class DBConnection {
    
        private static Connection connection;
        private static String driver;
        private static String url;
        private static String admin;
        private static String adm_passwd;
        private static String fileName = "properties.txt";
        private static Statement st = null;
        private static ResultSet rs = null;
    
        /**
         * Inizializzatore. Carica e legge il file che contiene proprieta' relative
         * a driver, url, admin, adminpasswd, e carica il driver del database con
         * metodo statico forName della classe Class che rappresenta classi ed
         * interfacce in una applicazione Java. Vengono lanciate eccezioni
         * IOException, FileNotFoundException, ClassNotFoundException
         *
         * @param fileName il nome del file che contiene proprieta' relative a
         * driver, url, admin, adminpasswd
         * @throws java.io.IOException
         * @throws java.io.FileNotFoundException
         * @throws java.lang.ClassNotFoundException
         */
        public static void init(String fileName)
                throws IOException, FileNotFoundException, ClassNotFoundException {
    // predispone lettura da file con chiave/valore
            Properties properties = new Properties();
    // definisce input stream da file
            FileInputStream fileInputStream = new FileInputStream(fileName);
    // associa input stream a istanza Properties
            properties.load(fileInputStream);
    // associa a stringhe i valori ottenuti dal file
            driver = properties.getProperty("driver");
            url = properties.getProperty("url");
            admin = properties.getProperty("admin");
            adm_passwd = properties.getProperty("admin_passwd");
            Class.forName(driver); // carica il driver in memoria
        }
    
        /**
         * (DriverManager) Stabilisce connessione alla base di dati mysql
         *
         * @return
         * @throws java.sql.SQLException
         */
        public static Connection getConnection() throws SQLException {
            return connection = DriverManager.getConnection(url, admin, adm_passwd);
        }
    
        /**
         * Crea il database e le tabelle se non esistenti
         */
        
        public static void createDb() throws SQLException {
            
            st = connection.createStatement();
            int result=st.executeUpdate("CREATE DATABASE IF NOT EXISTS TableManager");
            connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/TableManager", admin, adm_passwd);
            st = connection.createStatement();
    
    (altre istruzioni di creazione tabelle)
           
        }
        
        /**
         * Chiude la connessione alla base di dati mysql
         */
        public static void closeConnection() throws SQLException {
            connection.close();
        }
    }

  9. #9
    Devi caricare il Jar del connector nel progetto come libreria aggiuntiva altrimenti non ti funzionerà.
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  10. #10
    Quote Originariamente inviata da schumy2000 Visualizza il messaggio
    Devi caricare il Jar del connector nel progetto come libreria aggiuntiva altrimenti non ti funzionerà.

    Dopo aver inserito il jar connector ora mi risultano i seguenti errori :

    codice:
    run:
    Connecting to database...
    Creating database...
    com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Access denied for user ''@'localhost' to database 'students'
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    Goodbye!
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
        at com.mysql.jdbc.Util.getInstance(Util.java:386)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1054)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4237)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4169)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2617)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2778)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2828)
        at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1842)
        at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1764)
        at database.Database.main(Database.java:44)
    BUILD SUCCESSFUL (total time: 0 seconds)
    codice:
    package database;
    import java.util.*;
    import java.sql.*;
    
    /**
     *
     * @author francesco
     */
    public class Database {
    // JDBC driver name and database URL
       static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
       static final String DB_URL = "jdbc:mysql://localhost:3306/";
    
       //  Database credentials
       static final String USER = "username";
        /**
         * @param args the command line arguments
         */
        public static void main(String[] argv)throws SQLException,  ClassNotFoundException  {
            // TODO code application logic here
            
            
        Connection conn = null;
       Statement stmt = null;
       try{
          //STEP 2: Register JDBC driver
          Class.forName("com.mysql.jdbc.Driver");
    
          //STEP 3: Open a connection
          System.out.println("Connecting to database...");
          conn = DriverManager.getConnection(DB_URL, USER,"");
    
          //STEP 4: Execute a query
          System.out.println("Creating database...");
          stmt = conn.createStatement();
          
          String sql = "CREATE DATABASE STUDENTS";
          stmt.executeUpdate(sql);
          System.out.println("Database created successfully...");
       }catch(SQLException se){
          //Handle errors for JDBC
          se.printStackTrace();
       }catch(Exception e){
          //Handle errors for Class.forName
          e.printStackTrace();
       }finally{
          //finally block used to close resources
          try{
             if(stmt!=null)
                stmt.close();
          }catch(SQLException se2){
          }// nothing we can do
          try{
             if(conn!=null)
                conn.close();
          }catch(SQLException se){
             se.printStackTrace();
          }//end finally try
       }//end try
       System.out.println("Goodbye!");
    }//end main
    }//end JDBCExample

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.