## 前言
* 实体类建好了,那么下面我们来建和数据库打交道的`Service`和`Mapper`类 。
* 因为这俩兄弟是为业务服务的,不需要被其他服务调用,所以会放到`blade-demo`这个业务工程内。
* 若其他服务需要调用本服务的一些API,则需要用到微服务远程调用,而不是直接引用`Service`和`Mapper`。
* 微服务远程调用将在下一章节讲解。
## 创建package
在`blade-demo`中新建`service`和`mapper`两个package
![](https://box.kancloud.cn/1112a34849ff02ed1026dab10b3bba1c_334x200.png)
## 创建Service
1. 创建名为`BlogService`的接口类
![](https://box.kancloud.cn/62e37c003a126a91e0830ad8440d0df4_366x157.png)
2. 创建名为`BlogServiceImpl`的接口实现类(放在service的imp包下)
![](https://box.kancloud.cn/ee4afd4969de3b18ffb827aaae3598ac_366x157.png)
## 创建Mapper
1. 创建名为`BlogMapper`的接口类
![](https://box.kancloud.cn/4ef70db7ce14aa6e242028242d0e2d18_366x157.png)
2. 创建名为`BlogMapper`的XML文件
![](https://box.kancloud.cn/9ef5e985c351c847323898bd21c863e9_406x145.png)
3. `BlogMapper.xml`内容如下,`通用查询映射结果`则做到了实体类与数据库字段对应的关系
~~~
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.demo.mapper.BlogMapper">
<!-- 通用查询映射结果 -->
<resultMap id="blogResultMap" type="org.springblade.demo.entity.Blog">
<result column="id" property="id"/>
<result column="blog_title" property="blogTitle"/>
<result column="blog_content" property="blogContent"/>
<result column="blog_date" property="blogDate"/>
<result column="is_deleted" property="isDeleted"/>
</resultMap>
</mapper>
~~~
4. 注意`BlogMapper.xml`的`namespace`和`resultMap` 的`type`要指向正确的地址
5. `namespace`指向对应的`BlogMapper.java`接口类 ,`type`指向对应的`Blog.java`实体类
## 增加配置
1. `BlogMapper`增加mybatis-plus的配置
~~~
package org.springbalde.demo.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.demo.entity.Blog;
public interface BlogMapper extends BaseMapper<Blog> {
}
~~~
2. `BlogService`增加mybatis-plus的配置
~~~
package org.springbalde.demo.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.demo.entity.Blog;
public interface BlogService extends IService<Blog> {
}
~~~
3. `BlogServiceImpl`增加mybatis-plus的配置
~~~
package org.springbalde.demo.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springbalde.demo.mapper.BlogMapper;
import org.springbalde.demo.service.BlogService;
import org.springblade.demo.entity.Blog;
import org.springframework.stereotype.Service;
@Service
public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements BlogService{
}
~~~
## 注意
SpringBlade默认的mybatis扫描包名为`org.springblade`,不在此目录下的bean无法被mybatis扫描到,但大家作为各自的项目,新的服务肯定会使用其他的包名,这种情况需要自己额外定义一个配置类,配置包扫描的路径,以及mybatis-plus扫描bean-alias的配置。
![](https://box.kancloud.cn/42a88d5e1999cf4ff985fc260345f63d_888x342.png)
![](https://box.kancloud.cn/89d79c14a3e453f4d1143d5f48ed74f7_1588x898.png)
## 结束
好了,与mybatis-plus的集成已经结束,那么下面我们开始与数据库交互的第一步,增删改查的基本做法吧!
- 第零章 序
- 序言
- 系统架构
- 视频公开课
- 开源版介绍
- 商业版介绍
- 功能对比
- 答疑流程
- 第一章 快速开始
- 升级必看
- 环境要求
- 环境准备
- 基础环境安装
- Docker安装基础服务
- Nacos安装
- Sentinel安装
- 插件安装
- 建数据库
- 工程导入
- 导入Cloud版本
- 导入Nacos配置
- 导入Boot版本
- 工程运行
- 运行Cloud版本
- 运行Boot版本
- 工程测试
- 测试Cloud版本
- 测试Boot版本
- 第二章 技术基础
- Java
- Lambda
- Lambda 受检异常处理
- Stream 简介
- Stream API 一览
- Stream API (上)
- Stream API (下)
- Optional 干掉空指针
- 函数式接口
- 新的日期 API
- Lombok
- SpringMVC
- Swagger
- Mybatis
- Mybatis-Plus
- 开发规范
- 第三章 开发初探
- 新建微服务工程
- 第一个API
- API鉴权
- API响应结果
- Redis缓存
- 第一个CRUD
- 建表
- 建Entity
- 建Service和Mapper
- 新增 API
- 修改 API
- 删除 API
- 查询 API
- 单条数据
- 多条数据
- 分页
- 微服务远程调用
- 声明式服务调用 Feign
- 熔断机制 Hystrix
- 第四章 开发进阶
- 聚合文档
- 鉴权配置
- 跨域处理
- Xss防注入
- 自定义启动器
- Secure安全框架
- Token认证简介
- Token认证配置
- PreAuth注解配置
- Token认证实战
- Token认证加密
- 日志系统
- 原理解析
- 功能调用
- Seata分布式事务
- 简介
- 编译包启动
- 配置nacos对接
- docker启动
- 对接微服务
- 代码生成配置
- 前言
- 数据库建表
- 代码生成
- 前端配置
- 优化效果
- 第五章 功能特性
- SaaS多租户
- 概念
- 数据隔离配置
- 线程环境自定义租户ID
- 多终端令牌认证
- 概念
- 系统升级
- 使用
- 第三方系统登录
- 概念说明
- 对接说明
- 对接准备
- 配置说明
- 操作流程
- 后记
- UReport2报表
- 报表简介
- 对接配置
- 报表后记
- 动态数据权限
- 数据权限简介
- 数据权限开发
- 纯注解配置
- Web全自动配置
- 注解半自动配置
- 数据权限注意点
- 动态接口权限
- 乐观锁配置
- 统一服务登陆配置
- Skywalking追踪监控
- Minio分布式对象存储
- Boot版本对接至Cloud
- 第六章 生产部署
- windows部署
- linux部署
- jar部署
- docker部署
- java环境安装
- mysql安装
- docker安装
- docker-compose安装
- harbor安装
- 部署步骤
- 宝塔部署
- 准备工作
- 安装工作
- 部署准备
- 部署后端
- 部署前端
- 部署域名
- 结束工作
- k8s平台部署
- 第七章 版本控制
- Git远程分支合并
- Git地址更换
- 第八章 学习资料
- 第九章 FAQ
- 第十章 联系我们