gpt4 book ai didi

java - JDBC ODBC ..(线程 "AWT-EventQueue-0"java.lang.NullPointerException 中出现异常)

转载 作者:行者123 更新时间:2023-12-01 19:23:43 25 4
gpt4 key购买 nike

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
PreparedStatement p1;
try {
System.out.println("works");
String s1="insert into reg(num,name) values(?,?)";
p1 = conn.prepareStatement(s1);
System.out.println("Works");
JOptionPane.showMessageDialog(this, "Statement prepared");

p1.setString(1,num.getText());
p1.setString(2, name.getText());
p1.executeUpdate();
JOptionPane.showMessageDialog(this, "Inserted");
}
catch (SQLException ex) {
JOptionPane.showMessageDialog(this, "NOT Inserted");
Logger.getLogger(sample.class.getName()).log(Level.SEVERE, null, ex);
}

// TODO add your handling code here:
}

这是我的插入模块。它适用于我 friend 的笔记本电脑。但不是我的:(我收到以下错误:

线程“AWT-EventQueue-0”中出现异常 java.lang.NullPointerException 在sample.jButton1ActionPerformed(sample.java:197) 在样本.access$200(样本.java:20) 在样本$3.actionPerformed(样本.java:92) 在javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) 在 javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) 在javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) 在 javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) 在javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) 在 java.awt.Component.processMouseEvent(Component.java:6263) 在 javax.swing.JComponent.processMouseEvent(JComponent.java:3267) 在 java.awt.Component.processEvent(Component.java:6028) 在 java.awt.Container.processEvent(Container.java:2041) 在 java.awt.Component.dispatchEventImpl(Component.java:4630) 在 java.awt.Container.dispatchEventImpl(Container.java:2099) 在 java.awt.Component.dispatchEvent(Component.java:4460) 在java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574) 在java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238) 在java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168) 在 java.awt.Container.dispatchEventImpl(Container.java:2085) 在 java.awt.Window.dispatchEventImpl(Window.java:2478) 在 java.awt.Component.dispatchEvent(Component.java:4460) 在 java.awt.EventQueue.dispatchEvent(EventQueue.java:599) 在java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) 在 java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) 在java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) 在java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) 在java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) 在 java.awt.EventDispatchThread.run(EventDispatchThread.java:122)Java 结果:1

PS:我对java完全陌生。是我的 ODBC 有问题吗?

在构造函数中创建连接(sample()):

public sample() {
initComponents();
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException ex)
{
JOptionPane.showMessageDialog(this, "Error!");
}


try
{
Connection conn=DriverManager.getConnection("jdbc:odbc:reg","system","suganthi");
if(conn!=null)
JOptionPane.showMessageDialog(this, "Connected!");
}
catch(SQLException ex)
{

System.out.println("Error");
}
}

最佳答案

编辑:您仍然没有指出问题中的第 197 行,但我假设它是

p1 = conn.prepareStatement(s1);

这几乎肯定是由于构造函数的这一点造成的:

Connection conn=DriverManager.getConnection("jdbc:odbc:reg","system","suganthi");

这声明了一个名为 conn本地变量。想必您还有一个名为 conn实例变量,但局部变量隐藏了它。您正在分配给局部变量,这意味着实例变量将保持其默认值 null。您的意思可能只是:

conn = DriverManager.getConnection("jdbc:odbc:reg","system","suganthi");

但是,如果发生异常,您不应该只打印“Error”并继续...您应该从构造函数中抛出异常。毕竟,除非您有数据库连接,否则实例将无法正常运行。

您还应该考虑仅在实际需要时创建数据库连接,并在之后立即关闭它。使用连接池可以在适当的情况下提高效率。

<小时/>

原始答案

您还没有显示引发异常的代码位 - 即 jButton1ActionPerformed,其中第 197 行是罪魁祸首。您已经向我们展示了 jButton3ActionPerformed

向我们展示正确的代码片段以及行号,我们更有可能为您提供帮助。或者只是看看第 197 行使用的内容 - 某些内容会导致您尝试取消引用的空引用,例如

int foo = someNullValue.getIntValue();

它可能是方法调用的结果,例如

foo().getIntValue(); // Will throw if `foo()` returns null

顺便说一句,在 UI 线程中执行数据库工作通常不是一个好主意 - 尽管作为初学者,正确执行此操作并在数据库访问期间忍受 UI 挂起可能比正确执行多线程更简单。不过,当您有更多经验时,您应该考虑稍后正确地线程化它。

关于java - JDBC ODBC ..(线程 "AWT-EventQueue-0"java.lang.NullPointerException 中出现异常),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2571026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com