zoukankan      html  css  js  c++  java
  • Mybatis——Spring整合

    一、引入依赖

    • Spring的相关jar包
    • mybatis-3.4.1.jar
    • mybatis-spring-1.3.0.jar
    • mysql-connector-java-5.1.37-bin.jar
    • c3p0-0.9.1.2.jar

    二、配置applicationContext.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:mybatis-spring="http://mybatis.org/schema/mybatis-spring"
           xmlns:tx="http://www.springframework.org/schema/tx"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
            http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsd
            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
    
        <!-- Spring希望管理所有的业务逻辑组件,等。。。 -->
        <context:component-scan base-package="com.nchu.mybatis">
            <context:exclude-filter type="annotation"
                                    expression="org.springframework.stereotype.Controller" />
        </context:component-scan>
    
        <!-- 引入数据库的配置文件 -->
        <context:property-placeholder location="classpath:db.properties" />
        <!-- Spring用来控制业务逻辑。数据源、事务控制、aop -->
        <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
            <property name="jdbcUrl" value="${url}"></property>
            <property name="driverClass" value="${driver}"></property>
            <property name="user" value="${username}"></property>
            <property name="password" value="${password}"></property>
        </bean>
        <!-- spring事务管理 -->
        <bean id="dataSourceTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource"></property>
        </bean>
    
        <!-- 开启基于注解的事务 -->
        <tx:annotation-driven transaction-manager="dataSourceTransactionManager"/>
    
        <!--
        整合mybatis
            目的:1、spring管理所有组件。mapper的实现类。
                    service==>Dao   @Autowired:自动注入mapper;
                2、spring用来管理事务,spring声明式事务
        -->
        <!--创建出SqlSessionFactory对象  -->
        <bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="dataSource"></property>
            <!-- configLocation指定全局配置文件的位置 -->
            <property name="configLocation" value="classpath:mybatis-config.xml"></property>
            <!--mapperLocations: 指定mapper文件的位置-->
            <property name="mapperLocations" value="classpath:mapper/*.xml"></property>
        </bean>
    
        <!--配置一个可以进行批量执行的sqlSession  -->
        <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
            <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactoryBean"></constructor-arg>
            <constructor-arg name="executorType" value="BATCH"></constructor-arg>
        </bean>
    
        <!-- 扫描所有的mapper接口的实现,让这些mapper能够自动注入;
        base-package:指定mapper接口的包名
         -->
        <mybatis-spring:scan base-package="com.nchu.mybatis.dao"/>
        <!-- <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <property name="basePackage" value="com.atguigu.mybatis.dao"></property>
        </bean> -->
    
    </beans>

    三、mybatis-config.xml配置

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configuration
            PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-config.dtd">
    
    <configuration>
    
        <settings>
            <setting name="mapUnderscoreToCamelCase" value="true"/>
            <!--  开启延时加载-->
            <setting name="lazyLoadingEnabled" value="true"></setting>
            <setting name="aggressiveLazyLoading" value="false"></setting>
        </settings>
    
    </configuration>
  • 相关阅读:
    C语言随笔_printf输出多行
    C语言随笔_return答疑
    《疯狂Java讲义》(二十八)---- 异常
    《疯狂Java讲义》(二十七)----泛型
    《疯狂Java讲义》(二十七)---- Collections
    《疯狂Java讲义》(二十六)---- Map
    《疯狂Java讲义》(二十五)---- List 集合
    《疯狂Java讲义》(二十四)---- Set集合
    Problem(2)----How to set eclipse console locale/language
    Problem(1)----Eclipse hangs on copy/cut for JavaScript files
  • 原文地址:https://www.cnblogs.com/realshijing/p/8087906.html
Copyright © 2011-2022 走看看