Spring整合Mybatis步骤——Spring5+mybatis3.5+mybatis-spring2(MAVEN版本)

Spring整合Mybatis

  1. 加入mybatis-spring的插件及mybatis的包

  2. 在核心配置文件加入数据源,事务管理器,tx:annotation-driven

  3. 增加三个包,分别是com.oracle.mapper(映射文件 ),com.oracle.vo(值对象),com.oracle.dao(数据访问接口)

  4. 在核心配置文件中增加一个SqlSessionFactory对象,配置如下

    <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <property name="mapperLocations" value="classpath*:com/oracle/mapper/*.xml">    </property>
    </bean>
  5. 在核心配置文件创建Mapper扫描配置;它的功能是可以根据dao接口和映射文件来生成dao 实现类;配置如下

    <bean id="configure" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.oracle.dao"></property>
    </bean>

    也可使用mybatis -spring命名空间,使用这个会更加容易

    <mybatis-spring:scan base-package="com.oracle.dao" />   
  6. 在工程中创建service包,并在此包中增加Service接口及实现类,在实现中注入Dao,并完成业务操作即可;

注意:mybatis与mybatis-spring存在版本冲突的问题mybatis3.2.8与mybatis-spring1.2.3经测试,无问题;

参考:http://www.mybatis.org/spring/:插件文档

Spring5+mybatis3.5+mybatis-spring2 可以整合;

完整的xml配置文件

    <!-- 数据源 -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
        <property name="user" value="root"></property>
        <property name="password" value="tiger"></property>
        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/books"></property>
        <property name="driverClass" value="com.mysql.jdbc.Driver"></property>
        <property name="initialPoolSize" value="1"></property>
    </bean>
    
    <!-- Mybatis  的SqlSessionFactoryBean 用来创建SqlSessionFactory -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <property name="mapperLocations" value="classpath*:com/oracle/mapper/*.xml"></property>
        <property name="typeAliasesPackage" value="com.oracle.vo"></property>
        <!-- 配置mybatis 核心配置文件的位置 -->
        <property name="configLocation" value="classpath:mybatis.xml"></property>
    </bean>
    
    <!-- 扫描接口并动态绑定 -->
    <mybatis-spring:scan base-package="com.oracle.mybatis.dao"/>

mybatis的配置文件 mybatis.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>
        <!--打印日志可以看执行的sql语句-->
        <setting name="logImpl" value="LOG4J"/>
    </settings>
</configuration>

log4j配置文件

#定义LOG输出级别  
log4j.rootLogger=DEBUG,INFO,Console,File  
#定义日志输出目的地为控制台  
log4j.appender.Console=org.apache.log4j.ConsoleAppender  
log4j.appender.Console.Target=System.out  
#可以灵活地指定日志输出格式,下面一行是指定具体的格式  
log4j.appender.Console.layout = org.apache.log4j.PatternLayout  
log4j.appender.Console.layout.ConversionPattern = [%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m  %l%n
 
#文件大小到达指定尺寸的时候产生一个新的文件  
log4j.appender.File = org.apache.log4j.RollingFileAppender  
#指定输出目录  
log4j.appender.File.File = logs/ssm.log  
#定义文件最大大小  
log4j.appender.File.MaxFileSize = 10MB  
#输出所以日志,如果换成DEBUG表示输出DEBUG以上级别日志  
log4j.appender.File.Threshold = ALL  
log4j.appender.File.layout = org.apache.log4j.PatternLayout  
log4j.appender.File.layout.ConversionPattern = [%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m  %l%n
#mybatis日志配置 需要将日志的输出级别调为debug
log4j.logger.com.ibatis=DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
#与sql相关
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

pom文件

<!--此版本经验证可用-->
<dependencies>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.4.RELEASE</version>
        </dependency>
​
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
            <version>5.2.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.2.4.RELEASE</version>
        </dependency>
​
​
        <!-- https://mvnrepository.com/artifact/com.mchange/c3p0 -->
        <dependency>
            <groupId>com.mchange</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.5.5</version>
        </dependency>
​
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.48</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.4</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>2.0.1</version>
        </dependency>
​
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.14</version>
        </dependency>
    </dependencies>

猜你喜欢

转载自blog.csdn.net/qqyb2000/article/details/105129602