1: Maven Pom.xml 添加依赖
<dependencies>
<!-- SpringBoot核心模块,包括自动配置支持、日志和YAML; -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- 测试模块,包括JUnit、Hamcrest、Mockito。 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- Spring web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--mybatis 相关-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<!-- 建议使用最新版本 -->
<version>1.2.0</version>
</dependency>
</dependencies>
2: 创建SpringBoot项目
- 访问http://start.spring.io/
- 选择构建工具Maven Project、Spring Boot版本1.3.6以及一些工程基本信息,点击“Switch to the full version.”java版本选择1.7
- 点击Generate Project下载项目压缩包
- 解压后,使用eclipse,Import -> Existing Maven Projects -> Next ->选择解压后的文件夹-> Finsh,OK done!
3: Mybatis Generator plugin 安装(Eclipse)并配置Generator.xml
Mybatis generator 能帮助我们自动生成数据库对应的POJOs,DAOs和Mapper.xml。并实现了一些 基本的增删改查接口以及其对应的XML。在本文中,会将加入TKmybatis,使generator生成的Mapper 继承 TKmybatis提供的mapper。相比原始的generator, 整合Tkmybatis.mapper 后 生成的mapper.xml 将会显得更加简洁。
3.1 安装Mybatis generator 插件(Eclipse)
打开Eclipse ------ Help ------ Eclipse MarketPlace ------ 搜索mybatis generator 并安装
3.2 配置generatorConfig.xml 文件
在resources下新建generatorConfig.xml文件
generatorConfig.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<!--根节点 -->
<generatorConfiguration>
<!--properties resource 导入配置文件,可以把 一些常量比如 数据库的用户名,密码,url写在里面。如果想使用配置文件则可以直接在这里填写完整-->
<properties resource="config.properties"/>
<classPathEntry location="D:\java\lib\mysql\mysql-connector-java-5.1.44-bin.jar" /><!--驱动包的绝对路径-->
<context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">
<property name="javaFileEncoding" value="UTF-8"/>
<plugin type="tk.mybatis.mapper.generator.MapperPlugin">
<property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
<!-- caseSensitive默认false,当数据库表名区分大小写时,可以将该属性设置为true -->
<property name="caseSensitive" value="true"/>
</plugin>
<!--读取 property 内填写的值-->
<jdbcConnection driverClass="${jdbc.driverClass}"
connectionURL="${jdbc.url}"
userId="${jdbc.user}"
password="${jdbc.password}">
</jdbcConnection>
<javaModelGenerator targetPackage="${targetModelPackage}" targetProject="${targetJavaProject}"/>
<sqlMapGenerator targetPackage="mybatis.mapper" targetProject="SpringbootDF/src/main/resources"/>
<javaClientGenerator targetPackage="${targetMapperPackage}" targetProject="${targetJavaProject}" type="XMLMAPPER" />
<!-- 要生成的table -->
<table tableName="ir_robot_info" >
<generatedKey column="robot_id" sqlStatement="Mysql" identity="true"/>
</table>
</context>
</generatorConfiguration>
保存后,右键generatorConfig.xml 选择run as Mybatis Generator
遇到的坑:
1:有些文章中,targetProject处填写 src/main/java or resources 但实践中发现会出错,提示无法找到src项目。在src前面加入 项目名称即可(此处为SpringBootDF)
2: 关于 targetPackage , 在resources中new package 但显示的还是文件夹的样式,于是我在targetPackage中填入了 mybatis/mapper 结果被编译器教育。尝试修改成 mybatis.mapper 即可
3: 在使用 mybatis generator 时无法生成,一直提示无法找到config.properties 文件。google大法+百度大法+重启电脑大法+想念了一会周老师 后更新 eclipse 的generator插件后 解决。
4:SpringBoot 添加注解,并运行
4.1在application.java 处添加注解
@SpringBootApplication
@EnableScheduling // 写定时任务@Scheduled需要在主入口 增加该注解
@MapperScan("com.woosiyuan.dao") //此处填写 mapper接口所在包,如果不加则需要在每个 mapper上添加 @Mapper 注解。
public class SpringbootDfApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootDfApplication.class, args);
}
}
4.2编写Service,Controller 实现业务逻辑。
@RestController
public class TestController {
@RequestMapping("/test1")
public String getTest() {
return "test1";
}
}
直接运行 application.java run as java application 即可。不需要配置tomcat
4.3 访问浏览器
遇到的坑:
1:从springBoot官网下载的jar,导入进eclipse后,application.java 会生成在 以项目名 命名的包下。application.java 一定要放在根目录下,否则controller内的方法都无法运行。会产生404错误。解决方案: 把application.java 移动到 src/main/java 下。
2:mybatis.mapper 初始化失败,是因为配置的加载顺序导致的。1.2.0版本解决了该问题。解决方案:因为项目使用的是 spring boot 所以,导入的mapper依赖包也需要是mapper-spring-boot-starter。且需要将 application.java 的mapperscan 从spring官方改为tk,mybatis 。
ref:https://github.com/abel533/mapper-boot-starter/issues/8 http://blog.csdn.net/u010342008/article/details/77802855
参考资料:
springboot(六):如何优雅的使用mybatis(介绍了SpringBoot整合Mybatis的两种方式,本文主要的参考文档,感谢前辈们)
TKmybatis框架介绍和原理分析
SpringBoot+MyBatis通用Mapper3实践浅析