首页 > 其他分享 >动力节点2023最新MybatisPlus学习笔记(二)基础篇

动力节点2023最新MybatisPlus学习笔记(二)基础篇

时间:2023-04-18 11:35:36浏览次数:50  
标签:Mapper MybatisPlus updateById 接口 User 2023 Testvoid 节点 user

2 【基础篇】

2.1 通用Mapper接口介绍

有关于通用Mapper接口,之前我们已经看到了,我们自己编写的Mapper接口继承自BaseMapper接口,由BaseMapper接口提供了很多单表的增删改查相关的操作方法,在入门案例中,我们测试了查询所有的操作。在这一章节,我们介绍一些简单的Mapper接口中的方法,主要是感受一下,Mapper接口中对于单表的增删改查的操作都有涉及。更加高级的一些操作,随后的章节会讲到。

2.1.1 Mapper接口-简单插入数据

插入一条数据

@Testvoid insert(){
    User user = new User();
    user.setId(6L);
    user.setName("Mike");
    user.setAge(33);
    user.setEmail("[email protected]");
    userMapper.insert(user);
}

2.1.2 Mapper接口-简单删除数据

根据id删除数据

@Testvoid deleteOne(){
    userMapper.deleteById(6L);
}

2.1.3 Mapper接口-简单修改数据

测试修改全部数据

@Testvoid updateById(){
    User user = new User();
    user.setId(6L);
    user.setName("迈克");
    user.setAge(35);
    user.setEmail("[email protected]");
    userMapper.updateById(user);
}

测试修改部分数据

@Testvoid updateById(){
    User user = new User();
    user.setId(6L);
    user.setName("Mike");
    user.setAge(35);
    user.setEmail("[email protected]");
    userMapper.updateById(user);
}

2.1.4 Mapper接口-简单查询数据

根据Id查询

@Testvoid updateById(){
    User user = new User();
    user.setId(6L);
    user.setName("Mike");
    user.setAge(35);
    user.setEmail("[email protected]");
    userMapper.updateById(user);
}

查询所有

@Testvoid selectList() {
    List<User> userList = userMapper.selectList(null);
    System._out_.println(userList);
}

2.1.5 小结

本章我们测试了通过接口提供的基本增删改查的实现,可以感受到,将来我们有这些增删改查需求的时候,直接找到对应的方法调用,由Mapper接口的代理对象就会直接给我们拼接好指定的SQL语句,完成查询。 本章节我们测试了一些基本的增删改查操作,有关于条件查询、分页查询等高级的查询操作,在随后章节会统一讲解。

2.2 通用service接口介绍

除了Mapper接口,MybatisPlus还提供了IService接口和对应的实现类ServiceImpl,该实现类已经提供好了一些对应的Service相关的方法,在某些场景下,我们可以直接使用ServiceImpl提供的方法,实现对应的功能。

IService接口

动力节点2023最新MybatisPlus学习笔记(二)基础篇 _List

IService接口中包含了service相关的一些增删改查方法

动力节点2023最新MybatisPlus学习笔记(二)基础篇 _mybatisplus_02

ServiceImpl实现类

动力节点2023最新MybatisPlus学习笔记(二)基础篇 _增删改查_03

ServiceImpl实现类提供了service相关的增删改查方法的实现

动力节点2023最新MybatisPlus学习笔记(二)基础篇 _User_04

UserService接口继承自IService接口

动力节点2023最新MybatisPlus学习笔记(二)基础篇 _List_05

UserServiceImpl类继承ServiceImpl<UserMapper,User>

动力节点2023最新MybatisPlus学习笔记(二)基础篇 _增删改查_06

动力节点2023最新MybatisPlus学习笔记(二)基础篇 _mybatis_07

注入UserService对象,测试相关方法

2.2.1 Service接口-简单插入数据

@Testvoid insertService(){
    User user = new User();
    user.setId(7L);
    user.setName("zhangsan");
    user.setAge(35);
    user.setEmail("[email protected]");

    userService.save(user);
}

2.2.2 Service接口-简单删除数据

@Testvoid deleteService(){
    userService.removeById(7L);
}

2.2.3 Service接口-简单修改数据

@Testvoid updateService(){
    User user = new User();
    user.setId(6L);
    user.setAge(40);
    userService.updateById(user);
}

2.2.4 Service接口-简单查询数据

@Testvoid selectService(){
    List<User> userList = userService.selectList();
    System._out_.println(userList);
}

2.2.5 小结

通过继承MybatisPlus提供的Service接口,我们既可以拓展自己的service方法,也可以使用现有的一些service方法

