2014-01-14 3 views
-1

Я новичок в Netbeans. Я пытаюсь создать новый проект по управлению магазинами Netbeans и mysql workbench в качестве моей базы данных. Но я сталкиваюсь с проблемой подключения базы данных. Здесь мои коды приведены:Ошибка Java Netbeans DB Ошибка

enter code here 
package MyDb.utils; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.SQLException; 
import java.util.logging.Level; 
import java.util.logging.Logger; 



public class DbConnection { 
    private static Connection conn=null; 
    static{ 
     Throwable e = null; 
     try { 
      Class.forName("com.mysql.jdbc.Driver"); 
      try { 
       System.out.println("Connecting Database!!"); 
       conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/GanpatiDB","root",""); 
       System.out.println(""); 
      } catch (SQLException ex) { 
       throw new RuntimeException("Cannot connect the database!", e); 
      } 
     } catch (ClassNotFoundException ex) { 
      Logger.getLogger(DbConnection.class.getName()).log(Level.SEVERE, null, e); 
      System.out.println("Terminating application...check database"); 
      System.exit(0); 
     } 
     finally { 
    System.out.println("Closing the connection."); 

} 
    } 
    private static Object connection; 


public DbConnection(){ 

    } 
    public static Connection getConnection(){ 
     return conn; 
    } 
    public static void closeConnection() throws Exception{ 

     conn.close(); 
    } 


} 

После отладки проекта консоль дает результат в виде

BUILD УСПЕШНОГО (общее время: 0 секунд) Но все же показывает некоторые ошибки, как показано ниже:

Jan 14, 2014 1:47:13 PM MyDb.utils.DbConnection <clinit> 
Terminating application...check database 
SEVERE: null 
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Access denied for user ''@'localhost' to database 'GanpatiDB[root on Default schema]' 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
    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:409) 
    at com.mysql.jdbc.Util.getInstance(Util.java:384) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1054) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3566) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3498) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:919) 
    at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:4004) 
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1284) 
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2312) 
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2122) 
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:774) 
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:49) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
    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:409) 
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:375) 
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:289) 
    at java.sql.DriverManager.getConnection(DriverManager.java:571) 
    at java.sql.DriverManager.getConnection(DriverManager.java:233) 
    at MyDb.utils.DbConnection.<clinit>(DbConnection.java:20) 
    at desktopapplication1.NewJFrame.<init>(NewJFrame.java:27) 
    at desktopapplication1.NewJFrame$2.run(NewJFrame.java:199) 
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251) 
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733) 
    at java.awt.EventQueue.access$200(EventQueue.java:103) 
    at java.awt.EventQueue$3.run(EventQueue.java:694) 
    at java.awt.EventQueue$3.run(EventQueue.java:692) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) 
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:703) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) 
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:91) 
+0

любое соединение с базой данных не является бизнесом IDE, IDE - это просто платформа для кодирования и компиляции, которая не будет компилировать сам код. – Rugal

+0

Можете ли вы направить меня на получение разрешения – AM26

+0

, поскольку ошибка вызвала 'MySQLSyntaxErrorException', пожалуйста, проверьте синтаксис соединения – Rugal

ответ

0

билд показывает вверх как успешно по уважительной причине: вы улавливаете фактическую ошибку и делающее заявлению LOG себя:

catch (ClassNotFoundException ex) {
Logger.getLogger(DbConnection.class.getName()).log(Level.SEVERE, null, e);
System.out.println("Terminating application...check database");
System.exit(0);
}

Потому что поймать ошибку, код выполняется, как ожидалось (если вы хотите, чтобы показать, как потерпели неудачу, вы должны изменить параметр System.exit -1).

Ошибка, которую вы поймаете, это ClassNotFoundException, Java, похоже, не может найти драйвер MySQL, который вы пытаетесь найти, используя Class.forName("com.mysql.jdbc.Driver");. Если вы посмотрите на журналы, то вообще не упоминается о драйвере, который, похоже, поддерживает эту теорию.

+0

Спасибо, мое соединение с базой данных завершено, но теперь возникает другая ошибка: «Исключение в потоке» AWT-EventQueue-0 »java.lang.ExceptionInInitializerError \t at desktopapplication1.NewJFrame. (NewJFrame.java:27) \t at desktopapplication1.NewJFrame $ 2.run (NewJFrame.java:199) " – AM26

+0

Извините, для этого недостаточно информации для работы. Мне кажется, что ваш JFrame имеет неисправный прослушиватель событий или что-то в его методе init. – gpgekko

Смежные вопросы