java—我想在编写的查询中,将id与搜索到的文本对应起来尝试获取id时出现“nullpointerexception”错误

ej83mcc0  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(243)

当我在搜索栏中输入文本并单击搜索按钮时,我试图在数据库中调出与此搜索文本相对的id。但我错了。查询工作正常。我正在尝试获取与此照片类似的值4。我显示了我得到的错误,我的查询正在数据库中运行,以及单击搜索按钮时会发生什么。

  1. private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
  2. try {
  3. String searchKey = txtSearch.getText().toLowerCase();
  4. Connection connection;
  5. DbHelper dbHelper = new DbHelper();
  6. connection = dbHelper.getConnection();
  7. ResultSet resultSet;
  8. PreparedStatement statement =null;
  9. String sql ="select * from cities where city_name = '"+searchKey+"'";
  10. System.out.println(sql);
  11. resultSet= statement.executeQuery(sql);
  12. int id = resultSet.getInt("city_id");
  13. System.out.println(id);
  14. model = (DefaultTableModel)tblcinema.getModel();
  15. model.setRowCount(0);
  16. ArrayList <Sinemalar> sinemalar = getSinemalar(id);
  17. for (Sinemalar sinema : sinemalar){
  18. Object [] row={sinema.getCinema_id(),sinema.getCinema_name(),sinema.getCinema_adress()};
  19. model.addRow(row);
  20. }
  21. } catch (SQLException ex) {
  22. System.out.println(ex.getMessage());
  23. }
  24. }

  1. run:
  2. select * from cities where city_name = 'denizli'
  3. Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
  4. at Uye.Anasayfa.jButton2ActionPerformed(Anasayfa.java:308)
  5. at Uye.Anasayfa$3.actionPerformed(Anasayfa.java:123)
  6. at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
  7. at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
  8. at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
  9. at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
  10. at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
  11. at java.desktop/java.awt.Component.processMouseEvent(Component.java:6636)
  12. at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
  13. at java.desktop/java.awt.Component.processEvent(Component.java:6401)
  14. at java.desktop/java.awt.Container.processEvent(Container.java:2263)
  15. at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5012)
  16. at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
  17. at java.desktop/java.awt.Component.dispatchEvent(Component.java:4844)
  18. at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4919)
  19. at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4548)
  20. at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4489)
  21. at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
  22. at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2764)
  23. at java.desktop/java.awt.Component.dispatchEvent(Component.java:4844)
  24. at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
  25. at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
  26. at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
  27. at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
  28. at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
  29. at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
  30. at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
  31. at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
  32. at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
  33. at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
  34. at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
  35. at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
  36. at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
  37. at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
  38. at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
  39. at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
  40. at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
  41. BUILD SUCCESSFUL (total time: 11 seconds)
cuxqih21

cuxqih211#

进一步说明我的意见:
很明显,有两行声明preparedstatement=null;然后尝试使用第308行仍然为空的语句。。。很明显它还是空的,你还没有声明它是其他的
你应该这样做(注意我宣布 PreparedStatementquery 通过 conenction 然后打电话 executeQuery() 无参数):

  1. PreparedStatement statement = connection.prepareStatement(query);
  2. //...
  3. resultSet = statement.executeQuery();

如果你需要,这里有一个教程。
学习如何在netbeans或eclipse中调试java代码以及nullpointerexception的含义也会有所帮助

相关问题