50,527
社区成员
发帖
与我相关
我的任务
分享
public ArrayList<PowerLabelDataInfo> searchData(String key_no){
Connection conn=null;
ResultSet rs=null;
PreparedStatement psmt=null;
ArrayList al= new ArrayList();
conn=DataSourceTest.getPowerLabelDBCon();
String sql=" SELECT DISTINCT d.key_no,b.sp_katamei,b.kura_kjn, a.suryo,a.taping_kbn,a.gensankoku,a.suffix_katamei,"+
" a.label_ptn,a.naiso_maisu,a.daihyo_maisu,b.sbt_lvl,d.ssn_skkr_su,e.dtcd "+
" FROM ott0470@alpstest a,ott0070@alpstest b,ott0130@alpstest c,ost0090@alpstest d,ost0100@alpstest e "+
" WHERE (b.sp_katamei||b.kura_kjn)=a.katamei "+
" AND a.katamei=(c.katamei_body||c.katamei_kurakjn) "+
" AND (c.katamei_body||c.katamei_kurakjn)= (d.katamei_body||d.katamei_kuraki) "+
" AND (d.katamei_body||d.katamei_kuraki)=e.katamei "+
" AND d.skkr_kotei_flow_rnbn=e.kotei_flow_rnbn "+
" AND d.key_no=e.key_no "+
" AND (c.ksbr_cd LIKE '7%' OR c.ksbr_cd LIKE 'J%') "+
" AND a.pckg_cd<>'ZZZZZZ' "+
" AND b.kura_kjn <>' ' ";
if(!key_no.equals("")){
sql=sql+" and d.key_no= '" + key_no + "'";
}
try {
psmt=conn.prepareStatement(sql);
rs=psmt.executeQuery();
while (rs.next()) {
PowerLabelDataInfo pldi = new PowerLabelDataInfo();
pldi.setKEY_NO(rs.getString("KEY_NO"));
pldi.setSP_KATAMEI(rs.getString("SP_KATAMEI"));
pldi.setKURA_KJN(rs.getString("KURA_KJN"));
pldi.setDTCD(rs.getString("DTCD"));
pldi.setGENSANKOKU(rs.getString("GENSANKOKU"));
pldi.setTAPING_KBN(rs.getString("TAPING_KBN"));
pldi.setSUFFIX_KATAMEI(rs.getString("SUFFIX_KATAMEI"));
pldi.setLABEL_PTN(rs.getString("LABEL_PTN"));
pldi.setSBT_LVL(rs.getString("SBT_LVL"));
pldi.setSURYO(rs.getInt(4));
pldi.setNAISO_MAISU(rs.getInt(9));
pldi.setDAIHYO_MAISU(rs.getInt(10));
pldi.setSSN_SKKR_SU(rs.getInt(12));
al.add(pldi);
}
return al;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
finally {
try {
DataSourceTest.close(rs, psmt, conn);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
上面是我的类方法,单个条件时可以查询,现在就是不知道where 条件 in ()多个条件时SQL怎么拼啊
这个参数拼接成字符串实在是不会啊,还请各位大侠多指教啊,不胜感激啊!String[] parm={"234","3445","298"};
String sql=" coulum in (";
for (int i = 0; i < parm.length; i++) {
if(i==parm.length-1){
sql+=parm[i];
break;
}
sql+=parm[i]+",";
}
System.out.println(sql+")");
String key_no = request.getParameter("key_no")==null?"":request.getParameter("key_no");
String [] key_no_array = key_no.split(",");
String sql = " select * from 表明 where 1=1 ";
if(!key_no.equals("")){
sql+=" and 字段 in( ";
for(int i=0;i<key_no_array.length;i++){
sql+="'"+key_no_array[i]+"'";
if(key_no_array.length-1!=i){
sql+=",";
}
}
sql+=" ) ";
}
随便写的 前提是你多个参数是用逗号隔开