日期:2014-05-18  浏览次数:20677 次

问一个SQL的问题,不知道你们会不会呀。。。
项目是做通讯的,使用的是Spring   +   Struts1.2   +DAO.这样。
我的     I××DAO层如下:
public   interface   ICardDAO  
{
public   List   CardQuery(String   sql)   throws   Exception;

public   boolean   CardExec(String   ...sql)   throws   Exception;
}

DAO层如下:
public   class   CardDAO   extends   JdbcDaoSupport   implements   ICardDAO  
{

public   boolean   CardExec(String   ...sql)   throws   Exception  
{
for(String   s   :   sql)
{
if(!s.equals( " "))
{
this.getJdbcTemplate().update(s);
}
}
return   true;
}

public   List   CardQuery(String   sql)   throws   Exception  
{
return   this.getJdbcTemplate().queryForList(sql);
}

}
问题:(String   ...sql)为啥这样写啊?     还有这个for(String   s   :   sql)   是干嘛的,怎么还有冒号呢?

------解决方案--------------------
String s : sql 是5.0之后的循环用法

!表示否,例如!true就是false,

s.equals( " ")返回的是true或false,加个!再反一下;
------解决方案--------------------
String ...sql 表示不定长参数.
调用的时候可能是 CardExec(sql1) 或 CardExec(sql1,sql2) 或 CardExec(sql1,sql2,sql3)
类推.
for(String s : sql) 就是循环啦. 取得sql1,sql2,sql3....

if(!s.equals( " ")) 就是s不等于 " "啦, 这个不至于不懂吧