日期:2014-05-20  浏览次数:20625 次

各位帮组下小妹。。散分 咯
有个这样的方法
protected   ArrayList   getSelectList(Connection   con,   String   sql,   boolean   withNoselect,   String   noSelectView,   Object[]   params)   throws   DAOException,   ApplicationException   {
ArrayList   result   =   new   ArrayList();

PreparedStatement   stmt   =   null;
ResultSet   rs   =   null;
try   {
stmt   =   con.prepareStatement(sql,   ResultSet.TYPE_SCROLL_INSENSITIVE,   ResultSet.CONCUR_READ_ONLY); if   (params   !=   null)   {
for   (int   i   =   0;   i   <   params.length;   i++)   {
setStatement(stmt,   i   +   1,   params[i]);
}
}
。。。。。
我用

Object[]   oa   =   new   Object[1];
oa[0]   =   new   String( "0025215 ");//这就使1个参数
Connection   con   =   WebComConnection();
String   sql   =   getSQLCompany();//这里是1个SQL语句,里面   有个动态参数(带?号的)
getSelectList(con,   sql,   true, " ",oa);然后调用上面的方法。。但始终进不了if   (params   !=   null)这个里面,也就是说始终不能设置参数。为何?各位帮组下小妹

------解决方案--------------------
看上去你的程序写的是对的,难道是因为
stmt = con.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
这句话失败,抛异常了?

你说进不了if语句里面,控制台有什么输出没有?
------解决方案--------------------
有没有Exception呀?
------解决方案--------------------
你用调试器在前面设置个断点看一下里面到底是什么东西就行了。
------解决方案--------------------
这句有问题:
stmt = con.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY)

可能是你的con对象不对,也可能是sql不对。
------解决方案--------------------
stmt = con.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY)
这句问题,你设置了允许数据库回滚,而你所使用的数据库并不支持这样的设置.
一般用这个之前要先判断数据库支持不支持
------解决方案--------------------
有没有Exception呀?
------解决方案--------------------
晕,报异常了你怎么进去,看一下异常信息先吧
------解决方案--------------------
頂..
------解决方案--------------------
up一下
------解决方案--------------------
你这个方法我以前用过..写SQL时候要AS viewColumn 和 valueColumn
------解决方案--------------------
看前面回复得差不多了,我来接个分
------解决方案--------------------
好,结帖
------解决方案--------------------
关注
------解决方案--------------------
jf

------解决方案--------------------
学习,学习
------解决方案--------------------
楼主写的一个方法那么多参数,看的我都晕,
------解决方案--------------------
stmt = con.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY)

有些jdbc驱动不支持TYPE_SCROLL_INSENSITIVE和CONCUR_READ_ONLY 这两个参数同时用,甚至有的不支持TYPE_SCROLL_INSENSITIVE。