Db.tx(new IAtom())事务不起作用?

rossi789 发布于 2013/04/24 09:55
阅读 1K+
收藏 0

@JFinal

public static void batchInsert(final List<Record> list) throws Exception {
Db.tx(new IAtom() {
@Override
public boolean run() throws SQLException {
int i = 0;
for (Record record : list) {
Db.save(c3p0Plugin.getDataSource(), "tb_test", "PK_ID",
record);
i++;
if (i == 3)
return false;
}
return true;
}
});
}
执行到第4个的时候我让他返回false,但是数据库里前3条记录还在,是怎么回事?

我是在非Servlet环境下运行的

加载中
0
JFinal
JFinal

1:如果使用的mysql,确保引擎为 InnoDB

2:这行代码改一下Db.save(c3p0Plugin.getDataSource(), "tb_test", "PK_ID",
record);去掉 c3p0Plugin.getDataSource()这个参数

0
rossi789
rossi789

引用来自“JFinal”的答案

1:如果使用的mysql,确保引擎为 InnoDB

2:这行代码改一下Db.save(c3p0Plugin.getDataSource(), "tb_test", "PK_ID",
record);去掉 c3p0Plugin.getDataSource()这个参数

可以了.原来参数不加才行.谢谢
返回顶部
顶部