美文网首页SpringBoot
SpringBoot+MyBatis(一)

SpringBoot+MyBatis(一)

作者: 忧郁的小码仔 | 来源:发表于2017-04-11 13:58 被阅读211次

    前面几篇文章简单介绍了MyBatis的配置和使用,今天我们来在SpringBoot中整合MyBatis做一个简单的小demo.关于MyBatis的基础使用,请参考下列文章:
    MyBatis(一)单表操作
    MyBatis(二)多表关联
    MyBatis(三)动态SQL

    好,下面正式开始,这里使用的开发工具还是IDEA, 数据库和表沿用上面三篇文章中的Article,Author和Comment表。
    1.新建一个SpringBoot工程,工程中包含MyBatis, MySql和Web三个模块。

    屏幕快照 2017-04-11 上午9.38.16.png 屏幕快照 2017-04-11 上午9.38.48.png 屏幕快照 2017-04-11 上午9.39.12.png 屏幕快照 2017-04-11 上午9.39.21.png 屏幕快照 2017-04-11 上午9.40.27.png 工程目录

    2.按照标准的普通的web工程结构划分,本工程包含controller, dao, domain, service几个层。简单说明一下几个包和文件的用途:
    dao层:用来存放MyBatis Mapper映射接口类。
    DemoApplication:这个是SpringBoot工程的入口文件,像本例中配置Mapper映射类扫描路径就是在这里配置的。
    ArticleMapper.xml:这个是SQL配置文件,关于MyBatis的sql写法有两种,一种是用xml配置,另一种就是使用注解。个人倾向于xml配置,一方面可以集中管理,另一方面,使用注解没有xml配置来的灵活。
    application.properties:SpringBoot工程的配置文件,数据源和MyBatis的一些配置都写在这个文件中。说到配置文件,我们也可以新建,比如开发环境一个.properties文件,正式环境一个.properties文件,然后在applaction.properties中进行切换。

    3.好了,现在,我们来看一下每个文件中的内容:
    先说application.properties:

    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    spring.datasource.url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf8
    spring.datasource.username=root
    spring.datasource.password=123456
    
    ##格式化json输出
    spring.jackson.serialization.indent-output=true
    
    ##实体类包路径,该路径下的实体类在Mapper文件中可直接使用类名,不需要再写完整的类路径。
    mybatis.type-aliases-package=com.archer.example.domain
    mybatis.mapper-locations=classpath:mapper/*.xml
    

    spring.datasource那几行用来配置数据源,包括驱动,路径,用户名和密码等。
    spring.jackson.serialization.indent-output用来格式化json输出,自己可以体会下不设置会怎样。
    最后两个用来设置mybatis的实体类路径和mapper文件的路径。
    mapper/*.xml表示mapper文件下所有的xml文件。

    ArticleDao:

    @Repository
    public interface ArticleDao {
        Article findArticleTitleLike(@Param("title") String title);
    }
    

    findArticleTitleLike对应ArticleMapper.xml中select元素的id.
    这里的@Param("title")用来指定Mapper XML文件中sql 语句参数的名字。当然你也可以这么写:

    Article findArticleTitleLike(Map<String, Object> paramMap);
    

    然后在paramMap中指定一个key为"title"的键值对参数。

    DemoApplication:

    @SpringBootApplication
    
    //Mapper接口类扫描设置
    @MapperScan("com.archer.example.dao")
    public class DemoApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(DemoApplication.class, args);
        }
    }
    

    这里我们需要配置Mapper映射接口类的扫描路径
    @MapperScan("com.archer.example.dao")用来指定哪个路径下放置的是Mapper映射接口类。SpringBoot会根据这个目录下面的类动态生成一个对应的接口实现类。

    其他的文件不再介绍,ArticleMapper.xml中不明白的可以参考文章开头的三篇文章。

    打开浏览器,输入
    http://localhost:8080/api/getArticle?articleTitle=文章名称

    屏幕快照 2017-04-11 下午2.14.12.png

    最终demo

    相关文章

      网友评论

        本文标题:SpringBoot+MyBatis(一)

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