SpringBoot系列7-SpringBoot+mybatis+druid+TypeHandler

介绍在SpringBoot中集成mybatis和druid以及自定义TypeHandler

创建数据库表

xml方式

在pom.xml添加mybatis,druid,mysql驱动配置

在application.yml中配置mybatis

数据库信息相关配置

启动文件相关配置

说明:@MapperScan扫描注入指定的包名下Mapper接口注入容器

编写数据库表对应的Student实体类

编写StudentDao Mapper接口

编写StudentDao.xml Mapper.xml

编写StudentService

编写StudentController

在浏览器访问:http://localhost:8080/students得到结果

使用纯注解方式

StudentDao添加方法selectStudentListByAnnotation

StudentService添加方法selectStudentListByAnnotation

StudentController調用

在浏览器访问:http://localhost:8080/students得到与xml访问相同的结果

解决上面返回json数据的问题

从上面json的数据可以看出parentPhone和netName是多条数据通过逗号拼接成的一个字段,还有city是json字符串组成的文本这样前端拿到数据可能还需要进行处理成集合再遍历出来;city是一个json字符串文本,要想转化成json还需要一番周折,那么作为认真负责的后台开发的我们可以使用Mybatis的TypeHandler将parentPhone和netName转化成集合,将city转化成标准的json方便前端绑定数据。

处理逗号拼接的字符串为集合

首先我们看之前在application.yml中配置mybatis的一段代码

修改一下Student实体属性为集合

自定义typehandler

说明:setNonNullParameter方法会在保存数据库之前执行,我们在此方法将保存的数组使用逗号拼接还原数据库存储方式其他方法是从数据库取出数据时mybatis将把数据映射成实体类执行,此时我们将逗号拼接的字符串转换为数组形式

验收逗号拼接字符串转换为数组成果

浏览器输入http://localhost:8080/students可以看到原先逗号拼接的字符串已经转换为集合对象

解决最后一个问题:将city转化成标准的json方便前端绑定数据

定义CityBean

修改Student将CityBean作为他的属性

定义JsonCityBeanTypeHandler

如果是存储的是json集合字符串可以这样

修改student表添加一个visited字段(数据随便插入的不要当真哈!)

定义VisitedBean

定义JsonListTypeHandler

测试结果,浏览器输入:http://localhost:8080/students结果如下:

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20181201G09RON00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券