一、标准CRUD使用对于标准的CRUD功能都有哪些以及MyBatisPlus都提供了哪些方法可以使用呢?
我们先来看张图:
![四十一 增删查改分页 Java开发学习----MyBatisPlus标准数据层开发](http://img.zhejianglong.com/231020/0009252c9-0.png)
文章插图
1.1 环境准备这里用的环境就是Java开发学习(四十)----MyBatisPlus入门案例与简介中使用的环境
二、新增在进行新增之前,我们可以分析下新增的方法:
int insert (T t)
- T:泛型,新增用来保存新增数据
- int:返回值,新增成功后返回1,没有新增成功返回的是0
@SpringBootTestclass Mybatisplus01QuickstartApplicationTests {? @Autowired private UserDao userDao;? @Test void testSave() { User user = new User(); user.setName("黑马程序员"); user.setPassword("itheima"); user.setAge(12); user.setTel("4006184000"); userDao.insert(user); }}
执行测试后,数据库表中就会添加一条数据 。【四十一 增删查改分页 Java开发学习----MyBatisPlus标准数据层开发】
![四十一 增删查改分页 Java开发学习----MyBatisPlus标准数据层开发](http://img.zhejianglong.com/231020/0009254J2-1.png)
文章插图
但是数据中的主键ID,有点长,那这个主键ID是如何来的?我们更想要的是主键自增,应该是5才对,这个是我们后面要介绍的主键ID生成策略 , 这块的这个问题,我们暂时先放放 。
三、删除在进行删除之前 , 我们可以分析下删除的方法:
int deleteById (Serializable id)
- Serializable:参数类型
- 思考:参数类型为什么是一个序列化类?
文章插图
从这张图可以看出,
- String和Number是Serializable的子类,
- Number又是Float,Double,Integer等类的父类,
- 能作为主键的数据类型都已经是Serializable的子类 ,
- MyBatisPlus使用Serializable作为参数类型,就好比我们可以用Object接收任何数据类型一样 。
- String和Number是Serializable的子类,
- 思考:参数类型为什么是一个序列化类?
- int:返回值类型,数据删除成功返回1,未删除数据返回0 。
@SpringBootTestclass Mybatisplus01QuickstartApplicationTests {? @Autowired private UserDao userDao;? @Test void testDelete() { // 传入主键id userDao.deleteById(1401856123725713409L); }}?
四、修改在进行修改之前 , 我们可以分析下修改的方法:int updateById(T t);
- T:泛型 , 需要修改的数据内容,注意因为是根据ID进行修改,所以传入的对象中需要有ID属性值
- int:返回值,修改成功后返回1,未修改数据返回0
@SpringBootTestclass Mybatisplus01QuickstartApplicationTests {? @Autowired private UserDao userDao;? @Test void testUpdate() { User user = new User(); user.setId(1L); user.setName("Tom888"); user.setPassword("tom888"); userDao.updateById(user); }}
![四十一 增删查改分页 Java开发学习----MyBatisPlus标准数据层开发](http://img.zhejianglong.com/231020/0009255041-3.png)
文章插图
说明:修改的时候 , 只修改实体对象中有值的字段 。
五、根据ID查询在进行根据ID查询之前,我们可以分析下根据ID查询的方法:
T selectById (Serializable id)
- Serializable:参数类型,主键ID的值
- T:根据ID查询只会返回一条数据
@SpringBootTestclass Mybatisplus01QuickstartApplicationTests {? @Autowired private UserDao userDao; @Test void testGetById() { User user = userDao.selectById(2L); System.out.println(user); }}
六、查询所有在进行查询所有之前 , 我们可以分析下查询所有的方法:List<T> selectList(Wrapper<T> queryWrapper)
- Wrapper:用来构建条件查询的条件 , 目前我们没有可直接传为Null
- List<T>:因为查询的是所有,所以返回的数据是一个集合
推荐阅读
- 五 JPA - 原生SQL实现增删改查
- 2023南阳市第四十一小学校招生公告 2023南阳市第四十一小学校招生公告
- 西游记四十一回概括20字 西游记四十一回概括
- 2011年农历二月初九下午两点四十一分出生的男孩是什么命