Estoy trabajando en una aplicación web en la que los datos se transferirán entre el cliente y el servidor.
Ya sé que JavaScript int! = Java int. Porque, Java int no puede ser nulo, correcto. Ahora bien, este es el problema al que me enfrento.
Cambié mis variables int de Java a Integer.
public void aouEmployee(Employee employee) throws SQLException, ClassNotFoundException
{
Integer tempID = employee.getId();
String tname = employee.getName();
Integer tage = employee.getAge();
String tdept = employee.getDept();
PreparedStatement pstmt;
Class.forName("com.mysql.jdbc.Driver");
String url ="jdbc:mysql://localhost:3306/general";
java.sql.Connection con = DriverManager.getConnection(url,"root", "1234");
System.out.println("URL: " + url);
System.out.println("Connection: " + con);
pstmt = (PreparedStatement) con.prepareStatement("REPLACE INTO PERSON SET ID=?, NAME=?, AGE=?, DEPT=?");
pstmt.setInt(1, tempID);
pstmt.setString(2, tname);
pstmt.setInt(3, tage);
pstmt.setString(4, tdept);
pstmt.executeUpdate();
}
Mi problema esta aqui:
pstmt.setInt(1, tempID);
pstmt.setInt(3, tage);
No puedo usar las variables Integer aquí. Probé con intgerObject.intValue();
Pero hace las cosas más complejas. ¿Tenemos otros métodos de conversión o técnicas de conversión?
Cualquier solución sería mejor.

pstmt.setInt(1, tempID.intValue())? ¿Qué es más fácil que agregar 11 caracteres de código?Respuestas:
Como ya está escrito en otro lugar:
Integer.intValue()para convertir de Integer a int.PERO como escribiste, an
Integerpuede ser nulo, por lo que es aconsejable comprobarlo antes de intentar convertir aint(o arriesgarte a obtener aNullPointerException).pstmt.setInt(1, (tempID != null ? tempID : 0)); // Java 1.5 or latero
pstmt.setInt(1, (tempID != null ? tempID.intValue() : 0)); // any version, no autoboxing* usando un valor predeterminado de cero, tampoco podría hacer nada, mostrar una advertencia o ...
En general, prefiero no usar autoboxing (segunda línea de muestra), por lo que está claro lo que quiero hacer.
fuente
Integer.valueOf(int)Refer: docs.oracle.com/javase/1.4.2/docs/api/java/lang/…Ya que dice que está usando Java 5, puede usarlo
setIntcon unaIntegerfunción de desempaquetado automático:pstmt.setInt(1, tempID)debería funcionar bien. En versiones anteriores de Java, habría tenido que llamarse a.intValue()sí mismo.Lo contrario también funciona ... asignar un
inta unIntegerautomáticamente haráintque se autoencuadre usandoInteger.valueOf(int).fuente
Java convierte Integer a int y viceversa automáticamente (a menos que todavía esté con Java 1.4).
fuente
Integeresnull?nulldebería causar unNullPointerExceptionOtra forma sencilla sería:
Integer i = new Integer("10"); if (i != null) int ip = Integer.parseInt(i.toString());fuente
¿Quizás tiene la configuración del compilador para su IDE configurada en el modo Java 1.4 incluso si está utilizando un JDK de Java 5? De lo contrario, estoy de acuerdo con las otras personas que ya mencionaron el autoboxing / unboxing.
fuente