#加载mybatis依赖java
<!-- mysql --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.32</version> </dependency> <!-- mybatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>${spring.mybatis.version}</version> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-autoconfigure</artifactId> <version>${spring.mybatis.version}</version> </dependency>
#建立一个公共的组件依赖类 建立一个组件公共类ModuleConfig,说一下为何建立这个类,若是你的项目须要分包,分模块,分工程最终进行组合依赖的话,这个公共组件能够在每一个包下建一个,进行管理指定包、项目的依赖已经未来可能的扩展mysql
固然若是你的项目只是一个Web业务 没有我说的分布式、分包、分模块这个类能够不用建,该类中的注解均可以在启动类上来写,效果同样的。web
下段代码就是该类的所有,简单说一下,@Configuration 进行配置注册,@MapperScan这个是告知你的Mapper类是在哪一个位置的,这样设定以后,就不须要在每一个Mapper类上加注解@Mapper了,能够看一下【其余代码中的Mapper】spring
@Configuration @MapperScan("com.dengzy.kuj.mybatis.dao") public class ModuleConfig { }
#其余的代码sql
启动类:@EnableTransactionManagement开启事务管理apache
@SpringBootApplication @EnableTransactionManagement public class FwApplication { public static void main(String[] args) { SpringApplication.run(FwApplication.class); } }
Mapper类缓存
@Repository("userMapper") public interface UserMapper { int deleteByPrimaryKey(Long id); int insert(User record); int insertSelective(User record); User selectByPrimaryKey(Long id); int updateByPrimaryKeySelective(User record); int updateByPrimaryKey(User record); }
Service及其实体类就此忽略.....tomcat
#配置文件springboot
其实这个mybatis的配置文件默承认以,若是你须要根据业务和需求进行调整mybatis那么能够以下配置:mybatis
#application.yml配置文件 spring: datasource: url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&autoReconnect=true&characterEncoding=utf8 username: root password: root driver-class-name: com.mysql.jdbc.Driver tomcat: minIdle: 5 maxActive: 20 initialSize: 5 timeBetweenEvictionRunsMillis: 60000 minEvictableIdleTimeMillis: 300000 validationQuery: SELECT 1 testWhileIdle: true testOnBorrow: false testOnReturn: false #mybatis的优化配置等等,若是你不须要去掉也能够 mybatis: config-location: classpath:META-INF\mybatis-config.xml
下面这个是mybatis的配置文件信息,基本没有用什么东西,算是一个记录,须要的你们能够根据需求来。
<?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="cacheEnabled" value="false"/> <!-- 查询时,关闭关联对象即时加载以提升性能 --> <!--<setting name="lazyLoadingEnabled" value="true"/>--> <!--<!– 设置关联对象加载的形态,此处为按需加载字段(加载字段由SQL指定),不会加载关联表的全部字段,以提升性能 –>--> <!--<setting name="aggressiveLazyLoading" value="false"/>--> <!--<!– 对于未知的SQL查询,容许返回不一样的结果集以达到通用的效果 –>--> <!--<setting name="multipleResultSetsEnabled" value="true"/>--> <!--<!– 容许使用列标签代替列名 –>--> <!--<setting name="useColumnLabel" value="true"/>--> <!--<!– 容许使用自定义的主键值(好比由程序生成的UUID 32位编码做为键值),数据表的PK生成策略将被覆盖 –>--> <!--<setting name="useGeneratedKeys" value="true"/>--> <!--<!– 给予被嵌套的resultMap以字段-属性的映射支持 –>--> <!--<setting name="autoMappingBehavior" value="FULL"/>--> </settings> </configuration>
访问一下,证实我成功了(单元测试我也有,我准备是单元测试单独写一篇,这个就用了)
项目结果以下图
#关于IDEA工具不编译src目录下的xml问题
最新的Idea工具不会把src目录下的xml看成源码编译,这样就致使dao里面的Mapper与对应的xml对应不上,此处有两种方式,
一种是把xml放到resource下,创建一个目录好比mapper,放进去,而后在配置文件中配置以下
#mybatis mybatis: config-location: classpath:META-INF\mybatis-config.xml mapper-locations: classpath:mapper/*.xml #指定mapper.xml位置
另外一种就是用maven的插件,在pom.xml中代码有注释,在<bulid>中添加以下代码
<resources> <!-- 解决IDEA不编译src下的xml问题 --> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources>
#完整的pom.xml配置文件
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.dengzy.kuj</groupId> <artifactId>springboot-mybaties</artifactId> <version>1.0-SNAPSHOT</version> <!-- 公共配置信息 --> <properties> <springframework.version>4.3.3.RELEASE</springframework.version> <spring.boot.version>1.4.3.RELEASE</spring.boot.version> <spring.mybatis.version>1.1.1</spring.mybatis.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> </properties> <!-- 依赖包管理 --> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring.boot.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <!-- Spring Boot核心依赖包 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 单元测试 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency> <!-- mysql --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.32</version> </dependency> <!-- mybatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>${spring.mybatis.version}</version> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-autoconfigure</artifactId> <version>${spring.mybatis.version}</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>${spring.boot.version}</version> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>springloaded</artifactId> <version>1.2.2.RELEASE</version> </dependency> </dependencies> </plugin> </plugins> <resources> <!-- 解决IDEA不编译src下的xml问题 --> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> <include>**/*.properties</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.properties</include> <include>**/*.yml</include> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> </resources> </build> </project>