首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

SQL中没法使用条件 IN 进行变量绑定

2013-06-25 
SQL中无法使用条件 IN进行变量绑定以下代码可以查询到数据:String returnStrString sqlselect name

SQL中无法使用条件 IN 进行变量绑定
以下代码可以查询到数据:
String returnStr="";  
String sql="select name from table1 t where t.lot_id  in ('tab1','tab2')";
System.out.println(sql);
stmt =  conn.prepareStatement(sql);
rset=stmt.executeQuery();            
        while(rset.next())
           {   
           returnStr= rset.getString(1);
System.out.println("returnStr:"+returnStr 
  }
rset.close();
st.close();

--------------------
但是为何以下代码写法却查不到数据?
String returnStr="‘"; 
String str=="'tab1','tab2'"; 
String sql="select name from table1 t where t.lot_id  in (?)";
System.out.println(sql);
stmt =  conn.prepareStatement(sql);
stmt.setString(1, str); 
rset=stmt.executeQuery();            
while(rset.next())
{   
        returnStr= rset.getString(1);
System.out.println("returnStr:"+returnStr 
}
rset.close();
st.close();

[解决办法]
不好意思写错了
应该是这样
String sql = "select name from table1 t ";
if (array != null && array.length != 0) {
  sql += " where t.lot_id  in ("
  for (int i = 0; i < array.length; i++) {
    sql += + "?," 
  }
  sql = sql.substring(0,sql.length() - 1) + ")";
}
stmt =  conn.prepareStatement(sql);
if (array != null && array.length != 0) {
  for (int i = 0; i < array.length; i++) {
    stmt.setString(i + 1, array[i]); 
  }

热点排行