zoukankan      html  css  js  c++  java
  • Mybatis入门笔记(5)——连接池及事务

    Mybatis的连接池及事务

    (了解,会用)

    Mybatis连接池

    配置的位置

    主配置文件SQLMapConfig.xml中的dataSource标签,type属性就是表示采用何种连接池方式。

    type的取值

    • POOLED:采用传统的javax.sql.DataSource规范中的连接池,mybatis中有针对规范的实现
    • UNPOOLED:采用传统的获取连接的方式,虽然也实现javax.sql.DataSource接口,但是并没有采用池的思想
    • JNDI:采用服务器提供的JNDI技术实现,来获取DataSource对象,不同的服务器所能拿到的DataSource是不一样的。如果不是web或maven的war工程,是不能使用的。我们使用的是tomcat服务器,采用连接池就是dbcp连接池。

    举例:

    使用POOLED

    <dataSource type="POOLED">
        <!--配置连接数据库的4个基本信息-->
        <property name="driver" value="${jdbc.driver}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </dataSource>
    

    使用UNPOOLED

    <dataSource type="UNPOOLED">
        <!--配置连接数据库的4个基本信息-->
        <property name="driver" value="${jdbc.driver}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </dataSource>
    

    事务控制的分析

    Mybatis 中事务的提交方式,本质上就是调用 JDBC 的 setAutoCommit()来实现事务控制。

    这是我们的 Connection 的整个变化过程, 通过分析我们能够发现之前的 CUD 操作过程中,我们都要手动进行事务的提交,原因是 setAutoCommit()方法,在执行时它的值被设置为 false 了,所以我们在 CUD 操作中,必须通过 sqlSession.commit()方法来执行提交操作。

    那么如何设置成自动提交呢?

    如图所示

    //4.使用工厂生产SqlSession对象
    session = factory.openSession(true);
    

    此时事务就设置为自动提交了

  • 相关阅读:
    VMware虚拟机安装红帽系统无法上网解决办法(转)
    二维指针的malloc内存分配(转)
    c语言中如何通过二级指针来操作二维数组
    如何把一个二维数组的地址赋给一个二维指针?
    二维数组及二维指针的传递及一些思考(转)
    js怎么让时间函数的秒数在页面上显示是变化的
    jquery 实现各种统计图网址
    WEB的相关知识总结
    JS同名方法,
    web components思想如何应用于实际项目
  • 原文地址:https://www.cnblogs.com/benjieqiang/p/11204267.html
Copyright © 2011-2022 走看看