prepareStatement 问题 ,急,请高手 帮忙
String   sqlStr   =    "SELECT   sum(a.welfr_money)   welfmoney   ,b.project_name    "   + 
                                                              "FROM   t_prsn_wlfr_detl   a    "   + 
                                                              "LEFT   JOIN   t_project   b    "   + 
                                                              "ON   a.projectid   =   b.ID    "   + 
                                                              "WHERE   a.prsnid   =   ?   AND    "   + 
                                                              "a.paydate> =   ?   AND    "   + 
                                                              "a.paydate <=   ?   AND    "   + 
                                                              "a.publish_statusid=   1    "   + 
                                                              "GROUP   BY   b.project_name    "; 
                                     clssPstmt   =   m_clssCnn.prepareStatement(sqlStr); 
                                     clssPstmt.setInt(1,   iUserID); 
                                     clssPstmt.setDate(2,   clssBeginDate); 
                                     clssPstmt.setDate(3,   clssEndDate); 
                                     clssRs   =   clssPstmt.executeQuery(); 
 这种用set***方式赋值速度很慢,但用直接拼SQL语句的形式就很快,请问原因可能在哪里?谢谢。
------解决方案--------------------先看看直接拼的语句和这个有什么不同,比如条件的顺序,建议把条件a.publish_statusid= 1放前面
------解决方案--------------------你是说clssPstmt.setInt(1, iUserID); 
 这句代码执行很慢还是最后sql执行很慢?
------解决方案--------------------预编译的慢吗?
------解决方案--------------------我感觉是参数类型的问题 
 clssPstmt.setInt(1, iUserID); 
 clssPstmt.setDate(2, clssBeginDate); 
 clssPstmt.setDate(3, clssEndDate); 
 这个setInt和setDate以后会否跟数据库的number和varchar不同?
------解决方案--------------------如果你觉得慢,那就用存储过程 
------解决方案--------------------无能为力
------解决方案--------------------帮顶。。。
------解决方案--------------------@
------解决方案--------------------