Как конвертировать Integer в int?
Я работаю над веб-приложением, в котором данные будут передаваться между клиентом и сервером.
Я уже знаю, что JavaScript int != Java int. Потому что Java int не может быть null, верно. Теперь проблема я столкнулся.
Я изменил свои переменные Java int на целое число.
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();
}
моя проблема здесь:
pstmt.setInt(1, tempID);
pstmt.setInt(3, tage);
Я не могу использовать целочисленные переменные здесь. Я пробовал с intgerObject.intValue();
Но это все усложняет. У нас есть любой другой методов преобразования или конвертации?
любое исправление было бы лучше.
5 ответов:
как уже написано в другом месте:
- для Java 1.5 и более поздних версий вам не нужно ничего делать (почти), это делается компилятором.
- для Java 1.4 и ранее, используйте
Integer.intValue()
для преобразования из Integer в int.но как вы писали, АН
Integer
может быть null, поэтому разумно проверить это, прежде чем пытаться преобразовать вint
(или рискуете получитьNullPointerException
).pstmt.setInt(1, (tempID != null ? tempID : 0)); // Java 1.5 or later
или
pstmt.setInt(1, (tempID != null ? tempID.intValue() : 0)); // any version, no autoboxing
*используя значение по умолчанию ноль, также ничего не может сделать, показать предупреждение или ...
Я в основном предпочитаю не использовать автобоксинг (вторая строка выборки), поэтому ясно, что я хочу сделать.
поскольку вы говорите, что используете Java 5, Вы можете использовать
setInt
сInteger
из-за autounboxing:pstmt.setInt(1, tempID)
должно работать нормально. В более ранних версиях Java вам пришлось бы вызвать.intValue()
себя.работает и обратное... назначение
int
доInteger
автоматически вызватьint
быть autoboxed используяInteger.valueOf(int)
.
Java автоматически преобразует целое число в int и обратно (если вы все еще не используете Java 1.4).