我们将会给出MP具体开发流程的后续操作(1),例如文件的反向映射、以及使用postman等。如若需要查看添加依赖,请点这条链接:Mybatis-Plus的开发流程 -- 准备阶段
目录
一、文件的反向映射
使用MyBatisX插件针对表进行反向映射,生成对应的mapper接口、业务接口和对应的映射元文件。
1.1首先创建数据源
首先点击IDEA界面最右边有一个Database,点开之后会出现如下界面:
在这里,你需要填写自己的数据库名称,及密码。。。
1.2在DataSource窗口中右键点击数据表的名称执行MyBatisX
注意:ClassName进行修改的时候与后面的操作有很大关系!好了,现在点击next
至此,反向映射文件完成。
1.3检查反向映射生成的內容,如果有不合理的地方需要进行修改。
MP针对注解提供的主键生成策略
AUTO:id自增
NONE: 不设置id生成策略
INPUT:用户手工输入id
ASSIGN_ID:雪花算法生成id
ASSIGN_UUID:以UUID生成算法作为id生成策略
雪花算法生成的是一个64bit大小的整数,一般用于分布式应用中,如果针对数据库进行了横切,如何保 证id值的唯一性
41bit的时间戳:用来记录时间戳,毫秒级
10bit的工作机器id:用来记录工作机器id
12bit的序列号:占用12bit,每个节点每毫秒0开始不断累加,最多可以累加到4095,一 共可以产 生4096个ID
ASSIGN_UUID ASSIGN_UUID是自动生成一个不重复的、长度为32字符长的字符串,也能在分布式系统中使用。
二、RESTful的实现
如果采用的是按需编程的方式进行开发,则下一步建议编写控制器,由控制类的定义过程中总结出业 务类所需要的方法
RESTful是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定 义。RESTFUL适用于移动互联网厂商作为业务接口的场景,实现第三方OTT调用移动网络资源的功能, 动作类型为新增、变更、删除所调用资源。
- 如果查询则使用GET、如果新创建则POST、如果删除的DELETE、如果修改则PUT
- get和post之间的区别
- http协议的请求流程以及不同版本的区别
- http协议和https协议的区别
RESTful的实现等级
- 0级:传统的RPC,基于SOAP的WS,调用的服务名,参数放在HTTP协议的body里面,同时必须以 POST方式提交,问题在于你必须清楚的知道所有服务,子服务,及其参数的信息,并且需要知道 各种服务的不同点
- 1级:利用resource概念,把所有服务都抽取成resource概念,从body中提取到header里,这样 做的好处就是如果你知道一个服务地址,你可能无需知道具体服务是什么,依照资源的惯例就访问 到服务,比如查询id=1的书籍信息时使用路径/books/1
- 2级:利用HTTP动词,HTTP定义了4种动词,GET获取服务器资源,POST在服务器上创建新资 源,PUT更改服务器上资源,DELETE删除服务器上资源,任何操作都可以看成增删改查,所以利 用标准的http verb加上resource(/book/1)就能准确地操作资源,当你不知道服务具体是什么的 时候也可以轻易按照惯例访问到服务,然而服务供应商更改服务也需要遵循惯例,不会像RPC那样 轻易更改服务接口
- 3级:最高级别,HATEOS超媒体既应用状态引擎。这个意思是说,对于任何服务都存在很多子服 务,你只需要知道第一个服务的入口,便可以依据服务返回结构的自描述性得到下一个服务的入 口,这样在服务供应商修改服务的时候,不会影响到客户端的调用
2.1在RESTful应用中需要和前端充分沟通,建议通信的数据规范
@Data
public class JsonResult implements Serializable {
private int code;//自定义的响应状态码,不是http规范中的响应码,一般用于给前端更详细的信
息
private Boolean success; //可有可无,给前端一个简单的响应状态提示
private String message; //服务器端生成的响应提示信息
private Object data;//响应数据
}
2.2控制器类的定义
@RestController // @Controller+@ResponseBody
@RequestMapping("/catalogs")
public class CatalogController {
@Autowired //@Resource
private CatalogService catalogService;
@GetMapping
public JsonResult getAllCatalogs(){
List<Catalog> catalogList= catalogService.list();
return JsonResult.success("所有类目列表",catalogList);
}
}
三、使用Postman进行测试
3.1插入测试数据
insert into tbl_catalog values(1,'计算机图书','计算机图书'),(2,'烹饪图书','做菜的书'),
(3,'音乐图书','教你音乐入门');
3.2postman的用法
四、常见问题
4.1应用启动报错UnsatisfiedDependencyException,查看报错信息的详细提示
可以看到报错为com.yan.mapper.CatalogMapper没有注册,所以需要添加MyBatisPlus配置类或者在 主类上添加配置
@MapperScan(basePackages = "com.yan.mapper") //注册自动扫描mapper接口,完成mapper接
口的注册
@SpringBootConfiguration //用于声明当前类时一个配置类
public class MybatisPlusConfig {
}
最后的更新也完成啦,最后一篇文章对类目进行分页显示、业务缓存、注解开发请戳:Mabits-Plus的开发流程-- 后续操作(2)