【发布时间】:2011-02-03 23:44:00
【问题描述】:
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:
}
这是我的插入模块。这适用于我朋友的笔记本电脑。但不是在我的:( 我收到以下错误:
线程“AWT-EventQueue-0”中的异常 java.lang.NullPointerException 在 sample.jButton1ActionPerformed(sample.java:197) 在 sample.access $200(sample.java:20) 在 sample$3.actionPerformed(sample.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);这是第 197 行
-
@enthu:所以当你调用 conn 时它是空的。
-
但在构造函数中,当我调用 getConnection 时,conn 为 != null。我得到对话框说“已连接”..(请查看我的连接代码)