ORM框架——Mybatis(一)(6)

本文详细介绍了如何在SpringBoot项目中整合Mybatis,包括XML和注解方式编写Mapper,设置MySQL数据库连接,以及如何设计Service和Controller层以减少代码耦合。还涉及了数据记录和常见问题解决,如NPE(空指针异常)的排查。
摘要由CSDN通过智能技术生成

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类中的这部分更改后能够正常调试

  • 22
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值