0

我问这个问题是因为我找不到类似的问题。我最近完成了这个大学项目,在那里我制作了一个连接到数据库的控制台应用程序,一切看起来都很好。我用来连接数据库的方法是这样的:

  private static Connection getConnection()
   {
       Connection connection = null;

       try   
      {
          String dbDirectory = "c:/murach/java/db";
          System.setProperty("derby.system.home", dbDirectory);


        String dbURL = "jdbc:derby:MurachDB2";
        String username = "";
        String password = "";
        connection = DriverManager.getConnection(dbURL, username, password);
        System.out.println("connect works");
        return connection;
      } //end try connection statement

      catch (SQLException e)
    {
        for (Throwable t : e)
        {
            e.printStackTrace();
            System.out.println("something went wrong on connection method");
        } //end for loop for errors
    } // end catch statement for connection error


    return connection;
   } 

正如我在创建控制台应用程序之前所说的,一切似乎都很好,我将其提交。但是,我想尝试一些东西,我想制作这个应用程序的另一个版本,而不是使用 Jform 的 GUI 应用程序。我使用了所有与以前相同的类,除了我使用 jform 代替主类。方法和类完全相同,因为数据库没有更改我文件夹中的位置,但是当我在 Jform 应用程序中运行它时,出现运行时错误。

这是一个空点错误,我知道它与连接到数据库有关,因为我在 catch SQL Exception 中编写了一个 System.out.Println 来通知该方法出现问题。使用控制台应用程序连接到数据库很好,但我的问题是在使用 JFrame 应用程序时是否需要采取任何进一步的措施。有什么我遗漏的或者我需要做的任何额外步骤。对于进一步的措施,我将显示与数据库一起使用的整个类,并且我还将使用 Jframe 中的事件处理程序。

我想明确一点,我不需要这样做。我只是在玩 Java,我可以轻松地不理会它而不会产生任何后果,但我觉得我真的很想学习这个,所以这就是我寻求帮助的原因。任何形式的建议,或者如果你们中的任何人可以让你知道我错过了什么,我将不胜感激。

编辑

添加错误信息

    >java.sql.SQLException: No suitable driver found for jdbc:derby:MurachDB2
something went wrong on connection method
java.lang.NullPointerException
something went from with dislay part
    at java.sql.DriverManager.getConnection(DriverManager.java:689)
    at java.sql.DriverManager.getConnection(DriverManager.java:247)
    at CustomerInvoiceDB.getConnection(CustomerInvoiceDB.java:38)
    at CustomerInvoiceDB.getCustomers(CustomerInvoiceDB.java:67)
    at CutomerInvoice.displayButtonActionPerformed(CutomerInvoice.java:111)
    at CutomerInvoice.access$000(CutomerInvoice.java:24)
    at CutomerInvoice$1.actionPerformed(CutomerInvoice.java:57)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    at java.awt.Component.processMouseEvent(Component.java:6533)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
    at java.awt.Component.processEvent(Component.java:6298)
    at java.awt.Container.processEvent(Container.java:2236)
    at java.awt.Component.dispatchEventImpl(Component.java:4889)
    at java.awt.Container.dispatchEventImpl(Container.java:2294)
    at java.awt.Component.dispatchEvent(Component.java:4711)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
    at java.awt.Container.dispatchEventImpl(Container.java:2280)
    at java.awt.Window.dispatchEventImpl(Window.java:2746)
    at java.awt.Component.dispatchEvent(Component.java:4711)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.awt.EventQueue$4.run(EventQueue.java:731)
    at java.awt.EventQueue$4.run(EventQueue.java:729)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
4

0 回答 0