1.问题引出:前端浏览器发起HTTP请求,后端服务器程序负责回应HTTP请求
试问:如何使得idea的Springboot实时读取MySQL上的数据?
2.引入关键技术Mybatis框架可以很好的解决这一问题
关于Mybatis的作用:MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
3.Mybatis读取MySQL数据的原理:
①:我们都知道Springboot可以读取前端浏览器发过来的HTTP请求;SQL可以读取Mysq数据库数据;但是我们缺少一个媒介,使SQL读取的数据转换为Springboot程序能够使用的Java类的对象。
②:Mybatis很好的解决的这一难题。它可以读取MySQL数据库数据,将数据转为Java类对象,并供Springboot程序使用。
4.MyBatis 读取MySQL 数据简单示例
①:新建项目的子模块,并新建项目Mybatis;
②:Web层选择Spring Web;SQL层选Mybatis Framework以及MySQL Driver
③:新建Mybatis文件成功后为新模块Mybatis添加Maven项目
④:MySQL数据库新建一张名为user1的表,并为这张表设计字段,添加记录以便生成数据供Mybatis读取;
⑤:在子模块的目录下分别新建四个软件包:Mapper、Domain、Service、Controller
⑤:Service、Mapper、Domain、 Controller各层的作用以及在Springboot项目中的具体代码:
Service:存放业务逻辑处理,也是一些关于数据库处理的操作,但不是直接和数据库打交道,他有接口还有接口的实现方法,在接口的实现方法中需要导入mapper层,mapper层是直接跟数据库打交道的,他也是个接口,只有方法名字,具体实现在mapper.xml文件里,service是供我们使用的方法。 (转自ljm_99 原文链接:https://blog.csdn.net/lijiaming_99/article/details/120584796)
Domain:实体层,用于存放我们的实体类,与数据库中的属性值基本保持一致,实现set和get的方法。(转自ljm_99 原文链接:https://blog.csdn.net/lijiaming_99/article/details/120584796)
Controller层:控制层,负责具体模块的业务流程控制,需要调用service逻辑设计层的接口来控制业务流程。因为service中的方法是我们使用到的,controller通过接收前端H5或者App传过来的参数进行业务操作,再将处理结果返回到前端。(转自ljm_99 原文链接:https://blog.csdn.net/lijiaming_99/article/details/120584796)
Mapper层:对数据库进行数据持久化操作,他的方法语句是直接针对数据库操作的,主要实现一些增删改查操作,在mybatis中方法主要与与xxx.xml内相互一一映射(转自ljm_99 原文链接:https://blog.csdn.net/lijiaming_99/article/details/120584796)
⑥:在resource资源目录下新建一个mapper包 在包内新建一个xml文件用来配置mapper;
⑦:在application.properties中配置 与数据库进行连接
⑧:在主程序中添加必要的注解
⑨:运行程序:
程序运行成功,此时我们打开Postman输入:http://localhost:8080/users(users为自定义的请求码可以自己设置)
出现以上情况说明 没有Springboot使用mybatis成功与MySQL下的数据库完成了连接和数据的读取!