zoukankan      html  css  js  c++  java
  • spring mybatis整合

      mybatis和spring整合的配置方法有很多,核心都是一个矛盾:如何让spring管理mybatis为mapper生成的代理对象。

    1、配置数据源

      单独使用mybatis的时候数据源是在mybatis配置文件中配置的,有了spring现在可以交给spring管理。

            <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
                    <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
                    <property name="url" value="jdbc:mysql://localhost:3306/javaee"/>
                    <property name="username" value="root"/>
                    <property name="password" value="password"/>
            </bean>

    2、配置mybatis.xml

      即使是和spring整合一起使用,mybatis也需要通过某种方式能够读取并使用mybatis.xml文件,为此需要使用spring-mybatis整合包中提供的类sqlSessionFactoryBean。这个bean可以有许许多多的可供配置选项这里只配置了两个:1、数据源 2、mybatis.xml

            <bean class="org.mybatis.spring.SqlSessionFactoryBean" id="sqlSessionFactoryBean">
                    <property name="dataSource" ref="dataSource"/>
                    <property name="configLocation" value="mybatis.xml"/>
    
            </bean>

      mybatis.xml的写法也和之前不同,不仅不需要写数据源也不需要写mapper接口的位置了!!!,mapper接口文件的位置将在后面配置

    <configuration>
        <settings>
            <setting name="logImpl" value="STDOUT_LOGGING" />
            <setting name="mapUnderscoreToCamelCase" value="true"/>
        </settings>
        <environments default="default">
            <environment id="default">
                <transactionManager type="JDBC"></transactionManager>
                <dataSource type="POOLED">
                    <!--<property name="driver" value="com.mysql.jdbc.Driver"/>-->
                    <!--<property name="url" value="jdbc:mysql://localhost:3306/javaee"/>-->
                    <!--<property name="username" value="root"/>-->
                    <!--<property name="password" value="password"/>-->
                </dataSource>
            </environment>
        </environments>
    
        <!--<mappers>-->
            <!--<package name="mapper"/>-->
        <!--</mappers>-->
    </configuration>

    3、让spring知道mapper接口在哪

      这一步仍然也是有很多方法,这里只记录最简单且实用性较强的方法。

      首先第一步是让spring容器管理mapper接口的bean,即使用@Repository注解。

    @Repository
    public interface UserMapper {
        public User getUserById(long id);
    }

      第二步让spring把这mapper的bean和mybatis整合起来,使用MapperScannerConfigurer,MapperScannerConfigurer也是spring-mybatis下的一个bean。顾名思义,这个bean可以以包扫描的方式去加载一个mapper包下的所有mapper。

            <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
                <property name="annotationClass" value="org.springframework.stereotype.Repository"/>
                <property name="sqlSessionFactoryBeanName" value="sqlSessionFactoryBean"/>
                <property name="basePackage" value="mapper"/>
            </bean>
  • 相关阅读:
    【1801日語听解4】第14回:6月9日
    【日語听解2】第14回:6月8日
    【日語視聴説2】第14回:6月8日
    【日本語新聞編集】第13回:6月5日
    【1801日語写作】第13回:6月4日
    【日本語新聞選読】第13回:6月2日
    Win10版本
    家庭或小规模无线使用方
    批处理bat复制命令Copy与Xcopy
    批处理bat删除命令
  • 原文地址:https://www.cnblogs.com/AshOfTime/p/10615392.html
Copyright © 2011-2022 走看看