IService
作用
IService是一个泛型接口,定义了一系列通用的基础方法,这些方法涵盖了常见的增删改查(CRUD)操作。通过实现IService接口,开发者可以快速构建服务层,并简化数据库操作的编码工作。
save(T entity):插入一条记录。
saveBatch(Collection<T> entityList):批量插入记录。
removeById(Serializable id):根据ID删除记录。
remove(Wrapper<T> queryWrapper):根据条件删除记录。
updateById(T entity):根据ID更新记录。
update(T entity, Wrapper<T> updateWrapper):根据条件和实体更新记录。
getById(Serializable id):根据ID查询记录。
list(Wrapper<T> queryWrapper):根据条件查询记录列表。
list():查询所有记录。
count():查询总记录数。
page(IPage<T> page, Wrapper<T> queryWrapper):条件分页查询。
BaseMapper
作用
BaseMapper是MyBatis-Plus框架中的一个核心接口,它主要用于简化数据访问层(mapper)的编写,提供了一系列基本的CRUD(创建、读取、更新、删除)方法,帮助开发者进行数据库操作而无需手动编写对应的SQL语句。
insert:插入一条记录到数据库中。
deleteById:根据主键ID删除一条记录。
updateById:根据主键ID更新一条记录。
selectById:根据主键ID查询一条记录。
selectList:查询所有符合条件的记录列表。
使用方法
1.定义一个实体类User
首先,我们需要为数据库中的用户表创建一个实体类。这个类通常包含与数据库表中的列相对应的字段,以及getter和setter方法。
package com.example.demo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@Data
public class User {
private Long id;
private String name;
private Integer age;
// 其他字段...
}
2.创建Mapper接口
接下来,我们需要创建一个Mapper接口,这个接口将继承自MyBatis Plus的BaseMapper接口。BaseMapper接口提供了一系列基础的数据库操作方法,如select、insert、update和delete等。r
package com.example.demo.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.entity.User;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UserMapper extends BaseMapper<User> {
// 可以添加自定义的查询方法...
}
3.创建Service接口和实现类
然后,我们需要创建一个服务接口(UserService)和实现类(UserServiceImpl)。服务接口将继承自IService接口,并指定泛型类型为User。实现类将继承自ServiceImpl类,并实现UserService接口。
package com.example.demo.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.demo.entity.User;
public interface UserService extends IService<User> {
// 可以添加自定义的服务方法...
}
package com.example.demo.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import com.example.demo.service.UserService;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
// 可以添加自定义的服务方法实现...
}
UserService继承了IService里的crud抽象方法
UserService继承了ServiceImpl,ServiceImpl帮忙重写了IService里的抽象方法
4.在Controller中使用服务
最后,我们可以在Controller层中使用UserService来进行数据库操作。通过注入UserService,我们可以调用其提供的方法来实现具体的业务逻辑。
package com.example.demo.controller;
import com.example.demo.entity.User;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@PostMapping("/save")
public boolean saveUser(@RequestBody User user) {
return userService.save(user);
}
@DeleteMapping("/delete/{id}")
public boolean deleteUser(@PathVariable Long id) {
return userService.removeById(id);
}
@GetMapping("/{id}")
public User getUserById(@PathVariable Long id) {
return userService.getById(id);
}
@GetMapping("/list")
public List<User> getAllUsers() {
return userService.list();
}
// 其他控制器方法...
}
LambdaQuerryWrapper
作用
LambdaQueryWrapper是MyBatis-Plus框架中的一个查询构造器。LambdaQueryWrapper主要用于构建基于Lambda表达式的查询条件,从而避免手写SQL语句的繁琐和容易出错的问题。它提供了一系列用于构建查询条件的方法,如eq(等于)、ne(不等于)、like(模糊查询)、in(范围查询)等。
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zhang.springbootquickstart.mapper.UserMapper;
import com.zhang.springbootquickstart.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public List<User> getUsersAbove18() {
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.ge(User::getAge, 18); // 查询年龄大于等于18岁的用户
return userMapper.selectList(queryWrapper);
}
}
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » Mybatis-Plus
发表评论 取消回复