数据持久化技术——MP(二)

简介: 数据持久化技术——MP(二)

5 开始前端控制器的编码

复制controller层的框架整体,和前端进行交互的页面


@RequestMapping("/queryAll")
public List<Singer> queryAll() {
  // 先演示普通的查询,再逆序查询
    return null;
}
@RequestMapping("/queryByName")
public List<Singer> queryByName(String name) {
  // 使用lambdaQueryWrapper 的like方法模糊查询
  // list方法查询到所有的符合条件值并返回
    return null;
}
@PostMapping("/save")
public String save(HttpServletRequest request) {
  Singer singer = new Singer();
    singer.setName(request.getParameter("name"))
            .setSex(Integer.parseInt(request.getParameter("sex")))
            .setPic(request.getParameter("pic"))
            .setBirth(new Date())
            .setLocation(request.getParameter("location"))
            .setIntroduction(request.getParameter("introduction"));
  // 调用save方法,并判断返回值的正误,返回前端对应的字符串
    return null;
}
@RequestMapping("/update")
public String update(int id, String introduction) {
    // 使用eq和set去设置条件构造器
    // 调用update传入条件构造器,并判断返回值的正误,返回前端对应的字符串
    return null;
}
@RequestMapping("/delete")
public String delete(Integer id) {
  // 调用removeById方法直接删
    return null;
}


 SQL语句是数据持久化技术的核心,jdbc使用String字符串拼接SQL语句;mybatis使用xml映射文件在标签里编写SQL语句;但是,MP无需使用SQL语句(一些复杂的业务可以使用SQL语句来完成),直接调用方法即可在框架的底层实现SQL语句的拼接和执行。

 在这里来查看一下mp的官方开发文档,大概讲一下几个方法的大概用处,然后摁住Ctrl查看源码,知道为什么可以使用这些方法完成相应的功能。


首先是注入SingerService对象


@Autowired
private SingerService service;


 这里的用法是spring框架的控制反转,即将设计好的类对象注册进spring的IOC容器中将对象的控制权交给容器,当需要使用的时候就使用@Autowired注解让容器创建一个对象出来使用。完成的作用相当于使用new的方式调用类的构造器创建一个对象


查询所有的记录


@RequestMapping("/queryAll")
public List<Singer> queryAll() {
    List<Singer> singers = service.list();
    return singers;
}


 逆序查询的话就需要在SQL语句拼接order by id desc,这个拼接条件的功能就需要使用wrapper构造器来完成了


5.1 wrapper构造器

 总而言之,wrapper构造器的作用就是用来拼装where,order by等条件语句的作用,如果你的增删改查无需条件的话,可以不用wrapper,但凡需要使用SQL语句需要拼接条件的话就需要使用wrapper。更加具体的wrapper案例分析参考博客wrapper构造器的简要案例分析

image.png

逆序查询所有记录的方法


逆序查询所有
http://localhost:8888/singer/queryAll


@RequestMapping("/queryAll")
public List<Singer> queryAll() {
    LambdaQueryWrapper<Singer> lambdaQueryWrapper = new LambdaQueryWrapper<>();
    lambdaQueryWrapper.orderByDesc(Singer::getId);
    List<Singer> singers = service.list(lambdaQueryWrapper);
    return singers;
}
相关文章
ly~
|
安全 生物认证 数据库
有哪些常见的身份验证错误和漏洞?
本文介绍了常见的网络安全问题,包括弱密码、密码重用、身份验证流程缺陷、会话管理问题和社会工程学攻击。具体涉及简单密码易被破解、多平台使用同一密码、缺乏多因素认证、身份验证绕过、会话劫持与固定、钓鱼攻击和伪装攻击等。这些问题可能导致用户信息泄露和系统安全风险。
ly~
1417 5
|
7月前
|
人工智能 大数据 BI
DeepSeek-R1模型全栈开发与部署实战培训高级研修班
掌握DeepSeek-R1模型从本地部署到工业级落地的全栈技术能力,包括环境配置、模型微调、推理优化及AI Agent开发等核心环节,能够独立完成基于RTX 4090的模型全生命周期开发任务。通过真实场景案例与全链路项目实战,培养将大模型技术转化为教育、企业服务等垂直领域解决方案的能力,涵盖需求分析、性能调优及工程化部署等关键技能,满足学术研究与产业落地的双重需求。
174 0
|
数据采集 数据可视化 算法
【优秀python案例】基于Python的豆瓣电影TOP250爬虫与可视化设计与实现
本文设计并实现了一个基于Python的豆瓣电影TOP250爬虫与可视化系统,通过获取电影评分、评论并应用词云和饼图等可视化技术,为用户提供了电影评价的直观展示和深入分析。
2574 3
【优秀python案例】基于Python的豆瓣电影TOP250爬虫与可视化设计与实现
|
C++
QT第一个程序命名空间详解,解释ui_widget的和xxx.cpp的联系
QT第一个程序命名空间详解,解释ui_widget的和xxx.cpp的联系
477 0
|
机器学习/深度学习 人工智能 自然语言处理
当前AI大模型在软件开发中的创新应用与挑战
【10月更文挑战第31天】2024年,AI大模型在软件开发领域的应用取得了显著进展,从自动化代码生成、智能代码审查到智能化测试,极大地提升了开发效率和代码质量。然而,技术挑战、伦理与安全问题以及模型可解释性仍是亟待解决的关键问题。开发者需不断学习和适应,以充分利用AI的优势。
IDEA 出现问题:严重占用CPU 长时间在90~100%解决方案
IDEA 出现问题:严重占用CPU 长时间在90~100%解决方案
4168 0
IDEA 出现问题:严重占用CPU 长时间在90~100%解决方案
若依修改,修改代理线上接口登录后台,若依框架如何使用线上的接口,如何在本地获取网页上的接口
若依修改,修改代理线上接口登录后台,若依框架如何使用线上的接口,如何在本地获取网页上的接口
|
JSON Java API
Spring Boot中使用OpenAPI生成API文档
Spring Boot中使用OpenAPI生成API文档
|
并行计算 安全 Java
如何使用Java进行异步编程
如何使用Java进行异步编程
|
负载均衡 Java Linux
管道,信号量,共享内存,socket的实际使用场景和NSPipe管道的使用
管道,信号量,共享内存,socket的实际使用场景和NSPipe管道的使用
248 0