"显示java.lang.NullPointerException#34;

时间:2015-02-20 06:15:11

标签: java sql

在运行此代码时,我得到了" JAVA错误"

在控制台中我看到了

  
      
  • 连接到数据库
  •   
  • 连接已成功
  •   
  • 从project.user
  • 中选择*   
  • 1
  •   
  • 显示java.lang.NullPointerException
  •   
  • ...
  •   
  • ...
  •   
  • ...
  •   
  • 显示java.lang.NullPointerException
  •   
public void showuser(){
  System.out.println("Connection to db");
    try {
            Connection con = DriverManager.getConnection(url, "", "");
            System.out.println("Connection suceeded");
            String sql = "Select * from project.user";
            System.out.println(sql);
            Statement st = con.createStatement();
            ResultSet rs= st.executeQuery(sql);
            String title[]={"ID","Name","Status","Nomber","Balance","Login","Password"};
            DefaultTableModel aModel = new DefaultTableModel();
            aModel.setColumnIdentifiers(title);
            int i=0;
            while (rs.next())
            {   Object objects[]= new Object[7];
                i=0;
                while(i<7)
                {
                objects[i]=rs.getObject(i+1);
                System.out.println(objects[i].toString());
                i++;
                }
                aModel.addRow(objects);
           }
           jTable1.setModel(aModel);
           con.close();
    }    
    catch (SQLException ex)
        {
           while(ex!= null)
           {
             ex=ex.getNextException();
           }
           JFrame f1= new JFrame();
           JOptionPane.showMessageDialog(f1,"SQL error");
                            System.out.println(ex);
        }
    catch (java.lang.Exception ex)
        {
            ex.printStackTrace();
            JFrame f1= new JFrame();
            JOptionPane.showMessageDialog(f1,"JAVA error");
                                            System.out.println(ex);
        }
}

1 个答案:

答案 0 :(得分:0)

我不知道自从我上次使用ResultSets以来问题是不是很久以前但你是rs.getObject(i + 1)...如果getObject()只返回你的列值超过索引(7列(最大索引= 6)但你在你的while(i&lt; 7循环)中由于i + 1而转到6 + 1。如果bevhaviour ob getObject那么它返回null如果它在给定索引处不包含任何值,您将在对象[i] .toString()处获得NullPointer 我希望这可以帮助你 编辑MadProgrammer指出我关于ResultSet索引的假设是错误的。只是忽略这个答案