Java Mysql空指针异常
我试图使用PreparedStatement
将数据馈送到MySQL表中,问题是当数据到达pst.setInt
行时,我会得到一个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");
}
这是我的学生桌
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
一个值,为什么我得到NullPointerException
?cedula
是一个id,它有一个对每个注册公民来说都是唯一的数字,所以我计划将它用作主键。我做错了什么
David Maust指出了整数之间的区别。getInteger和Integer。parseInt这就是问题所在
# 1 楼答案
这行似乎返回了
null
根据javadoc,此方法按名称检索系统属性的值https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#getInteger(java.lang.String)
我想您是想使用is
parseInt
,它将字符串解析为整数: