String sql="select * from book where name in(?)";
PreparedStatement ps = con.prepareStatement(sql);
String name = "'A','B','C'";
ps.setString(1, name);
ResultSet rs = ps.executeQuery();
while(rs.next())
{
System.out.println("get one");
}
用上面这段代码查不到记录,但是用下面的代码是可以查到记录的。
String sql="select * from book where name in ('A','B','C')";
PreparedStatement ps = con.prepareStatement(sql);
//String name = "'A','B','C'";
//ps.setString(1, name);
ResultSet rs = ps.executeQuery();
while(rs.next())
{
System.out.println("get one");
} 不知道为什么,请各位达人多多指点。谢谢!
楼主可以看看
我估计是setString()的问题,可是不知道怎么写才能让ps输出select * from book where name in ('A','B','C'),不知能否赐教?谢谢。 另外,我用的是eclipse,怎么才能看到ps的输出呢?
to crazycy(代言人)
sql中in后面的确是个集合,但现在它不是固定的,就是可能是('A','B','C'),也可能是('A','B')或者('A','D'),或者更多。 所以我想用一个"?" 来根据不同情况传入不同的集合,不知道这样可不可以?望赐教。谢谢。
谢谢指点。
用debug看可以看到 ps-->m_sql-->processedSql= "select * from book where name in (:1)",但是看不到"select * from book where name in('\'A\',\'B\',\'C\'')"。
在程序里用System.out.println(ps)应该看不到吧,ps 是个对象,在控制台只能输出它的地址吧。
那有没有办法可以实现我需要的那种效果呢?只传一个参数的。
目前的PreparedStatement ,不支持in进行不定个数的参数.不过Hibernate里好像变通的实现了这个功能,
参考一下Hibernate的源代码,或许有办法.
谢谢指点。
用debug看可以看到 ps-->m_sql-->processedSql= "select * from book where name in (:1)",但是看不到"select * from book where name in('\'A\',\'B\',\'C\'')"。
在程序里用System.out.println(ps)应该看不到吧,ps 是个对象,在控制台只能输出它的地址吧。
==========================================
你的断点可能没设好吧
ps应该覆写toString方法,除了地址,后面会输出sql语句,楼主试试好了
我还没用过 Hibernate, 如果方便的话,能否帮我找找看,先谢了。要回家了,明天来结贴。
PreparedStatement stat=con.prepareStatement(“Select * from publishers where pub_id = ?”);
stat.setString(1,pid.getText());
ResultSet result=stat.executeQuery();楼主可以看看
谢谢。
getText()好像是swing中常用的方法吧,不知道你代码中的pid代表什么对象。
=======================================================================问题还没有解决,不知道大家有没有更好的意见啊
PreparedStatement ps = con.prepareStatement(sql);
String name1 = "A";
String name2= "B";
String name3 = "C";
pssetString(1, name1);
pssetString(2, name2);
pssetString(3, name3);
ResultSet rs = ps.executeQuery();
while(rs.next())
{
System.out.println("get one");
}
谢谢。这是最后的方法,我其实就是想知道,按我的那个思路到底有没有办法实现。
---------------------------------------------------------------------------to wu_zhi_hui(苦海无涯,回头是岸)
谢谢。 不过我前面已经说过了,参数不一定是三个的。
---------------------------------------------------------------------------各位达人,再帮忙看看啊。如果问题解决可以另外开贴给分。