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

prepareStatement 有关问题 ,请高手 帮忙

2012-01-19 
prepareStatement 问题 ,急,请高手 帮忙StringsqlStrSELECTsum(a.welfr_money)welfmoney,b.project_name

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不同?
[解决办法]
如果你觉得慢,那就用存储过程

[解决办法]
无能为力
[解决办法]
帮顶。。。
[解决办法]
@
------解决方案--------------------


呵呵,这个问题。。。
[解决办法]
我觉得不是那两个问题,简单的查询两个相差不了那么多的,你先把SQL放到客户端运行一下看看时间,再比较一下吧
[解决办法]
奇怪的问题,不懂,帮顶
[解决办法]
sybase并表查询需要把model tempdb 库加大 不然会效率很低 估计是你的sybase没优化
[解决办法]
不会是set参数的问题
[解决办法]
用set**方法是预处理sql,在你执行clssRs = clssPstmt.executeQuery();之前,会先检查sql的语法什么的! 这样样以后就不会在编译了!所以会慢一点,但是其实如果你多次用这个语句是快的!
[解决办法]
拼sql语句?什么意思?

[解决办法]
赞同 AntStudio() 老兄的推论
[解决办法]
预编译本身会比较慢,但是多执行几次相同的语句就快了
[解决办法]
同意楼上的
[解决办法]
同意楼上的
[解决办法]
如果要求速度,建议使用存储过程(语句若很多),编译好了之后,速度很快的!
[解决办法]
不同意jihanzhong(逍遥)的意见.select * from tableName where 条件1,条件2,条件3.....
这种句子.是从条件3比较起的.不是从条件1执行起的.

热点排行