
for (int i = 0i <list.Lengthi++) {
string[] fullurl = list1[i].Split('|')
where.Append(string.Format("(Files_name='{0}' and Files_lastchangetime = '{1}') or ", fullurl))
}
where.Append(" 1 <1")
这样就可以拼成一个长where条件, 可以一次执行. 但是实际上数据库执行效率并不会有显著提高. 并且sql语句的长度会有限制, 如果数据量大的话就不能执行了.
你之所以感觉慢, 主要是因为你每次执行都会创建连接, 使用长连接或连接池(如果支持), 就能显著提高程序性能. 之后你可以观察下, 循环执行和拼接长SQL语句一次执行, 两者差异可以忽略不计.
在这样的前提下, 使用拼接SQL的方法要额外判断语句长度, 如处理不当, 程序可靠性会大打折扣. 所以改成使用连接池, 逐条执行是最可行的方案.
另: 执行delete语句应该使用ExecuteNonQuery方法
public void delete(int[] id) throws SQLException{//假定conn ps 都获取到
Connection conn=null
StringBuffer sql=new StringBuffer("delete from school where id in(")
for (int i = 0i <id.lengthi++) {
if (i==id.length-1)
sql.append(id[i]+")")
else
sql.append(id[i]+",")
}
PreparedStatement ps=conn.prepareStatement(sql.toString())
ps.execute()
}
【真正的推荐答案】楼主可要看好了!
其实只需要将checkbox的name属性值设置成为如下形式 :
<form action='' method='post'>
<input type='checkbox' id='1' name='ck[]'>
<input type='checkbox' id='2' name='ck[]'>
<input type='checkbox' id='3' name='ck[]'>
</form>
然后用post接手就可以了,
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)