当前位置: 首页 > news >正文

学成在线项目笔记

业务层开发

DAO开发示例

  1. 生成实体类对应的mapper和xml文件

  2. 定义MybatisPlusConfig,用于扫描mapper和配置分页拦截器

    @MapperScan("com.xuecheng.content.mapper")
    @Configuration
    public class MybatisPlusConfig {@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor(){MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));return interceptor;}
    }
    
  3. 测试mapper功能

    在这里插入图片描述
    (1)测试单元测试时必须要有启动类,否则会报错
    (2)配置文件连接数据库

service示例

  1. 创建service接口,创建实现类,以查询课程信息为例:

    @Service
    public class CourseBaseInfoServiceImpl implements CourseBaseInfoService {@AutowiredCourseBaseMapper courseBaseMapper;@Overridepublic PageResult<CourseBase> queryCourseBaseList(PageParams pageParams, QueryCourseParamsDto queryCourseParamsDto) {LambdaQueryWrapper<CourseBase> wrapper = new LambdaQueryWrapper<>();// 构建查询条件,根据课程名称查询wrapper.like(StringUtils.isNotEmpty(queryCourseParamsDto.getCourseName()),CourseBase::getName, queryCourseParamsDto.getCourseName());// 构建查询条件,根据审核状态查询wrapper.eq(StringUtils.isNotEmpty(queryCourseParamsDto.getAuditStatus()),CourseBase::getAuditStatus, queryCourseParamsDto.getAuditStatus());// 构建查询条件,根据课程发布状态查询wrapper.eq(StringUtils.isNotEmpty(queryCourseParamsDto.getPublishStatus()),CourseBase::getAuditStatus, queryCourseParamsDto.getPublishStatus());// 分页查询Page<CourseBase> page = new Page<>(pageParams.getPageNo(), pageParams.getPageSize());Page<CourseBase> selectPage = courseBaseMapper.selectPage(page, wrapper);return new PageResult<CourseBase>(selectPage.getRecords(),selectPage.getTotal(), pageParams.getPageNo(), pageParams.getPageSize());}
    }
    
  2. 存在问题
    (1)由于本项目将controller和service分成了两个模块,controller放在了api模块,service和mapper放在了service模块。所以数据库连接配置写在了service的配置文件中。配置文件结尾必须是yaml,yml结尾会出错。
    (2)最开始将配置文件放在了service模块的test目录下用于单元测试,导致api模块调用service中的服务时会出现数据库连接没有配置,这是因为模块之间相互引用只会引用main目录下的文件,test目录下的不会引用,需要将service中的配置文件放在main目录下的resource中。
    (3)并且如果想在test中测试接口,也需要在test中的resource配置数据库连接。
    (4)如果pom中添加个禁止过滤文件,也需要将yaml文件加入进去

    <build><!-- 如果不添加此节点mybatis的mapper.xml文件都会被漏掉。 --><resources><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.xml</include><include>**/*.yaml</include></includes><filtering>false</filtering></resource><resource><directory>src/main/resources</directory><includes><include>**/*.properties</include><include>**/*.xml</include><include>**/*.yaml</include></includes><filtering>false</filtering></resource></resources></build>
    
http://www.lryc.cn/news/15267.html

相关文章:

  • FreeRTOS队列
  • rancher2安装nfs-subdir-external-provisioner为PVC/PV动态提供存储空间(动态分配卷)
  • 1.JAVA-JDK安装
  • Java必备小知识点4——数据类型、数组、位运算符
  • 麦克风分类汇总
  • 九龙证券|机制改革激发转融券活力 全面注册制释放两融展业新空间
  • 6——JVM调优工具详解及调优实战
  • AcWing语法基础课笔记 第八章 C++ STL 第九章 位运算与常用库函数
  • Qt中的多线程
  • React-Hooks怎样封装防抖和节流-面试真题
  • 算法训练营 day51 动态规划 打家劫舍系列
  • 【蓝桥集训】第六天——递归
  • react源码中的hooks
  • 038.Solidity入门——25调用其他合约的方法
  • Revit项目浏览器的标准设置应用和快速视图样板?
  • 安装MQTT Server遇到报错“cannot verify mosquitto.org‘s certificate”,该如何解决?
  • 程序员如何向架构师转型?看完就明白该怎么做了
  • Flask入门(9):蓝图
  • 跑步戴哪种耳机好,最适合运动跑步的蓝牙耳机
  • 微信小程序实现瀑布流布局
  • 2023最新网络工程师HCIA-Datacom“1000”道题库,光速刷题拿证
  • [蓝桥杯] 递归与递推习题训练
  • 领航智能汽车信息安全新征程 | 云驰未来乔迁新址
  • Kaldi语音识别技术(七) ----- 训练GMM
  • Java 集合基础
  • Day896.MySql的kill命令 -MySQL实战
  • L2-010 排座位
  • C++的完美讲解,还不快来看看?
  • C语言学习_DAY_5_循环结构while和for语句【C语言学习笔记】
  • JavaScript高级程序设计读书分享之4章——4.3垃圾回收