MyBatis-Plus_自定义sql

Mybatis-Plus 专栏收录该内容
40 篇文章 2 订阅

查询专栏:自定义查询sql

1. 在mapper接口中定义接口

/**
     * 查询所有 有条件会自动拼接在where 后边当条件  单表操作
     *
     * @param wrapper
     * @return
     */
    //自定义sql  无分页
    List<User> selectAll(@Param(Constants.WRAPPER) Wrapper<User> wrapper);

2. 在xml文件中书写sql

<?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.example.mybatisplus.sampleschapter1.dao.UserMapper">

    <select id="selectAll" resultType="com.example.mybatisplus.sampleschapter1.entity.User">
        select * from user ${ew.customSqlSegment}
    </select>

</mapper>

3. 全局配置

3.1 配置xml的位置

3.2 配置实体类的位置

  • 可以在xml文件中直接写实体类名,省略前面的包路径
mybatis-plus:
  mapper-locations: classpath*:/mapper/**Mapper.xml
  #实体扫描,多个package用逗号或者分号分隔
  typeAliasesPackage: com.example.mybatisplus.sampleschapter1.entity

4. 在实体类中测试

 /**
     * 自定义sql
     */
    @Test
    public void selectMy() {
        LambdaQueryWrapper<User> lambdaQuery = Wrappers.<User>lambdaQuery();
        lambdaQuery.likeRight(User::getName, "王")
                .and(lqw -> lqw.lt(User::getAge, 40)
                        .or()
                        .isNotNull(User::getEmail));

        //调用自定义sql
        List<User> userList = userMapper.selectAll(lambdaQuery);
        userList.forEach(System.out::println);
    }
//    select * from user WHERE name LIKE ? AND ( age < ? OR email IS NOT NULL )

5. 控制台输出

在这里插入图片描述
想学习更多微服务、分布式、中间件、数据库、项目快速构建等系列技术
请访问http://gblfy.com
让我们一起进步!!!

  • 1
    点赞
  • 8
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 猿与汪的秘密 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值