ORM框架——Mybatis(一)(6)
一、实验目的
(1)掌握Spring Boot整合Mybatis的基本方法
(2)掌握XML方式编写Mapper层
(3)掌握注解方式编写Mapper层
二、实验用的仪器和材料
(1)硬件:PC或Mac一台;8G及以上内存,40G硬盘空间
(2)软件环境:Windows 10/11操作系统或其他支持JVM的操作系统
三、实验的步骤和方法
(1)按照实验手册,为在线问答API项目增加MySQL数据库存储。
2.0 MySQL数据库中新建test数据库,新建problems表
2.1 打开实验5中编写的qasystemrest项目
2.2 添加mybatis相关依赖
2.3 添加mysql数据库、mybatis的配置
2.4 增加mapper包,在mapper包中添加po子包
2.5 在po包中编写Problem实体类
2.6 在mapper包中定义ProblemMapper接口,根据需求分别定义问题的添加、查找方法
2.7 在resources下新增mapper目录,新增ProblemMapper.xml文件
2.8 在ProblemMapper.xml文件中对2.6的ProblemMapper接口中定义方法进行实现
2.9 重构Service和Controller, 使Service层只依赖于ProblemMapper, Controller层只依赖于Service层,不再在Service层手动维护ProblemList。
2.10 使用POSTMAN调试
四、数据记录和计算
(1)按照实验手册,为在线问答API项目增加MySQL数据库存储。
2.0 MySQL数据库中新建test数据库,新建problems表
2.1 打开实验5中编写的qasystemrest项目
2.2 添加mybatis相关依赖
2.3 添加mysql数据库、mybatis的配置
2.4 增加mapper包,在mapper包中添加po子包
2.5 在po包中编写Problem实体类
2.6 在mapper包中定义ProblemMapper接口,根据需求分别定义问题的添加、查找方法
2.7 在resources下新增mapper目录,新增ProblemMapper.xml文件
2.8 在ProblemMapper.xml文件中对2.6的ProblemMapper接口中定义方法进行实现
2.9 重构Service和Controller, 使Service层只依赖于ProblemMapper, Controller层只依赖于Service层,不再在Service层手动维护ProblemList。
2.10 使用POSTMAN调试
增加代码
新增问题
查看新增的问题
修改问题
查看修改的问题
删除问题
五、备注或说明
一开始使用postman调试一直出现报错
之后看到了idea的报错2023-10-11T20:19:23.407+08:00 ERROR 32624 --- [nio-8080-exec-5] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.lang.NullPointerException: Cannot invoke "java.lang.Integer.intValue()" because "this.id" is null] with root cause
java.lang.NullPointerException: Cannot invoke "java.lang.Integer.intValue()" because "this.id" is null
at edu.seig.qasystemrest.service.bo.Problem.createPo(Problem.java:19) ~[classes/:na]
at edu.seig.qasystemrest.service.AskService.addProblem(AskService.java:18) ~[classes/:na]
推断出是id的问题,于是将problem类中的这部分更改后能够正常调试