2017-05-24 13 views
0

ここでは、ログインしたクライアントの製品のみを表示したいのですが、クライアントc = new Client()を使用し、WHERE句で「+ c.getId;」を使用すると問題が発生します作業。クライアントIDを取得できません

public ArrayList<Produit> getProduits(){ 
    ArrayList<Produit> v = new ArrayList<Produit>(); 
    Connecter conn= new Connecter(); 

    try{ 
    String sql = "select * from produit where id_client_fk="+(i want the 
    id of the client already logged in) ; 
    PreparedStatement ps = conn.con.prepareStatement(sql); 
    ResultSet rs = ps.executeQuery(); 
    while(rs.next()){ 
     Produit produit = new Produit(); 
     produit.setCode(rs.getInt("code")); 
     produit.setDescription(rs.getString("description")); 
     produit.setPrix(rs.getFloat("prix")); 
      v.add(produit); 
    } 
    }catch(Exception asd){ 
     System.out.println(asd.getMessage()); 
    } 
    return v; 
} 

彼がログインしたときに、私はクライアントIDを設定します。

 try { 
     PreparedStatement st = conn.con.prepareStatement("select * from 
     client where email=? and password=?"); 
     st.setString(1, login); 
     st.setString(2, password); 
     rs = st.executeQuery(); 
     if (rs.next()) 
     { 
      c.setId(rs.getInt("id")); 
      c.setNom(rs.getString("nom")); 
      c.setPrenom(rs.getString("prenom")); 
      c.setAdresse(rs.getString("adresse")); 
      c.setEmail(rs.getString("email")); 



      return true; 
     } 
     else 
      return false; 


    } catch (SQLException e) { 
     e.printStackTrace(); 
     return false; 
    } 
+0

あなたが投稿したコードは、あなたの問題を理解するのに十分ではありません。クラスをそのまま、または少なくとも関連する部分に投稿すると役に立ちます。 – ujulu

答えて

-1

PreparedStatementを使用する方法のこの例を確認してください。

https://www.mkyong.com/jdbc/jdbc-preparestatement-example-select-list-of-the-records/

は、基本的にはこのような何かを

文字列selectSQL = "SELECT USER_ID、USERNAME FROM DBUSER WHERE USER_ID =?";

とその値を設定:

preparedStatement.setInt(1、1001)。

コードサンプルではこれが表示されません。 コードをより構造的な方法で投稿してください。

+0

こんにちは、最初にお返事いただきありがとうございます。第2に、問題は私のpreparedStatementにありません。getId()getterで、ユーザーがsetIdで自分のIDを設定したときに取得します。このIDを取得しようとすると、取得方法はわかりません。クライアントc =新しいクライアント()しかしそれは仕事をしなかった –

+0

私は私の答えを更新し、より多くの情報を与えるように言った理由です。それ以外の場合は、良い答えを受け取ることはありません。 – Investigator

関連する問題