马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
查询
方法名 查询记录总数
- /**
- * 查询总记录数
- *
- * @see Wrappers#emptyWrapper()
- */
- default long count() {
- return count(Wrappers.emptyWrapper());
- }
复制代码 方法实现
- @Test
- public void testGetCount(){
- long count = userService.count();
- System.out.println("总记录数:" + count);
- }
复制代码 实现的sql
- ==> Preparing: SELECT COUNT( * ) FROM t_user WHERE is_deleted=0
- ==> Parameters:
- <== Columns: COUNT( * )
- <== Row: 12
- <== Total: 1
- Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@329a1f8d]
- 总记录数:12
复制代码 根据ID查询
- /**
- * 根据 ID 查询
- *
- * @param id 主键ID
- */
- default T getById(Serializable id) {
- return getBaseMapper().selectById(id);
- }
复制代码 方法实现
- @Test
- public void testGetById() {
- // 假设这里有一个有效的用户 ID,你可以根据实际情况修改
- Long validUserId = 6L;
- User user = userService.getById(validUserId);
- System.out.println("查询到的用户信息: " + user);
- }
复制代码 sql的实现
- ==> Preparing: SELECT uid AS id,name,age,email,is_deleted,sex FROM t_user WHERE uid=? AND is_deleted=0
- ==> Parameters: 6(Long)
- <== Columns: id, name, age, email, is_deleted, sex
- <== Row: 6, dadaw, 18, user@qcby.com, 0, null
- <== Total: 1
- Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@474c9131]
- 查询到的用户信息: User{id=6, name='dadaw', age=18, email='user@qcby.com', isDeleted=0, sex=null}
复制代码 批量查询
- /**
- * 查询(根据ID 批量查询)
- *
- * @param idList 主键ID列表
- */
- default List<T> listByIds(Collection<? extends Serializable> idList) {
- return getBaseMapper().selectBatchIds(idList);
- }
复制代码 方法实现
- @Test
- public void testListByIds() {
- // 准备要查询的主键 ID 列表
- List<Long> idList = Arrays.asList(1L, 2L); // 假设这些是有效的主键值
- // 调用 listByIds 方法查询用户列表
- List<User> userList = userService.listByIds(idList);
- // 输出结果
- System.out.println("根据 ID 列表查询到的用户列表:");
- userList.forEach(System.out::println);
- }
复制代码 sql的实现
- ==> Preparing: SELECT uid AS id,name,age,email,is_deleted,sex FROM t_user WHERE uid IN ( ? , ? ) AND is_deleted=0
- ==> Parameters: 1(Long), 2(Long)
- <== Total: 0
- Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3c0bbc9f]
- 根据 ID 列表查询到的用户列表:
复制代码 根据条件举行查询
- /**
- * 查询(根据 columnMap 条件)
- *
- * @param columnMap 表字段 map 对象
- */
- default List<T> listByMap(Map<String, Object> columnMap) {
- return getBaseMapper().selectByMap(columnMap);
- }
复制代码 实现方法
- @Test
- public void testListByMap() {
- // 准备查询条件
- Map<String, Object> columnMap = new HashMap<>();
- columnMap.put("age", 22);
- columnMap.put("name", "admin");
- // 调用 listByMap 方法查询用户列表
- List<User> userList = userService.listByMap(columnMap);
- // 输出结果
- System.out.println("根据 Map 条件查询到的用户列表:");
- userList.forEach(System.out::println);
- }
复制代码 sql
- ==> Preparing: SELECT uid AS id,name,age,email,is_deleted,sex FROM t_user WHERE name = ? AND age = ? AND is_deleted=0
- ==> Parameters: admin(String), 22(Integer)
- <== Total: 0
- Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3cb8c8ce]
- 根据 Map 条件查询到的用户列表:
复制代码 查询并封装Map
- /**
- * 根据 Wrapper,查询一条记录
- *
- * @param queryWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
- */
- Map<String, Object> getMap(Wrapper<T> queryWrapper);
复制代码 实现
- @Test
- public void testGetMap() {
- QueryWrapper<User> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("name", "admin"); // 假设数据库中有 name 为 admin 的记录
- Map<String, Object> map = userService.getMap(queryWrapper);
- System.out.println("查询到的 Map 信息: " + map);
- }
复制代码 sql
- ==> Preparing: SELECT uid,name,age,email,is_deleted,sex FROM t_user WHERE is_deleted=0 AND (name = ?)
- ==> Parameters: admin(String)
- <== Columns: uid, name, age, email, is_deleted, sex
- <== Row: 4, admin, 25, user@qcby.com, 0, null
- <== Total: 1
- Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@2af4129d]
- 查询到的 Map 信息: {uid=4, is_deleted=false, name=admin, age=25, email=user@qcby.com}
复制代码
根据Wraper查询一条记录
- /**
- * 根据 Wrapper,查询一条记录 <br/>
- * <p>结果集,如果是多个会抛出异常,随机取一条加上限制条件 wrapper.last("LIMIT 1")</p>
- *
- * @param queryWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
- */
- default T getOne(Wrapper<T> queryWrapper) {
- return getOne(queryWrapper, true);
- }
复制代码 方法实现
- @Test
- public void testGetOne() {
- QueryWrapper<User> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("name", "admin"); // 假设数据库中有 name 为 admin 的记录
- User user = userService.getOne(queryWrapper);
- System.out.println("查询到的用户信息: " + user);
- }
复制代码 sql执行
- ==> Preparing: SELECT uid AS id,name,age,email,is_deleted,sex FROM t_user WHERE is_deleted=0 AND (name = ?)
- ==> Parameters: admin(String)
- <== Columns: id, name, age, email, is_deleted, sex
- <== Row: 4, admin, 25, user@qcby.com, 0, null
- <== Total: 1
- Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@2b289ac9]
- 查询到的用户信息: User{id=4, name='admin', age=25, email='user@qcby.com', isDeleted=0, sex=null}
复制代码 查询一条,有多个抛出非常
- /**
- * 根据 Wrapper,查询一条记录
- *
- * @param queryWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
- * @param throwEx 有多个 result 是否抛出异常
- */
- T getOne(Wrapper<T> queryWrapper, boolean throwEx);
复制代码 实现
- @Test
- public void testGetOneWithThrowEx() {
- QueryWrapper<User> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("name", "admin"); // 假设数据库中有 name 为 admin 的记录
- User user = userService.getOne(queryWrapper, true);
- System.out.println("查询到的用户信息: " + user);
- }
复制代码 sql
- ==> Preparing: SELECT uid,name,age,email,is_deleted,sex FROM t_user WHERE is_deleted=0 AND (name = ?)
- ==> Parameters: admin(String)
- <== Columns: uid, name, age, email, is_deleted, sex
- <== Row: 4, admin, 25, user@qcby.com, 0, null
- <== Total: 1
- Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@36c0d0bd]
- 查询到的用户信息: User{uid=4, name='admin', age=25, email='user@qcby.com', isDeleted=0, sex=null}
复制代码 查询全部
- /**
- * 查询所有
- *
- * @see Wrappers#emptyWrapper()
- */
- default List<T> list() {
- return list(Wrappers.emptyWrapper());
- }
复制代码 实现方法
- @Test
- public void testList() {
- List<User> userList = userService.list();
- System.out.println("查询到的用户列表信息: " + userList);
- }
复制代码 sql
- ==> Preparing: SELECT uid AS id,name,age,email,is_deleted,sex FROM t_user WHERE is_deleted=0
- ==> Parameters:
- <== Columns: id, name, age, email, is_deleted, sex
- <== Row: 3, Tom, 35, new_email@example.com, 0, null
- <== Row: 4, admin, 25, user@qcby.com, 0, null
- <== Row: 5, Billie, 24, test5@baomidou.com, 0, null
- <== Row: 6, dadaw, 18, user@qcby.com, 0, null
- <== Row: 7, bygnyn, 43, frefr@cweew.com, 0, null
- <== Row: 10, 更新后的新用户, 29, updatednewuser@example.com, 0, null
- <== Row: 13, szy0, 20, null, 0, null
- <== Row: 14, szy1, 21, null, 0, null
- <== Row: 15, szy2, 22, null, 0, null
- <== Row: 16, szy3, 23, null, 0, null
- <== Row: 17, szy4, 24, null, 0, null
- <== Row: 18, 张三, 23, zhangsan@qcby.com, 0, null
- <== Total: 12
- Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@407873d3]
- 查询到的用户列表信息: [User{id=3, name='Tom', age=35, email='new_email@example.com', isDeleted=0, sex=null}, User{id=4, name='admin', age=25, email='user@qcby.com', isDeleted=0, sex=null}, User{id=5, name='Billie', age=24, email='test5@baomidou.com', isDeleted=0, sex=null}, User{id=6, name='dadaw', age=18, email='user@qcby.com', isDeleted=0, sex=null}, User{id=7, name='bygnyn', age=43, email='frefr@cweew.com', isDeleted=0, sex=null}, User{id=10, name='更新后的新用户', age=29, email='updatednewuser@example.com', isDeleted=0, sex=null}, User{id=13, name='szy0', age=20, email='null', isDeleted=0, sex=null}, User{id=14, name='szy1', age=21, email='null', isDeleted=0, sex=null}, User{id=15, name='szy2', age=22, email='null', isDeleted=0, sex=null}, User{id=16, name='szy3', age=23, email='null', isDeleted=0, sex=null}, User{id=17, name='szy4', age=24, email='null', isDeleted=0, sex=null}, User{id=18, name='张三', age=23, email='zhangsan@qcby.com', isDeleted=0, sex=null}]
复制代码 链式查询
- /**
- * 链式查询 普通
- *
- * @return QueryWrapper 的包装类
- */
- default QueryChainWrapper<T> query() {
- return ChainWrappers.queryChain(getBaseMapper());
- }
复制代码 实现方法
- //链式查询
- @Test
- public void testQuery() {
- QueryChainWrapper<User> queryChainWrapper = userService.query();
- List<User> userList = queryChainWrapper.list();
- System.out.println("链式查询结果: " + userList);
- }
复制代码 sql
- ==> Preparing: SELECT uid AS id,name,age,email,is_deleted,sex FROM t_user WHERE is_deleted=0
- ==> Parameters:
- <== Columns: id, name, age, email, is_deleted, sex
- <== Row: 3, Tom, 35, new_email@example.com, 0, null
- <== Row: 4, admin, 25, user@qcby.com, 0, null
- <== Row: 5, Billie, 24, test5@baomidou.com, 0, null
- <== Row: 6, dadaw, 18, user@qcby.com, 0, null
- <== Row: 7, bygnyn, 43, frefr@cweew.com, 0, null
- <== Row: 10, 更新后的新用户, 29, updatednewuser@example.com, 0, null
- <== Row: 13, szy0, 20, null, 0, null
- <== Row: 14, szy1, 21, null, 0, null
- <== Row: 15, szy2, 22, null, 0, null
- <== Row: 16, szy3, 23, null, 0, null
- <== Row: 17, szy4, 24, null, 0, null
- <== Row: 18, 张三, 23, zhangsan@qcby.com, 0, null
- <== Total: 12
- Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4743a322]
- 链式查询结果: [User{id=3, name='Tom', age=35, email='new_email@example.com', isDeleted=0, sex=null}, User{id=4, name='admin', age=25, email='user@qcby.com', isDeleted=0, sex=null}, User{id=5, name='Billie', age=24, email='test5@baomidou.com', isDeleted=0, sex=null}, User{id=6, name='dadaw', age=18, email='user@qcby.com', isDeleted=0, sex=null}, User{id=7, name='bygnyn', age=43, email='frefr@cweew.com', isDeleted=0, sex=null}, User{id=10, name='更新后的新用户', age=29, email='updatednewuser@example.com', isDeleted=0, sex=null}, User{id=13, name='szy0', age=20, email='null', isDeleted=0, sex=null}, User{id=14, name='szy1', age=21, email='null', isDeleted=0, sex=null}, User{id=15, name='szy2', age=22, email='null', isDeleted=0, sex=null}, User{id=16, name='szy3', age=23, email='null', isDeleted=0, sex=null}, User{id=17, name='szy4', age=24, email='null', isDeleted=0, sex=null}, User{id=18, name='张三', age=23, email='zhangsan@qcby.com', isDeleted=0, sex=null}]
复制代码 链式查询Wrapper
- /**
- * 链式查询 lambda 式
- * <p>注意:不支持 Kotlin </p>
- *
- * @return LambdaQueryWrapper 的包装类
- */
- default LambdaQueryChainWrapper<T> lambdaQuery() {
- return ChainWrappers.lambdaQueryChain(getBaseMapper());
- }
复制代码 实现方法
- @Test
- public void testLambdaQuery() {
- LambdaQueryChainWrapper<User> lambdaQueryChainWrapper = userService.lambdaQuery();
- List<User> userList = lambdaQueryChainWrapper.list();
- System.out.println("Lambda 链式查询结果: " + userList);
- }
复制代码 sql
- => Preparing: SELECT uid AS id,name,age,email,is_deleted,sex FROM t_user WHERE is_deleted=0
- ==> Parameters:
- <== Columns: id, name, age, email, is_deleted, sex
- <== Row: 3, Tom, 35, new_email@example.com, 0, null
- <== Row: 4, admin, 25, user@qcby.com, 0, null
- <== Row: 5, Billie, 24, test5@baomidou.com, 0, null
- <== Row: 6, dadaw, 18, user@qcby.com, 0, null
- <== Row: 7, bygnyn, 43, frefr@cweew.com, 0, null
- <== Row: 10, 更新后的新用户, 29, updatednewuser@example.com, 0, null
- <== Row: 13, szy0, 20, null, 0, null
- <== Row: 14, szy1, 21, null, 0, null
- <== Row: 15, szy2, 22, null, 0, null
- <== Row: 16, szy3, 23, null, 0, null
- <== Row: 17, szy4, 24, null, 0, null
- <== Row: 18, 张三, 23, zhangsan@qcby.com, 0, null
- <== Total: 12
- Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4743a322]
- Lambda 链式查询结果: [User{id=3, name='Tom', age=35, email='new_email@example.com', isDeleted=0, sex=null}, User{id=4, name='admin', age=25, email='user@qcby.com', isDeleted=0, sex=null}, User{id=5, name='Billie', age=24, email='test5@baomidou.com', isDeleted=0, sex=null}, User{id=6, name='dadaw', age=18, email='user@qcby.com', isDeleted=0, sex=null}, User{id=7, name='bygnyn', age=43, email='frefr@cweew.com', isDeleted=0, sex=null}, User{id=10, name='更新后的新用户', age=29, email='updatednewuser@example.com', isDeleted=0, sex=null}, User{id=13, name='szy0', age=20, email='null', isDeleted=0, sex=null}, User{id=14, name='szy1', age=21, email='null', isDeleted=0, sex=null}, User{id=15, name='szy2', age=22, email='null', isDeleted=0, sex=null}, User{id=16, name='szy3', age=23, email='null', isDeleted=0, sex=null}, User{id=17, name='szy4', age=24, email='null', isDeleted=0, sex=null}, User{id=18, name='张三', age=23, email='zhangsan@qcby.com', isDeleted=0, sex=null}]
复制代码 增
批量插入
- /**
- * 插入(批量)
- *
- * @param entityList 实体对象集合
- */
- @Transactional(rollbackFor = Exception.class)
- default boolean saveBatch(Collection<T> entityList) {
- return saveBatch(entityList, DEFAULT_BATCH_SIZE);
- }
复制代码 方法实现
- @Test
- public void testSaveBatch(){
- // SQL长度有限制,海量数据插入单条SQL无法实行,
- // 因此MP将批量插入放在了通用Service中实现,而不是通用Mapper
- ArrayList<User> users = new ArrayList<>();
- for (int i = 0; i < 5; i++) {
- User user = new User();
- user.setName("szy" + i);
- user.setAge(20 + i);
- users.add(user);
- }
- //SQL:INSERT INTO t_user ( username, age ) VALUES ( ?, ? )
- userService.saveBatch(users);
- }
复制代码 sql
- Preparing: INSERT INTO t_user ( name, age ) VALUES ( ?, ? )
- ==> Parameters: szy0(String), 20(Integer)
- ==> Parameters: szy1(String), 21(Integer)
- ==> Parameters: szy2(String), 22(Integer)
- ==> Parameters: szy3(String), 23(Integer)
- ==> Parameters: szy4(String), 24(Integer)
复制代码 插入单条数据
- /**
- * 插入一条记录(选择字段,策略插入)
- *
- * @param entity 实体对象
- */
- default boolean save(T entity) {
- return SqlHelper.retBool(getBaseMapper().insert(entity));
- }
复制代码 方法实现
- @Test
- // 插入一条数据
- public void addUser(){
- User user = new User();
- user.setName("老王");
- user.setAge(45);
- userService.save(user);
- }
复制代码 sql
- ==> Preparing: INSERT INTO t_user ( name, age ) VALUES ( ?, ? )
- ==> Parameters: 老王(String), 45(Integer)
- <== Updates: 1
复制代码 批量插入修改
- /**
- * 批量修改插入
- *
- * @param entityList 实体对象集合
- * @param batchSize 每次的数量
- */
- boolean saveOrUpdateBatch(Collection<T> entityList, int batchSize);
复制代码 方法使用
- @Test
- public void updateBatch(){
- ArrayList<User> users = new ArrayList<>();
- // 修改已有的用户数据
- User user1 = new User();
- user1.setName("Updated Name 1");
- user1.setAge(25);
- users.add(user1);
- User user2 = new User();
- user2.setName("Updated Name 2");
- user2.setAge(22);
- users.add(user2);
- userService.saveOrUpdateBatch(users,5);
- }
复制代码 sql
- ==> Preparing: INSERT INTO t_user ( name, age ) VALUES ( ?, ? )
- ==> Parameters: Updated Name 1(String), 25(Integer)
- ==> Parameters: Updated Name 2(String), 22(Integer)
复制代码 假如有修改,没有则插入
- /**
- * TableId 注解存在更新记录,否插入一条记录
- *
- * @param entity 实体对象
- */
- boolean saveOrUpdate(T entity);
复制代码 实现
- @Test
- public void testSaveOrUpdateEntity() {
- // 测试插入操作,创建一个没有设置 id 的 User 对象
- User insertUser = new User(null, "新用户", 28, "newuser@example.com");
- boolean insertResult = userService.saveOrUpdate(insertUser);
- System.out.println("插入新用户操作是否成功:" + insertResult);
- // 测试更新操作,创建一个设置了 id 的 User 对象(假设该 id 存在于数据库中)
- Long newUid = 7L;
- // 先设置 insertUser 的 uid
- insertUser.setUid(newUid);
- // 使用 insertUser 修改后的属性创建新对象
- User updateUser = new User(insertUser.getUid(), "更新后的新用户", 29, "updatednewuser@example.com");
- boolean updateResult = userService.saveOrUpdate(updateUser);
- System.out.println("更新用户操作是否成功:" + updateResult);
- }
复制代码 sql
- INSERT INTO t_user ( name, age, email ) VALUES ( ?, ?, ? )
- ==> Parameters: 新用户(String), 28(Integer), newuser@example.com(String)
- <== Updates: 1
- Preparing: SELECT uid,name,age,email,is_deleted,sex FROM t_user WHERE uid=? AND is_deleted=0
- ==> Parameters: 7(Long)
- <== Columns: uid, name, age, email, is_deleted, sex
- <== Row: 7, 更新后的新用户, 29, updatednewuser@example.com, 0, null
- <== Total: 1
复制代码 改
根据Warpper更改
- /**
- * 根据 whereEntity 条件,更新记录
- *
- * @param entity 实体对象
- * @param updateWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper}
- */
- default boolean update(T entity, Wrapper<T> updateWrapper) {
- return SqlHelper.retBool(getBaseMapper().update(entity, updateWrapper));
- }
复制代码 实现
- @Test
- public void testUpdateWithWrapper() {
- // 创建更新对象
- User user = new User();
- user.setAge(35);
- user.setEmail("new_email@example.com");
- // 创建更新条件
- UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
- updateWrapper.eq("name", "Tom");
- // 调用 update 方法
- boolean result = userService.update(user, updateWrapper);
- // 输出结果
- System.out.println("更新操作是否成功:" + result);
- assertEquals(true, result);
- }
复制代码 sql
- ==> Preparing: UPDATE t_user SET age=?, email=? WHERE is_deleted=0 AND (name = ?)
- ==> Parameters: 35(Integer), new_email@example.com(String), Tom(String)
- <== Updates: 1
- Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@76db540e]
- 更新操作是否成功:true
复制代码 链式修改
- /**
- * 更新数据
- *
- * @return 是否成功
- */
- default boolean update() {
- return update(null);
- }
复制代码 实现
- //Lambda 链式更新
- @Test
- public void testLambdaUpdate() {
- LambdaUpdateChainWrapper<User> lambdaUpdateChainWrapper = userService.lambdaUpdate();
- boolean result = lambdaUpdateChainWrapper.set(User::getAge, 25).eq(User::getName, "admin").update();
- System.out.println("Lambda 链式更新操作是否成功: " + result);
- }
复制代码 sql
- ==> Preparing: UPDATE t_user SET age=? WHERE is_deleted=0 AND (name = ?)
- ==> Parameters: 25(Integer), admin(String)
- <== Updates: 1
- Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@760245e1]
- Lambda 链式更新操作是否成功: true
复制代码 实现
- //Lambda 链式更新
- @Test
- public void testLambdaUpdate() {
- LambdaUpdateChainWrapper<User> lambdaUpdateChainWrapper = userService.lambdaUpdate();
- boolean result = lambdaUpdateChainWrapper.set(User::getAge, 25).eq(User::getName, "admin").update();
- System.out.println("Lambda 链式更新操作是否成功: " + result);
- }
复制代码 sql
- ==> Preparing: UPDATE t_user SET age=? WHERE is_deleted=0 AND (name = ?)
- ==> Parameters: 25(Integer), admin(String)
- <== Updates: 1
- Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4487c0c2]
- Lambda 链式更新操作是否成功: true
复制代码 删
删除多个字段
- /**
- * 删除(根据ID 批量删除)
- *
- * @param list 主键ID或实体列表
- */
- default boolean removeByIds(Collection<?> list) {
- if (CollectionUtils.isEmpty(list)) {
- return false;
- }
- return SqlHelper.retBool(getBaseMapper().deleteBatchIds(list));
- }
复制代码 实现方法
- //删除多个id字段
- @Test
- public void removeByIds(){
- List<Long> idList = Arrays.asList(1903624308889583619L, 1903624308889583618L, 1903624308776337410L);
- userService.removeByIds(idList);
- }
复制代码 sql
- ==> Preparing: UPDATE t_user SET is_deleted=1 WHERE uid IN ( ? , ? , ? ) AND is_deleted=0
- ==> Parameters: 1903624308889583619(Long), 1903624308889583618(Long), 1903624308776337410(Long)
- <== Updates: 0
复制代码 删除单个字段
- /**
- * 根据 ID 删除
- *
- * @param id 主键ID
- */
- default boolean removeById(Serializable id) {
- return SqlHelper.retBool(getBaseMapper().deleteById(id));
- }
复制代码 实现
- @Test
- public void removeById(){
- boolean result = userService.removeById(28L);
- //assertEquals 方法来判定 result 是否为 true。要是 result 的值为 true,测试就会通过;
- // 若为 false,测试则会失败,同时会抛出 AssertionError 异常。
- assertEquals(true, result);
- }
复制代码 sql
- ==> Preparing: UPDATE t_user SET is_deleted=1 WHERE uid=? AND is_deleted=0
- ==> Parameters: 28(Long)
- <== Updates: 1
复制代码 根据实体删除
- /**
- * 根据实体(ID)删除
- *
- * @param entity 实体
- * @since 3.4.4
- */
- default boolean removeById(T entity) {
- return SqlHelper.retBool(getBaseMapper().deleteById(entity));
- }
复制代码 实现
- @Test
- public void testRemoveByIdWithEntity() {
- // 创建一个 User 实体对象
- User user = new User();
- user.setUid(24L);
- // 调用 removeById 方法
- boolean result = userService.removeById(user);
- // 验证结果
- assertEquals(true, result);
- }
复制代码 sql
- ==> Preparing: UPDATE t_user SET is_deleted=1 WHERE uid=? AND is_deleted=0
- ==> Parameters: 24(Long)
- <== Updates: 1
复制代码 根据queryWrapper条件删除
- /**
- * 根据 entity 条件,删除记录
- *
- * @param queryWrapper 实体包装类 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
- */
- default boolean remove(Wrapper<T> queryWrapper) {
- return SqlHelper.retBool(getBaseMapper().delete(queryWrapper));
- }
复制代码 实现方法
- @Test
- public void testRemoveByWrapper() {
- QueryWrapper<User> queryWrapper = new QueryWrapper<>();
- queryWrapper.gt("age", 25).eq("email", "test@example.com");
- boolean result = userService.remove(queryWrapper);
- System.out.println("删除操作是否成功:" + result);
- assertEquals(true, result);
- }
复制代码 sql
- ==> Preparing: UPDATE t_user SET is_deleted=1 WHERE is_deleted=0 AND (age > ? AND email = ?)
- ==> Parameters: 25(Integer), test@example.com(String)
- <== Updates: 0
- Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@2042ccce]
- 删除操作是否成功:false
复制代码 逻辑删除
true是逻辑删除,false实体删除
- /**
- * 根据 ID 删除
- *
- * @param id 主键(类型必须与实体类型字段保持一致)
- * @param useFill 是否启用填充(为true的情况,会将入参转换实体进行delete删除)
- * @return 删除结果
- * @since 3.5.0
- */
- default boolean removeById(Serializable id, boolean useFill) {
- throw new UnsupportedOperationException("不支持的方法!");
- }
复制代码 分页
- /**
- * 翻页查询
- *
- * @param page 翻页对象
- * @param queryWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
- */
- default <E extends IPage<T>> E page(E page, Wrapper<T> queryWrapper) {
- return getBaseMapper().selectPage(page, queryWrapper);
- }
复制代码 实现
- @Test
- public void testPageWithWrapper() {
- // 创建分页对象,查询第 1 页,每页 2 条记录
- Page<User> page = new Page<>(1, 2);
- // 创建查询条件
- QueryWrapper<User> queryWrapper = new QueryWrapper<>();
- queryWrapper.gt("age", 20);
- IPage<User> userPage = userService.page(page, queryWrapper);
- System.out.println("总记录数: " + userPage.getTotal());
- System.out.println("当前页记录: " + userPage.getRecords());
- }
复制代码 sql
- ==> Parameters: 20(Integer), 2(Long)
- <== Columns: uid, name, age, email, is_deleted, sex
- <== Row: 3, Tom, 35, new_email@example.com, 0, null
- <== Row: 4, admin, 25, user@qcby.com, 0, null
- <== Total: 2
- Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5e1fc2aa]
- 总记录数: 17
- 当前页记录: [User{uid=3, name='Tom', age=35, email='new_email@example.com', isDeleted=0, sex=null}, User{uid=4, name='admin', age=25, email='user@qcby.com', isDeleted=0, sex=null}]
复制代码 获取mapper
- //获取mapper
- @Test
- public void testGetBaseMapper() {
- BaseMapper<User> baseMapper = userService.getBaseMapper();
- System.out.println("获取到的 BaseMapper: " + baseMapper);
- }
- //获取cl
复制代码 获取class
- @Test
- public void testGetEntityClass() {
- Class<User> entityClass = userService.getEntityClass();
- System.out.println("获取到的实体类 Class: " + entityClass);
- }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |