Java Mysql 空指针异常

Java Mysql Nullpointer exception

我正在尝试使用 PreparedStatement 将数据输入 MySQL table,问题是当它到达 [=16] 时我得到 NullPointerException =]行。

    Conexion con = new Conexion();
    Connection reg = con.conexion();
    Integer ced;
    boolean f = false;        

    String nom, ape, email, dir, tel, codtel, telefono;
    Date fechareg = new Date();
    String sql;

    ced = Integer.getInteger(CedulaField.getText());
    nom = NombreField.getText();
    ape = ApellidoField.getText();
    email = emailField.getText();
    dir = dirArea.getText();
    tel = TelField.getText();
    codtel = (String) TelBox.getSelectedItem();
    telefono = codtel + tel;        

    tel = TelField.getText();
    sql = "INSERT INTO estudiantes (cedula, nombre, apellido, email, direccion, telefono, fecha_registro) VALUES (?,?,?,?,?,?,?)";
    try {
        PreparedStatement pst = reg.prepareStatement(sql);
        pst.setInt(1,ced);
        pst.setString(2,nom);
        pst.setString(3,ape);
        pst.setString(4,email);
        pst.setString(5,dir);
        pst.setString(6,telefono);
        pst.setDate(7, (java.sql.Date) fechareg);

        //if (f == false){
            int n = pst.executeUpdate();
            if (n > 0){
                JOptionPane.showMessageDialog(null,"registrado con exito");
            }
        //}
    } catch (SQLException ex) {
        Logger.getLogger(Ingreso_Datos.class.getName()).log(Level.SEVERE, null, ex);
        JOptionPane.showMessageDialog(null,"Error al registrar");
    }

这是我的学生table

cedula          | int(11) unsigned zerofill | NO | PRI | NULL
nombre          | varchar(50)               | NO |     | NULL
apellido        | varchar(50)               | NO |     | NULL 
email           | varchar(100)              | NO |     | NULL
direccion       | varchar(100)              | NO |     | NULL 
telefono        | varchar(11)               | NO |     | NULL 
fecha_registro  | timestamp                 | NO |     | CURRENT_TIMESTAMP 

如果我给 ced 一个值,为什么我得到 NullPointerExceptioncedula 是一个 id,每个注册公民都有一个唯一的数字,所以我打算将它用作主键。我做错了什么?

David Maust 指出了 Integer.getInteger 和 Integer.parseInt 之间的区别,这就是问题所在。

似乎这条线正在返回null

ced = Integer.getInteger(CedulaField.getText());

根据 javadoc,此方法按名称检索系统 属性 的值。 https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#getInteger(java.lang.String)

我认为您打算使用 parseInt,它将字符串解析为整数:

ced = Integer.parseInt(CedulaField.getText());