请教高手关于事务隔离的问题

private static String url = "jdbc:mysql://localhost:3306/test";
private static String username = "root";
private static String password = "";



public static Connection getConn() throws Exception {
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
Connection con = DriverManager.getConnection(url , username , password);
return con;
}

public static void demo3() throws Exception{

Connection con1 = getConn();
con1.setAutoCommit(false);
con1.setTransactionIsolation(Connection.TRANSACTION_REPEATABLE_READ);//设置事务的隔离级别
String sql1 = "Select * from employee where salary=1000";
Statement stmt1 = con1.createStatement();
ResultSet rs1 = stmt1.executeQuery(sql1);
while(rs1.next()){
System.out.print(rs1.getInt(1) + " ");
System.out.print(rs1.getString(2) + " ");
System.out.println(rs1.getString(3));
}
stmt1.close();

Connection con2 = getConn();
con2.setAutoCommit(false);
String sql2 = "insert into employee(name,salary) values(\"gigi\",1000)";
Statement stmt2 = con2.createStatement();
stmt2.executeUpdate(sql2);
con2.commit();
stmt2.close();
con2.close();

System.out.println("===========================");
Statement stmt11 = con1.createStatement();
ResultSet rs11 = stmt11.executeQuery(sql1);
while(rs11.next()){
System.out.print(rs11.getInt(1) + " ");
System.out.print(rs11.getString(2) + " ");
System.out.println(rs11.getString(3));
}
stmt11.close();
con1.commit();
con1.close();
}

public static void main(String[] args) throws Exception {

//demo1();
//demo2();
demo3();
}


实际打印结果为:
1 gigi 1000
===========================
1 gigi 1000

预期的结果应该是:
1 gigi 1000
===========================
1 gigi 1000
2 gigi 1000

请高手 帮我看看这个代码.为啥隔离级别设置成ISOLATION_REPEATABLE_READ了,却不能幻像读
按照文档
ISOLATION_READ_UNCOMMITTED
ISOLATION_READ_COMMITTED
ISOLATION_REPEATABLE_READ 都是应该允许幻像读的
我用的是 mysql 的 InnoDB 存储引擎 .文档上说支持4个标准的事务隔离
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值