2012-05-15 2 views
-3

Я вставил один столбец в sql с нулевым значением из java.while, возвращая его, он не работает с null.i также проверен с помощью string.length(). Но когда я напечатал значение в System .вне. значение отображается как null (только null). Когда я проверил его с условием, что он не входит в цикл.sql значение извлечения в java имеет значение null

String id ="1234"; 
      String name="pratap"; 
      String gender=null; 
      String email=null; 
String service="GOOGLE"; 
     log.info(id+name+gender+email) //output is 1234pratapnullnull 

String insert = "INSERT INTO oauthuser VALUES('"+id+"','"+name+"','"+gender+"','"+email+"','"+service"')"; 

В извлечения

query ="Select * FROM oauthuser where id="+"'"+id+"'"; 
Class.forName("com.mysql.jdbc.Driver"); 
Connection con = DriverManager.getConnection (dbUrl); 
Statement stmt = con.createStatement(); 
ResultSet rs = stmt.executeQuery(query); 
    while(rs.next()) 
    { 
id=rs.getString(1); 
name=rs.getString(2); 
gender=rs.getString(3); 
email=rs.getString(4); 
service_provider_name=rs.getString(5); 
System.out.println(gender+email+name);//output is nullnullpratap 

    } 

if(gender!="male" && gender!="female") 
System.out.println("it is printing"); 
    if(gender==null) 
     System.out.println("it is not printing"); 
con.close(); 
+8

Показать код. – NPE

+1

введите код вставки и выберите –

+0

Мы не можем догадаться, в чем проблема, пока вы не покажете нам, как вы его внесли. – giorashc

ответ

1

вы можете попробовать «нуль», а не NULL, но лучше, чтобы показать нам код

после обновления

удалить + знак из вашего запроса, как этот

String id ="1234"; 
      String name="pratap"; 
      String gender="null"; 
      String email="null"; 
String service="GOOGLE"; 
     log.info(id+name+gender+email) //output is 1234pratapnullnull 

String insert = "INSERT INTO oauthuser VALUES('"id"','"name"','"gender"','"email"','"service"')" 

и когда вы выберите, изменить, как это

if(gender.equals("null")) 
     System.out.println("it is not printing"); 
2

Ваш несколько зашифрованное описание проблемы, я подозреваю, что вы можете вставить строку "null", а не NULL значение SQL. Эти два не то же самое (очень разные, на самом деле).

Редактировать Просмотрев код, это именно то, что происходит. Возьмем, например, gender:

String gender = null; 
...'"+gender+"',... 

выше преобразует его в 'null' (то есть строку SQL "null"), и вставляет, что в базу данных.

Моим основным советом было бы прочитать на PreparedStatement и использовать это вместо того, чтобы строить SQL-запрос по битам, как вы делаете прямо сейчас.

Наконец, следующий сломана:

if(gender!="male" && gender!="female") 

Это должно быть

if(!gender.equals("male") && !gender.equals("female")) 
+0

@PratapMurukutla: См. Обновленный ответ. – NPE

1

Может быть, ваше значение не равно нулю, но "нулевой" строка? Запустите приложение в отладке, поставьте точку останова и проверьте его.

Смежные вопросы