您的位置:首页 > 编程语言 > Java开发

MySql返回上一次插入行的影响数以及动态Sql时返回影响数的位置和Java端的写法

2011-07-18 21:22 465 查看
动态内容没什么可说的,主要说的是如何返回存储过程里受影响的行数
在Mysql中ROW_COUNT()返回前一个SQL进行UPDATE,DELETE,INSERT操作所影响的行数。SELECT 影响的就用FOUND_ROWS()

BEGIN
SET @strSql = CONCAT('INSERT INTO `chargingPole`.`tb_electricPrice`(
`tb_electricPrice`.tb_electircGroup_eg_id,
`tb_electricPrice`.ep_start,
`tb_electricPrice`.ep_end,
`tb_electricPrice`.ep_price
) ');
SET @strSql = CONCAT(@strSql,arg_select);
PREPARE s1 FROM @strSql;
EXECUTE s1;
-- 只能放在这里,放在DEALLOCATE语句后就只返回-1 --
SELECT ROW_COUNT() INTO arg_affectRows;
DEALLOCATE PREPARE s1;
END

Java代码

try {
CallableStatement cs = conn.prepareCall(sql);
cs.setString("arg_select", buffer.toString());
cs.registerOutParameter("arg_affectRows", Types.INTEGER);
cs.executeQuery();
int result = cs.getInt("arg_affectRows");
if (result == (length + 1)) {
back = "success";
} else {
back = "failed";
}
} catch (Exception e) {
e.printStackTrace();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