〖使用iBatis做select后不提交也不回滚问题〗

可能大家会笑select不需要commit,没谁会使用tran来select.
但ibatis使用connection后一律会setAutoCommite(false);
所以是应该commit,但它没有----当配置ibatis的连接来自连接池时就是如此,我的是jboss4的连接池
<dataSource type="JNDI">
<property name="DataSource" value="java:/SY_JXC"/>
</dataSource>
如果配置ibatis的连接来自己创建的连接时它会自动commit
<dataSource type="SIMPLE">
<property name="JDBC.Driver......
</dataSource>

执行下面申请隔离级别的select后可以看到数据库(sybase)中有了琐
<statement id="mys" parameterClass="java.lang.String" resultMap="mys_result">

有谁知道原因吗?
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
SELECT COL1 FROM TABLE1
</statement>



可能大家会笑select不需要commit,没谁会使用tran来select.
但ibatis使用connection后一律会setAutoCommite(false);
所以是应该commit,但它没有----当配置ibatis的连接来自连接池时就是如此,我的是jboss4的连接池
<dataSource type="JNDI">
<property name=
"DataSource" value="java:/SY_JXC"/>
</dataSource>
如果配置ibatis的连接来自己创建的连接时它会自动commit
<dataSource type=
"SIMPLE">
<property name=
"JDBC.Driver......"/>
</dataSource>

执行下面申请隔离级别的select后可以看到数据库(sybase)中有了琐
<statement id=
"mys" parameterClass="java.lang.String" resultMap="mys_result">
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
SELECT COL1 FROM TABLE1
</statement>

原来要commitRequired="true"呀:)

如果是这样,使用iBatis查询性能不是要打折扣吗?