java web 开发,使用ssh框架,我知道的是使用JDBC编程时,总是这样的步骤,创建一个连接,

在可以在连接内开启事物,然后可以访问数据库,即执行SQL语句,最后关闭连接。相当于一次访问数据库过程。我现在的困惑是,使用hibernate,在service层使用@Tr... 在可以在连接内开启事物,然后可以访问数据库,即执行SQL语句,最后关闭连接。相当于一次访问数据库过程。
我现在的困惑是,使用hibernate,在service层使用@Transactional(readOnly = true)注解进行事物控制,那连接数据库,关闭数据库是在哪操作的?有哪个大神知道的,给小弟解释下,不胜感激!对这个过程很不了解啊~~~~
展开
 我来答
332442181
2013-09-03 · TA获得超过109个赞
知道答主
回答量:98
采纳率:0%
帮助的人:71万
展开全部
在applicationContext中可以对事务进行配置,使用注解的方式注入事务,在访问数据库时,spring的事务管理器会自动的进行事务管理,结束后进行事务提交,如果中间出现出现异常则会自动回滚事务,详细可以看看org.springframework.orm.hibernate3.HibernateTransactionManager这个类的源码其中的doBegin方法,如果出现异常,则会有:
session.getTransaction().rollback();
SessionFactoryUtils.closeSession(session);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2a06c5a
2013-09-03 · TA获得超过188个赞
知道小有建树答主
回答量:133
采纳率:100%
帮助的人:97.9万
展开全部
Hibernate是委托c3p0管理数据库连接的,c3p0是数据库连接池。你用的连接都由他来管理,这样连接就可以复用减少系统开销。这个连接何时初始化,何时销毁,何时新建都是由配置文件来确认的。
追问
感谢您的回答,请问,你说的,这个链接何时初始化,何时销毁,何时新建都由配置文件决定的,这个配置文件一般是什么配置文件?即在哪个配置文件里面配置的?
追答

你使用了spring集成了的话一般是在jdbc.properties里面。然后由spring给他设置进去。

一般applicationContext.xml里面会有这段配置:

    <bean id="dataSource0"
        class="com.mchange.v2.c3p0.ComboPooledDataSource"
        destroy-method="close">
        <property name="driverClass" value="${ds0.jdbc.driverClassName}" />
        <property name="jdbcUrl" value="${ds0.jdbc.url}" />
        <property name="user" value="${ds0.jdbc.username}" />
        <property name="password" value="${ds0.jdbc.password}" />
        <property name="minPoolSize" value="${ds0.jdbc.minPoolSize}" />
        <property name="maxPoolSize" value="${ds0.jdbc.maxPoolSize}" />
        <property name="maxIdleTime" value="${ds0.jdbc.maxIdleTime}" />
        ....字数超长后面省略了
    </bean>
    
    里面的${}是取properties里面的内容。但这个就是配置c3p0的最终的地方
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式