mybatis整合spring

1.引入jdbc的配置文件 使用配置文件 不是使用系统属性
<context:property-placeholder location="jdbc.properties" system-properties-mode="FALLBACK"/>

  1. 配置数据源
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="${jdbc.driver}"></property>
        <property name="url" value="${jdbc.url}"></property>
        <property name="username" value="${jdbc.username}"></property>
        <property name="password" value="${jdbc.password}"></property>
</bean>
  1. 配置SqlSessionFactoryBean 对象
    [mybatis.xml] (https://www.jianshu.com/p/4fcd802faf82)
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!--  mybatis 核心配置文件 -->
        <property name="configLocation" value="mybatis.xml"/>
        <property name="dataSource" ref="dataSource"/>
</bean>

mybatis里面的数据源、日志、别名、插件、mapper都被整合到<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
标签

 <!-- 配置 Configuration-->
    <bean id="configuration" class="org.apache.ibatis.session.Configuration">
        <!-- 指定日志工具 -->
        <property name="logImpl" value="org.apache.ibatis.logging.log4j.Log4jImpl"/>
        <!-- 配置缓存 -->
        <property name="cacheEnabled" value="true"/>
    </bean>
    <!--3. 配置SqlSessionFactoryBean 对象-->
    <bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!--  配置数据源 -->
        <property name="dataSource" ref="dataSource"/>
        <!-- 配置包下类别名 多个包之间使用 逗号分隔 -->
        <property name="typeAliasesPackage" value="com.bjpowernode.domain"/>
        <!-- 配置插件 -->
        <property name="plugins">
            <array>
                <bean id="pageInterceptor" class="com.github.pagehelper.PageInterceptor"/>
            </array>
        </property>
        <!-- 注入configuration -->
        <property name="configuration" ref="configuration"/>
        <!-- 配置映射文件 -->
        <property name="mapperLocations" value="mapper/**/*Mapper.xml"></property>
    </bean>
    <!-- 4.扫描所有的Mapper接口 自动创建Mapper的代理对象  -->
    <bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!-- 待扫描的mapper 接口的包名 多个之间使用逗号分隔 -->
        <property name="basePackage" value="com.bjpowernode.mapper"/>
        <!--注入SqlSessionFactoryBean 用于创建SqlSession -->
        <!--
            SqlSessionFactoryBean 是可以自动装配的 但是 如果存在多个数据源时,可以指定SqlSessionFactoryBean
            区分数据源
        -->
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactoryBean"/>
    </bean>

4.扫描所有的Mapper接口 自动创建Mapper的代理对象

<bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!-- 待扫描的mapper 接口的包名 多个之间使用逗号分隔 -->
        <property name="basePackage" value="com.bjpowernode.dao"/>
        <!--注入SqlSessionFactoryBean 用于创建SqlSession -->
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactoryBean"/>
</bean>

5.事务管理器

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <!-- 配置数据源  指定要管理那个数据源的事务 -->
        <property name="dataSource" ref="dataSource" />
</bean>

6.开启组件扫描
<context:component-scan base-package="com.*" />

7.开启事务注解
<tx:annotation-driven transaction-manager="transactionManager" />

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容