IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Mybatis-plus 开发规范教程 -> 正文阅读

[开发工具]Mybatis-plus 开发规范教程

Mybatis-plus 开发教程

IService使用

首先要写一个mapper类继承mybatis-plus的BaseMapper

不需要写入@Mapper注解

public interface UserMapper extendx BaseMapper<User>{
    //以下为自定义方法 可以为空
    IPage <User> getList(@Param("page") Page<User> page,@Param("data") User data);
}

service层需要继承IService,当然实现层也要继承对应的实现类。

public interface UserService extends IService<User>{
    IPage <User> getList(@Param("page") Page<User> page,@Param("data") User data);
}
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements UserService{
    //可以直接使用baseMapper调用方法
    @Override
    IPage <User> getList(@Param("page") Page<User> page,@Param("data") User data){
        return baseMapper.getList(page,data)
    }
}

controller使用

@Api(value = "AdvanceFile控制器")
@Slf4j
@ExtController
@RequestMapping("/order/advanceFile")
public class AdvanceFileController {
    @Autowired
    IAdvanceFileService advanceFileService;

    @PostMapping("/list")
    @ApiOperation(httpMethod = GlobalConstant.Method.POST,value = "预通知文件表查询")
    public ExtResult<List<AdvanceFile>> list(@RequestBody ExtStoreRead<AdvanceFile> request){
        if(!Boolean.TRUE.equals(request.getUsePaging())){
            QueryWrapper<AdvanceFile> wrapper = new QueryWrapper<>(request.getData());
            return ExtResult.ok(advanceFileService.list(wrapper));
        }else{
            Page<AdvanceFile> page = new Page<>(request.getPage(), request.getLimit());
            QueryWrapper<AdvanceFile> wrapper = new QueryWrapper<>(request.getData());
            return ExtResult.ok(advanceFileService.page(page,wrapper));
        }
    };

    @PostMapping("/add")
    @ApiOperation(httpMethod = GlobalConstant.Method.POST,value = "预通知文件表增加")
    public ExtResult add(@RequestBody ExtStoreCreate<AdvanceFile> request){
        advanceFileService.saveBatch(request.getData());
        return ExtResult.ok();
    };

    @PostMapping("/delete")
    @ApiOperation(httpMethod = GlobalConstant.Method.POST,value = "预通知文件表删除")
    public ExtResult delete(@RequestBody ExtStoreDelete<Long> request){
        advanceFileService.removeByIds(request.getData());
        return ExtResult.ok();
    };

    @PostMapping("/update")
    @ApiOperation(httpMethod = GlobalConstant.Method.POST,value = "预通知文件表修改")
    public ExtResult update(@RequestBody ExtStoreUpdate<AdvanceFile> request){
        advanceFileService.updateBatchById(request.getData());
        return ExtResult.ok();
    };
}

实体类格式

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)//启动链式调用方法
@TableName("erp_template_maintenance")//表名
@ApiModel(value="TemplateMaintenance", description="TemplateMaintenance对象")
public class TemplateMaintenance implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键id")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    @ApiModelProperty(value = "模板编号")
    private String template_bh;

    @ApiModelProperty(value = "模板序号")
    private Integer template_xh;

    @ApiModelProperty(value = "模板名称")
    private String template_name;

    @ApiModelProperty(value = "模板内容")
    private String template_content;

    @ApiModelProperty(value = "操作员名")
    private String create_name;

    @ApiModelProperty(value = "操作时间")
    private Date create_time;

    @ApiModelProperty(value = "最后更新人")
    private String last_update_name;

    @ApiModelProperty(value = "最后更新时间")
    private Date last_update_date;


}

分页插件的使用

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BbJEbj6K-1646289447659)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220301115150924.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oI0ldiRq-1646289447660)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220302162234304.png)]

BaseMapper使用

@SpringBootTest
public class TestUserDAO {
    @Autowired
    private UserDAO userDAO;

    /*查询全部*/
    @Test
    public void testFindAll(){
        List<User> users = userDAO.selectList(null);
        users.forEach(user -> System.out.println("user = "+user));
    }

    /*条件查询*/
    @Test
    public void testFind(){
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("age",3);//等于
//        queryWrapper.lt("age",3);//小于
//        queryWrapper.le("age",3);//小于等于
//        queryWrapper.ge("age",3);//大于
        List<User> users = userDAO.selectList(queryWrapper);
        users.forEach(user -> System.out.println(user));
    }

    /*模糊查询*/
    @Test
    public void testFindLike(){
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.like("name","a");
        List<User> users = userDAO.selectList(queryWrapper);
        users.forEach(user -> System.out.println("user="+user));
    }

    /*添加*/
    @Test
    public void testSava(){
        User entity = new User();
        entity.setName("x").setAge(6).setBir(new Date());
        userDAO.insert(entity);
    }


    /*分页查询*/
    @Test
    public void testFindPage(){
        //条件分页查询
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("age",2);
        //(当前页,每页显示数)
        IPage<User> page = new Page<>(1,2);
        IPage<User> userIPage = userDAO.selectPage(page, queryWrapper);
        long total = userIPage.getTotal();
        System.out.println("总记录数"+total);
        userIPage.getRecords().forEach(user -> System.out.println("user ="+user));


    }
}

EQ 就是 EQUAL等于
NE就是 NOT EQUAL不等于
GT 就是 GREATER THAN大于
LT 就是 LESS THAN小于
GE 就是 GREATER THAN OR EQUAL 大于等于
LE 就是 LESS THAN OR EQUAL 小于等于

然后我们可以引入lambda,避免我们在代码中写类似的于user_name的硬编码

QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.lambda().eq(User::getuserName, userName);
List<User> users= userMapper.selectList(wrapper);

MP除了通用的Mapper还是通用的Servcie层,这也减少了相对应的代码工作量,把通用的接口提取到公共。其实按照MP的这种思想,可以自己也实现一些通用的Controller。

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-03-06 13:19:41  更:2022-03-06 13:20:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:40:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码