2017-08-17 18 views
-2

Javaクラスにブール値があり、このステータスをMysqlデータベースに0または1ステータスを挿入するために使用したいとします。私はデータベースからデータを取得しているとき、常にtrue [データベース内の1]を返します。ブール値に基づいてmysqlで0または1を得る方法?

ブール値に基づいて、データベースで0または1を取得する方法を教えてもらえますか。

boolean status= Boolean.parseBoolean(parameterStatus); 
+0

「ステータス」には何の問題がありますか? 1:0' – user7294900

+0

ベストアンサーを選択してください – develop1

+0

ありがとうございます@ user7294900助けました –

答えて

0

あなたが求めていることは完全にはっきりしていません。あなたが意味すると思うのは、「なぜ、クエリを実行すると、データベースが常に(真になる)1を返すのですか?」です。

これは、常に1(真)を挿入している可能性があるためです。

ここでは、データベースにブール値を挿入して取得する方法の例を示します。

try{ 
      // create a mysql database connection 
      String myDriver = "org.gjt.mm.mysql.Driver"; 
      String myUrl = "jdbc:mysql://localhost/test"; 
      Class.forName(myDriver); 
      Connection conn = DriverManager.getConnection(myUrl, "root", ""); 

      // create a sql date object so we can use it in our INSERT statement 
      Calendar calendar = Calendar.getInstance(); 
      java.sql.Date startDate = new java.sql.Date(calendar.getTime().getTime()); 

      // the mysql insert statement 
      String query = " insert into users (first_name, last_name, date_created, is_admin, num_points)" 
        + " values (?, ?, ?, ?, ?)"; 

      // create the mysql insert preparedstatement 
      PreparedStatement preparedStmt = conn.prepareStatement(query); 
      preparedStmt.setString (1, "Barney"); 
      preparedStmt.setString (2, "Rubble"); 
      preparedStmt.setDate (3, startDate); 
      preparedStmt.setBoolean(4, false); 
      preparedStmt.setInt (5, 5000); 

      // execute the preparedstatement 
      preparedStmt.execute(); 




      //now to get the boolean from Database 
      Statement stmt=conn.createStatement(); 
      ResultSet rs=stmt.executeQuery("select * from emp"); 
      while(rs.next()) 
       System.out.println(rs.getBoolean(4)); 
      conn.close(); 


     }catch(Exception e){ 
      System.out.println(e); 
     } 
関連する問題