第一种:利用sql函数查询id集合
String sql = "select GROUP_CONCAT(DISTINCT product_id) productId from product_supplier where supplier_id="+supplierId;
???try {
????ps = db.getConn().prepareStatement(sql);
????rs = ps.executeQuery();
????if(rs.next()) {
?????con.append(" and p.id in ("+rs.getString(1)+")");
????}
???} catch (SQLException e) {
????e.printStackTrace();
???}
第二种:利用string拼接的方式把id结合拼起来
String sql = "select product_id from product_supplier where supplier_id="+supplierId;
StringBuffer sb = new StringBuffer();
???try {
????ps = db.getConn().prepareStatement(sql);
????rs = ps.executeQuery();
????while (rs.next()) {
?????sb.append(rs.getInt(1)+",");
????}
????String s ="";
????if(sb.toString().length()>=1){
?????s = sb.toString().substring(0,sb.length()-1);
????}
????con.append(" and p.id in ("+s+")");
第一种与第二种哪个的效率高呢