0
public ResultSet getAdCampaignDetailsbyName(ADCampaignDetails Obj,
            Connection conn, ResultSet rs, PreparedStatement pstmt) throws SQLException {

        String query = "select adCampaignName,adCampaignId from AdCampaignDetails";
        query += " where 1=1 ";

        if (Obj.getAdCamapignName() != null)
            query += " and adCampaignName = ?";
        if (Obj.userId != "")
            query += " and userId = ?";

        pstmt = conn.prepareStatement(query);

        int i = 0;

        if (Obj.getAdCamapignName() != null)
            pstmt.setString(++i, Obj.getAdCamapignName());
        if (Obj.userId != "")
            pstmt.setString(++i, Obj.userId);

        System.out.println(" Q : " + query);

        rs = pstmt.executeQuery();


        return rs;
    }

私はSpringを初めて使用します。この上記のクエリでは、2つの条件を使用しました。SpringJDBCFrameworkで条件付きのクエリを実行する方法は?

4

1 に答える 1

3

SimpleJDBCTemplateを使用できます。

    // SQL query
    String query = "select adCampaignName,adCampaignId from AdCampaignDetails where 1=1";

    // Map with parameter value
    Map<String, Object> parameters = new HashMap<String, Object>();
    if (adCampaignName!=null){
        parameters.put("adCampaignName ", adCampaignName );
        query += " AND adCampaignName = :adCampaignName"; 
    }
    if (userId!=null){
        parameters.put("userId", 1);
        query += " AND userId= :userId"; 
    }

    // Execute query using simpleJDBC Template
    List<AdCampaignDetails> resultList = getSimpleJdbcTemplate().query(query, new customRowMapper(), parameters);   

それに応じてクエリ文字列を作成できます。対応するエントリをマップに追加するだけです。
詳細については、このリンクを確認してください。

于 2012-07-19T11:49:34.700 に答える