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

executeBatch()有关问题

2012-10-16 
executeBatch()问题执行没有异常,查看数据库一点变化没有,语句无误.[解决办法]代码呢?[解决办法]Statement

executeBatch()问题
执行没有异常,查看数据库一点变化没有,语句无误.

[解决办法]
代码呢?
[解决办法]
Statement st = null;
try {
st = connection.createStatement();
for (int i = 0; i < sqls.length; i++) {
st.addBatch(sqls[i]);
}
st.executeBatch();
} catch (Exception e) {
log.error(e.getMessage());
}
sqls 是个sql语句的数组
[解决办法]
关注
[解决办法]
数据库没任何变化,肯定是连接这个类写得有问题.
你至少要先写个插入语句测试一下,看看有没有和数据库连通,能否操作?
java.sql.Statement sm = con.createStatement();
int count = sm.executeUpdate(sqlInsert);
if(count > 0)
{
System.out.println( "成功 ");
}
然后把你的sql语句数组贴出来,最好把你的这个连接类的代码贴出来.
别人才好判断.
[解决办法]
用prepareStatement试下
pstmt = conn.prepareStatement( "DELETE FROM tab_1 WHERE id = ? ");
for (int i = 0; i < objIDArray.length; i++)
{
pstmt.setString(1, objIDArray[i]);
pstmt.addBatch();
}
pstmt.executeBatch();
close(pstmt);
[解决办法]
commit了没有啊?
[解决办法]
学习了

[解决办法]
Connection conn = ServiceLocator.getInstance().getConnection();
conn.setAutoCommit(false);
ps = conn.prepareStatement(sql);
for(int i=0; i <roomids.length; i++)

ps.setString(1,ksid);
ps.setString(2,roomids[i]);
ps.addBatch();
}
ps.executeBatch();
conn.setAutoCommit(true);
[解决办法]
批量执行注意
1.conn.setAutoCommit(false);
2.pstmt.executeBatch();
3.conn.commit();
4.conn.setAutoCommit(true);

你没写commit()吧??
当自动提交关闭的情况下,不写这句,操作是不进行提交的

热点排行
Bad Request.