您好,我正在创建一个小应用程序,我想在其中注册用户到数据库。看起来不错,但是它告诉我我的驱动程序有问题,我无法发现它。
我的代码:
private void createEventListenerDBProperties() {
dbSubmitBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (dbDriverChooser.getSelectedItem().equals("com.mysql.jdbc.Driver")) {
driver = (String) dbDriverChooser.getSelectedItem();
port = dbPortField.getText();
host = "jdbc:mysql://" + hostField.getText() + ":" + port + "/";
} else if (dbDriverChooser.getSelectedItem().equals("oracle.jdbc.driver.OracleDriver")) {
driver = (String) dbDriverChooser.getSelectedItem();
port = dbPortField.getText();
host = "jdbc:oracle:thin:@" + hostField.getText() + ":" + port + ":";
} else if (dbDriverChooser.getSelectedItem().equals("org.postgresql.Driver")) {
driver = (String) dbDriverChooser.getSelectedItem();
port = dbPortField.getText();
host = "jdbc:postgresql://" + hostField.getText() + ":" + port + "/";
} else {
driver = (String) dbDriverChooser.getSelectedItem();
host = "jdbc:sqlite:";
}
db = dbnameField.getText();
dbuser = dbUsernameField.getText();
dbpassword = new String(dbPasswordField.getPassword());
main.remove(dbProperties);
main.add(register);
main.revalidate();
}
});
}
我的连接方法:
private Connection instanciateDB() {
Connection con = null;
try {
Class.forName(driver).newInstance();
con = DriverManager.getConnection(host + db, dbuser, dbpassword);
System.out.println("Connection Established");
} catch (ClassNotFoundException | SQLException | InstantiationException |IllegalAccessException e) {
System.out.println("Connection not Established");
JOptionPane.showMessageDialog(MainFrame.this, e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
}
return con;
}
我的注册方法:
private void setupRegisterEventListener() {
registerBtn.addActionListener((ActionEvent e) -> {
try {
conn = instanciateDB();
pst = conn.prepareStatement("insert into usersinfo(username, password) values(?,?)");
pst.setString(1, leftFirstText);
pst.setString(2, new String(leftSecondText));
int x = pst.executeUpdate();
} catch (SQLException ex) {
JOptionPane.showMessageDialog(MainFrame.this, "Registration Failed");
System.out.println(ex.getMessage());
}
JOptionPane.showMessageDialog(MainFrame.this, "Registration Successful", "Success", JOptionPane.PLAIN_MESSAGE);
});
}
它给了我错误com.mysql.jdbc.Driver
,我不知道为什么使用instanciateDB方法。
Connection not Established
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at ijae4.xdrako00.MainFrame.lambda$setupRegisterEventListener$0(MainFrame.java:126)
at ijae4.xdrako00.MainFrame$$Lambda$13/1389133897.actionPerformed(Unknown Source)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
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:6525)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6290)
at java.awt.Container.processEvent(Container.java:2234)
at java.awt.Component.dispatchEventImpl(Component.java:4881)
at java.awt.Container.dispatchEventImpl(Container.java:2292)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
at java.awt.Container.dispatchEventImpl(Container.java:2278)
at java.awt.Window.dispatchEventImpl(Window.java:2739)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746)
at java.awt.EventQueue.access$400(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:697)
at java.awt.EventQueue$3.run(EventQueue.java:691)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:719)
at java.awt.EventQueue$4.run(EventQueue.java:717)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:716)
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)
有任何想法吗?
先感谢您!
右键单击库->添加库-> MySql JDBC驱动程序-这些是Netbeans IDE的步骤
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句