2.3 自定义接口方法

MybatisPlus除了给我们提供了这些丰富的接口方法以外,对于我们自己的需求,也可以编写自定义的接口方法,我们通过自己编写SQL语句的形式,实现想要的SQL需求

2.3.1 自定义Mapper接口方法

Mapper接口中提供抽象方法

@Mapperpublic interface UserMapper extends BaseMapper<User> {
       User selectByName(String name);
}

提供映射配置文件,提供对应的SQL语句

动力节点2023最新MybatisPlus学习笔记(二)基础篇 _增删改查_08

_<?_xml version="1.0" encoding="UTF-8" _?>_<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd"_>_<mapper namespace="com.powernode.mapper.UserMapper">

     <select id="selectByName" resultType="com.powernode.domain.User">
        select * from user where name = #{value}
     </select>

</mapper>

测试自定义的Mapper接口方法

@Testvoid myMethod(){
    User user = userMapper.selectByName("Jone");
    System._out_.println(user);
}

2.3.2 小结

通过本章节的学习,我们学会了自定义接口的方法,自定义接口的语法规范和之前编写Mybatis的语法规范一样,所以可以看出,MybatisPlus是无侵入式的,也就是引入了MybatisPlus并不会对于原先的语法造成任何改变。

标签:Mapper,MybatisPlus,updateById,接口,User,2023,Testvoid,节点,user
From: https://blog.51cto.com/u_16077156/6202744

相关文章

  • 【通知】2023上半年网络工程师软考考试最新公告
    012023年上半年计算机软件资格考试报考提醒各位考生:2023年上半年计算机技术与软件专业技术资格(水平)考试报考工作即将开始。在此,提醒各位报考人员:计算机技术与软件专业技术资格(水平)考试是国家职业资格考试,实行统一大纲、统一命题、统一组织,请报考人员登录中国计算机技术职业资格网h......
  • MyBatis-使用注释方法执行操作案例-2023-04-18
    第一步:编写工具类,注意openSession参数如增加true,则为事务自动提交packagecom.feijian.utils;importorg.apache.ibatis.io.Resources;importorg.apache.ibatis.session.SqlSession;importorg.apache.ibatis.session.SqlSessionFactory;importorg.apache.ibatis.sess......
  • 【2023-04-17】爱情萌芽
    20:00胆小鬼连幸福都会惧怕,碰到棉花都会受伤,有时也会被幸福所伤。                                                 ——太宰治我最近爱上了一部爱情偶像连续剧,下班看......
  • 【2023-04-16】连岳摘抄
    23:59中国哲学儒、墨、道、法各家,传承数千年而蕴涵着中国文化的内涵,各有其普世的价值。这种普世价值,是指在人文精神的照耀下,老、孔、墨、庄的思想多散发出普世的情怀,即老子的贵柔及其宽容心态、孔子的恕道及其家庭伦理、墨子的兼爱与非攻思想、庄子的艺术人生和齐物精神。  ......
  • 产品原型14-20230417
             ......
  • 《白》 赋诗一首,2023.04.17
    白白色的冬天在我们的岁月中度过,欢快的笑脸在我们的冬天中度过,白白的雪花就是我欢快的来源,场场的大雪就是我们快乐的来源。 世界啊!哪一年没有冬?哪一个冬没有雪?哪一个雪中,没有我们欢乐的玩耍?......
  • 中电金信《2023商业银行大零售数字化转型白皮书》重磅发布
    4月13日,第六届零售银行发展大会在上海举办。中电金信基于对商业银行零售业务的理解和对行业的创新发展趋势研究,为银行零售业务的发展献计献策,在会上发布《商业银行大零售数字化转型白皮书》。白皮书总结了数字化转型的宏观环境、数字化时代商业银行零售业务主要特点、银行的转型困......
  • 2023-04-17 算法面试中常见的树和递归问题
    二叉树和递归0LeetCode297二叉树的序列化和反序列化序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。请设计一个算法来实现二叉树的序列化与......
  • 2023/4/17笔记
    bind函数std::bind函数定义在头文件functional中,是一个函数模板,是函数适配器f - Callableobject(functionobject,pointertofunction,referencetofunction,pointertomemberfunction,orpointertodatamember)thatwillbeboundtosomearguments(参数).Cal......
  • 2023/4/17
    现在要开发一个系统,管理对多种汽车的收费工作。给出下面的一个基类框架classVehicle{protected:stringNO; public:Vehicle(stringn){NO=n;} virtualintfee()=0;//计算应收费用};以Vehicle为基类,构建出Car、Truck和Bus三个类。Car的收费公式为:载客......