-3

javaからnull値を使用してSQLに1つの列を挿入しましたが、nullを取得しても機能しません。また、string.length()でチェックしました。しかし、System.outに値を出力したとき。値はnull(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();
4

3 に答える 3

2

問題のやや不可解な説明から、SQL値"null"ではなく文字列を挿入した可能性があります。NULL2つは同じではありません(実際には非常に異なります)。

編集コードを確認した後、これはまさに何が起こるかです。たとえば、gender次のようになります。

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

上記はそれを'null'(つまりSQL文字列"null")に変換し、それをデータベースに挿入します。

私の基本的なアドバイスはPreparedStatement、現在行っているようにSQLクエリを少しずつ作成するのではなく、それを読んで使用することです。

最後に、以下が壊れています。

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

これは

if(!gender.equals("male") && !gender.equals("female"))
于 2012-05-15T13:14:41.600 に答える
1

たぶんあなたの値はnullではなく「null」文字列ですか?アプリケーションをデバッグで開始し、ブレークポイントを設定して確認します。

于 2012-05-15T13:16:06.603 に答える
1

NULLの代わりに「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");
于 2012-05-15T13:17:12.880 に答える