Spring整合Mybatis
-
加入mybatis-spring的插件及mybatis的包
-
在核心配置文件加入数据源,事务管理器,tx:annotation-driven
-
增加三个包,分别是com.oracle.mapper(映射文件 ),com.oracle.vo(值对象),com.oracle.dao(数据访问接口)
-
在核心配置文件中增加一个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>
-
在核心配置文件创建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" />
-
在工程中创建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>