近来需要用groovy写一个数据库操作相关,需要用到事务,
下面我简单的写了一个小样子看看事务支持情况,似乎不乍支持事务,请达人指点一下:
import groovy.sql.Sql;def sqlConnection = Sql.newInstance("jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=GBK", "user",
"java", "com.mysql.jdbc.Driver").getConnection();sqlConnection.setAutoCommit(false);
def sql = new Sql(sqlConnection);sql.eachRow("select * from accout", { println it.ID + "-" +it.UserName + "-" + it.Password } );
//注:在test数据库里有一个accout表(ID,UserName, Password), ID:autoincrement,primary key
//@1
sql.execute('update accout set Password=? Where UserName=?',['test','java_1']);sql.eachRow("select * from accout", { println it.ID + "-" +it.UserName + "-" + it.Password } );
//@2
sqlConnection.commit();
println sql.getConnection();//结果是false;sql.eachRow("select * from accout", { println it.ID + "-" +it.UserName + "-" + it.Password } );
//@3结果 @2处结果与@3处结果是一样的,与@1处显示的结果差异就是update效果区别,所以本人简单的认为groovy应该不支持事务哪位达人指点一下,groovy真的不支持事务吗?
下面我简单的写了一个小样子看看事务支持情况,似乎不乍支持事务,请达人指点一下:
import groovy.sql.Sql;def sqlConnection = Sql.newInstance("jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=GBK", "user",
"java", "com.mysql.jdbc.Driver").getConnection();sqlConnection.setAutoCommit(false);
def sql = new Sql(sqlConnection);sql.eachRow("select * from accout", { println it.ID + "-" +it.UserName + "-" + it.Password } );
//注:在test数据库里有一个accout表(ID,UserName, Password), ID:autoincrement,primary key
//@1
sql.execute('update accout set Password=? Where UserName=?',['test','java_1']);sql.eachRow("select * from accout", { println it.ID + "-" +it.UserName + "-" + it.Password } );
//@2
sqlConnection.commit();
println sql.getConnection();//结果是false;sql.eachRow("select * from accout", { println it.ID + "-" +it.UserName + "-" + it.Password } );
//@3结果 @2处结果与@3处结果是一样的,与@1处显示的结果差异就是update效果区别,所以本人简单的认为groovy应该不支持事务哪位达人指点一下,groovy真的不支持事务吗?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货