MyBatis-Plus_自定义sql

查询专栏:自定义查询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
让我们一起进步!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值