第三十五章:Mybatis的集成和使用

前言

SpringBoot的集成和使用

通用配置

注解方式

xml方式

枚举类型处理器配置

参考资料

总结

最后

老生常谈

SpringBoot的集成和使用

是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。可以使用简单的 注解来配置和映射原生信息,将接口和Java的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

这里介绍基于 和 两种方式进行配置。同时使用 进行集成。

这里选用的mybatis-spring-boot-starter版本为: 。对应Mybatis版本为:

通用配置

两种方式都引入一下的 配置:

这里以 表为例子,数据库为mysql

`

实体类 为:

状态枚举类 :

配置文件:application.properties

启动类

注解方式

0.创建注解版的mapper:

简单对以上相关注解进行说明下:

@Select 是查询类的注解,所有的查询均使用这个

@Result 修饰返回的结果集,关联实体类属性和数据库字段一一对应,如果实体类属性和数据库属性名保持一致,就不需要这个属性来修饰。

@Insert 插入数据库使用,直接传入实体类会自动解析属性到对应的值

@Update 负责修改,也可以直接传入对象

@delete 负责删除

@Options 映射语句的属性,如新增时需要返回自增的ID时:

具体的可以去官网查阅:http://www.mybatis.org/mybatis-3/zh/java-api.html

2.指定mapper扫描包路径,使用注解

注意:若使用 进行数据连接池管理,也可以在此类中进行 的相关配置。

3.编写测试类进行测试。

运行测试用例后,就可以看见效果了。

具体控制台输出就输出了,可下载源码自行测试下。

xml方式

0.配置xml版的mapper。

没啥区别,就是讲sql语句放入到了xml中进行编写而已。

1.编写mapper.xml配置映射文件。

2.mybatis配置文件。

对于特殊的类型,可以通过 进行配置。稍后章节也会讲解想通过其他的方式进行配置。

3.创建xml方式配置文件: ,配置xml和config的路径地址

4.编写测试类: 此类和 类似的,唯一区别就是制定了运行环境变量为:xml

枚举类型处理器配置

在实体对象中我们设置了枚举类型: 。在 中对于枚举的默认配置是由 处理类进行处理的,其会默认使用 进行赋值。同时 还提供了一个 处理类,其是根据枚举的索引值进行赋值的。

注册类型处理类有很多中方式,但每一种方式最后都是通过 类进行处理的,这里讲解下通过多种方式进行配置。

配置文件中新增属性: :配置处理类的路径。

处理类示例: 。这里直接继承 进行自定义。

其中, 指定了哪些类型指定此处理类的。

自定义 类进行配置(推荐)。

通过 来获取 进行配置。

以上三种都可以进行相关类型的处理类配置,建议直接使用第二种。

完整的 类:

参考资料

http://www.mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/index.html

http://www.mybatis.org/mybatis-3/zh/

https://github.com/mybatis/generator

总结

本章节主要简单介绍了 集成的两种模式。两种模式各有特点,注解版适合简单快速的模式,而xml方式适合相对复杂的sql语句,写在xml中,可以进行统一修改,而不需要去修改java代码。对于原生使用 而言,感觉也是比较简单的,就是写起语句比较麻烦,都需要手动去编写。对于代码生成器,大家可执行搜索相关材料下,大致看了下有点麻烦。所以还是选择一个脚手架吧,是一个很好的选择。当然了其他的脚手架框架了,大家可自行根据实际情况进行抉择。前几天去看博客评论时,有人觉得开发本来就很累了还要学习这种小框架,我觉得吧,这些小框架可以节省多少繁琐的工作呀。让开发人员可以专注于业务代码,多美好的一件事情呀。将近两星期没有写,可能写的有些乱了,大家可以直接下载源码示例进行查看下,原本想分开两个工程进行讲解,感觉也没有必要,就合并在一起了,通过不同的环境配置进行切换,还请谅解呀!

最后

目前互联网上很多大佬都有 系列教程,如有雷同,请多多包涵了。原创不易,码字不易,还希望大家多多支持。若文中有所错误之处,还望提出,谢谢。

老生常谈

个人QQ:

微信公众号:

完整示例:https://github.com/xie19900123/spring-boot-learning/tree/master/chapter-35

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181203G08IOP00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券