SpringBoot+MyBatis(一)

前面几篇文章简单介绍了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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容