Só usei JDBC para testes, normalmente só usava JPA com Hibernate, mas agora tive que começar um projeto usando JDBC e me deparo com o seguinte problema, o método setInt não aceita valores nulos e o campo não é obrigatório, o único jeito que consegui fazer funcionar foi com setObject ou então removendo o campo da query do sql quando fosse nulo, desse jeito pode me atrapalhar no futuro, quero saber se não existe uma forma melhor de fazer isso?
stmt.setInt(5, null); //não funciona
stmt.setLong(5, new Long(null)); //não funciona
stmt.setInt(5, new Integer(null)); // não funciona
PreparedStatement stmt = this.con.prepareStatement("INSERT INTO pessoa (nome, idade) VALUES (?, ?)");
stmt.setString(1, pessoa.getNome());
stmt.setObject(2, pessoa.getIdade());
stmt.execute();
con.close();