hibernate DAO中加了事物,未提交 如题,我在DAO 中加了事物, 我执行查询语句,未commit 会有其他隐患问题吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 由于之前的select的代码加了事物,但是没有提交,这有隐患吗?会不会连接数据库的连接不会释放之类的问题 查询是不需要commit,你没明白我的意思 commit应该不会牵涉到数据库连接关不关闭等的额外问题,料仅仅只是做了将数据的修改永久提交至数据库。 也就是说我查询的时候有 org.hibernate.Transaction tx = session.beginTransaction(); 但是不去commit他,和数据库session连接是没有关系的?(包括连接的释放等) 因为连接的管理不应该由事务直接来控制,一个DataSource下可以有多个Transaction,一个Transaction完成后如果默认就关闭了连接,那其它Transaction还要重新打开连接?太低效了。从设计的角度讲,连接由DataSourceManager自己来管理更好,当然不排除它会选择这样一种策略的可能性:事务提交后关闭连接,但这个更会是一种特殊情况。 总的来说,就是要看session管理是如何配置的如果使用的是transaction scoped session那么提交事务就会导致关闭session<session-factory> <!-- Database connection settings --> <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property> <property name="connection.url">jdbcracle:thin:scott/tiger@(description=(address_list=(address=(protocol=tcp)(host=host1)(port=1521)))(source_route=yes)(connect_data=(sid=Ora9i)(SERVICE_NAME = Ora9i)) )</property> <property name="connection.username">scott</property> <property name="connection.password">tiger</property> <!-- JDBC connection pool (use the built-in) --> <property name="connection.pool_size">1</property> <!-- SQL dialect --> <property name="dialect">org.hibernate.dialect.Oracle9Dialect</property> <!-- Enable Hibernate's automatic session context management --> <property name="current_session_context_class">thread</property> <!-- Disable the second-level cache --> <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property> <!-- Echo all executed SQL to stdout --> <property name="show_sql">true</property> <property name="hbm2ddl.auto">create</property> <!-- Drop and re-create the database schema on startup --> <property name="hibernate.default_schema">scott</property> <mapping resource="Emp.hbm.xml"/> <!--mapping resource="test100.hbm.xml"--> </session-factory> 其中<property name="current_session_context_class">thread</property> hibernate session与当前线程绑定,当事务提交后,session也被关闭。 找不到类 org.hibernate.criterion.Criterion 急!有人知道knime吗?用过的都请进来一下 iframe跨域操作,提示“没有权限”,如何解决 MyEclipse6.6配置struts2 这两天研究数据库连接池,在插入中文数据时总是乱码,始终没解决好,哪位好心人能给个连接池实例?!多谢! 关于递归方法中使用vector数组的问题 这个语句可行吗? Excel与数据库之间的数据导入、导出,POI和jxl哪个更好一些? JSON问题 swiftGantt集成到JavaWeb SSH中action返回JSON数据格式问题 关于防止网页中的查询数据被抓取
<session-factory>
<!-- Database connection settings -->
<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="connection.url">jdbcracle:thin:scott/tiger@(description=(address_list=(address=(protocol=tcp)(host=host1)(port=1521)))(source_route=yes)(connect_data=(sid=Ora9i)(SERVICE_NAME = Ora9i)) )</property>
<property name="connection.username">scott</property>
<property name="connection.password">tiger</property>
<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property>
<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>
<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>
<property name="hbm2ddl.auto">create</property>
<!-- Drop and re-create the database schema on startup -->
<property name="hibernate.default_schema">scott</property>
<mapping resource="Emp.hbm.xml"/> <!--mapping resource="test100.hbm.xml"--> </session-factory> 其中<property name="current_session_context_class">thread</property>
hibernate session与当前线程绑定,当事务提交后,session也被关闭。