没有用户名和密码的derby数据库连接

时间:2016-08-12 14:44:39

标签: java sql database netbeans derby

我在Netbeans中创建了一个derby数据库,并决定避免使用用户名和密码,这样我就不会冒险忘记它(这是我的错误)。

花了很多时间在net bean中创建我的项目,将我的数据库链接到各种表等。我无法获得下面的代码连接到数据库。有没有办法在没有密码或用户名的情况下使用代码进行连接?或者我可以添加一些用户名和密码吗?

public class Database {   

private String DBusername = "";
private String DBpassword = "";
private String host = "jdbc:derby://localhost:1527/physioADB";

public Database(){

}

public Connection con() {


    try {

        Connection c = DriverManager.getConnection(host, DBusername, DBpassword);

        return c;
    } catch (SQLException e) {
        System.out.println(e);
        System.out.println("Faild to connect to database");
        return null;

    }
}

public void update(String update) {

    try {
        con().createStatement().executeUpdate(update);
        con().close();


    } catch (SQLException ex) {
        ex.printStackTrace();
    }

}
static ResultSet rs;

public ResultSet Query(String SQL) {

    try {
        rs = con().createStatement().executeQuery(SQL);
        con().close();

    } catch (SQLException ex) {
        Logger.getLogger(Database.class.getName()).log(Level.SEVERE, null, ex);
        JOptionPane.showMessageDialog(null, "Unfortunatly an error occured and the database could not be reached");
    }
    return rs;
}

}

我得到的错误是:

  

java.sql.SQLNonTransientConnectionException:用户ID长度(0)是   超出1到255的范围。线程“AWT-EventQueue-0”中的异常   java.lang.NullPointerException用于连接数据库的Faild   physioasist.Database.update(Database.java:49)at   physioasist.ClientsScreen.btnUpdateActionPerformed(ClientsScreen.java:787)     at physioasist.ClientsScreen.access $ 200(ClientsScreen.java:15)at   physioasist.ClientsScreen $ 3.actionPerformed(ClientsScreen.java:272)     在   javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)     在   javax.swing.AbstractButton中的$ Handler.actionPerformed(AbstractButton.java:2341)     在   javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)     在   javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)     在   javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)     在java.awt.Component.processMouseEvent(Component.java:6516)at   javax.swing.JComponent.processMouseEvent(JComponent.java:3321)at   java.awt.Component.processEvent(Component.java:6281)at   java.awt.Container.processEvent(Container.java:2229)at   java.awt.Component.dispatchEventImpl(Component.java:4872)at   java.awt.Container.dispatchEventImpl(Container.java:2287)at   java.awt.Component.dispatchEvent(Component.java:4698)at   java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)     在   java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)     at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)     在java.awt.Container.dispatchEventImpl(Container.java:2273)at   java.awt.Window.dispatchEventImpl(Window.java:2719)at   java.awt.Component.dispatchEvent(Component.java:4698)at   java.awt.EventQueue.dispatchEventImpl(EventQueue.java:747)at at   java.awt.EventQueue.access $ 300(EventQueue.java:103)at   java.awt.EventQueue $ 3.run(EventQueue.java:706)at   java.awt.EventQueue $ 3.run(EventQueue.java:704)at   java.security.AccessController.doPrivileged(Native Method)at   java.security.ProtectionDomain $ 1.doIntersectionPrivilege(ProtectionDomain.java:76)     在   java.security.ProtectionDomain $ 1.doIntersectionPrivilege(ProtectionDomain.java:87)     在java.awt.EventQueue $ 4.run(EventQueue.java:720)at   java.awt.EventQueue $ 4.run(EventQueue.java:718)at   java.security.AccessController.doPrivileged(Native Method)at   java.security.ProtectionDomain $ 1.doIntersectionPrivilege(ProtectionDomain.java:76)     在java.awt.EventQueue.dispatchEvent(EventQueue.java:717)at   java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)     在   java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)     在   java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)     在   java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)     在   java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)     at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

我不是很熟练,这是一个学校项目,我在网上寻找答案,但我找不到类似的问题。

1 个答案:

答案 0 :(得分:0)

创建数据库时显然存在使用空白用户名的错误(我发现其中一个页面说这是MySQL错误,而不仅仅是Apache / JavaDB)。我发现的几个选项:

  1. 修复数据库配置,该配置是NetBeans左侧“项目”选项卡中persistence.xmlMETA-INF文件夹中的Source Packages文件夹中的{printf("%d ", aRRay[r][c]); }文件。 this answer中的更多信息,您需要在此处将空白的用户名和密码设置为使用中的模式的名称(默认情况下可能为“ APP”)。
  2. 您可以从头开始,但这意味着一切,而不仅仅是数据库。我尝试只是重建数据库,但对我却不起作用-它仍然具有先前数据库中的信息,我相信在项目中,该信息并没有清除。我之所以知道是因为我对新数据库的命名略有不同。