美文网首页
SpringBoot 整合Mybatis(XML方式)+Myba

SpringBoot 整合Mybatis(XML方式)+Myba

作者: DF_ | 来源:发表于2018-01-23 17:06 被阅读0次

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 并安装


image.png

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


成功运行springBoot 可以看到其内置的tomcat是在8080端口, 所以要注意8080端口不能被其它应用占用
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

mapper 遇到的坑
参考资料:

springboot(六):如何优雅的使用mybatis(介绍了SpringBoot整合Mybatis的两种方式,本文主要的参考文档,感谢前辈们)
TKmybatis框架介绍和原理分析
SpringBoot+MyBatis通用Mapper3实践浅析

相关文章

网友评论

      本文标题:SpringBoot 整合Mybatis(XML方式)+Myba

      本文链接:https://www.haomeiwen.com/subject/indsaxtx.html