浅谈sql_@SelectProvider及使用注意说明


Posted in Java/Android onAugust 04, 2021

sql_@SelectProvider及使用注意

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface SelectProvider {
  Class<?> type();
  String method();
}

RoleDao.java

public interface RoleDao {
    @SelectProvider(type=RoleProvider.class,method="queryRolesByParamsSql")
    List<Role> queryRolesByParams(RoleQuery roleQuery);
}

RoleProvider.java

public class RoleProvider {
    public String queryRolesByParamsSql(@Param("roleName") final String roleName){
        return new SQL(){
            {
                SELECT("id,role_name as roleName,role_remark as roleRemark,"
                + "create_date as createDate,update_date as updateDate,"
                + " is_valid as isValid");
                FROM("t_role");
                WHERE("is_valid=1");
                if(StringUtils.isNoneBlank(roleName)){
                    WHERE("role_name like concat('%',#{roleName},'%')");
                }
            }
        }.toString();
    }
}

RoleMapper.xml

<select id="queryRolesByParams" resultType="role">
        select <include refid="role_column" /> 
        from t_role
        <where>
            is_valid = 1
            <if test="roleName !=null and roleName !=''">
                 and role_name like concat('%',#{roleName},'%')
            </if>

        </where> 
  </select>

注:

@SelectProvider 和 PageHelper 一起使用可能报错

报错是这样的

There is no getter for property named 'providerTakesParameterObject'

问题描述:

使用@SelectProvider注解,进行查询的时候报错

浅谈sql_@SelectProvider及使用注意说明

下面也是是这个问题引起的,重启Eclipse可能出现这个提示

Source not found for org.mortbay.io.nio.SelectChannelEndPoint

浅谈sql_@SelectProvider及使用注意说明

解决原因:

项目中使用了PageHelper 进行分页,与@@SelectProvider这个注解不能一起使用

浅谈sql_@SelectProvider及使用注意说明

不使用 PageHelper 这个插件,sql是正常运行的

浅谈sql_@SelectProvider及使用注意说明

解决方式:改用 xml 进行sql 查询

同样问题,其他解决方式参考:

https://stackoverflow.com/questions/37744893/how-can-sqlprovider-take-more-than-1-param-in-mybatis

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Java/Android 相关文章推荐
Java方法重载和方法重写的区别到底在哪?
Jun 11 Java/Android
MybatisPlus代码生成器的使用方法详解
Jun 13 Java/Android
Java基于字符界面的简易收银台
Jun 26 Java/Android
探讨Java中的深浅拷贝问题
Jun 26 Java/Android
深入理解java.lang.String类的不可变性
Jun 27 Java/Android
Java基础-封装和继承
Jul 02 Java/Android
SpringBoot快速入门详解
Jul 21 Java/Android
Java Spring 控制反转(IOC)容器详解
Oct 05 Java/Android
Java中try catch处理异常示例
Dec 06 Java/Android
SpringBoot2零基础到精通之异常处理与web原生组件注入
Mar 22 Java/Android
Java 超详细讲解设计模式之中的抽象工厂模式
Mar 25 Java/Android
Java实现字符串转为驼峰格式的方法详解
Jul 07 Java/Android
mybatis3中@SelectProvider传递参数方式
Aug 04 #Java/Android
浅谈Java父子类加载顺序
Aug 04 #Java/Android
浅谈spring boot使用thymeleaf版本的问题
Aug 04 #Java/Android
Java后台生成图片的完整步骤
Aug 04 #Java/Android
在Spring-Boot中如何使用@Value注解注入集合类
Aug 02 #Java/Android
SpringBoot整合RabbitMQ的5种模式实战
Log4j.properties配置及其使用
Aug 02 #Java/Android
You might like
php截取中文字符串函数实例
2015/02/23 PHP
深入理解PHP JSON数组与对象
2016/07/19 PHP
php与c 实现按行读取文件实例代码
2017/01/03 PHP
Yii框架分页实现方法详解
2017/05/20 PHP
PHP实现的mongoDB数据库操作类完整实例
2018/04/10 PHP
javascript 对表格的行和列都能加亮显示
2008/12/26 Javascript
javascript是怎么继承的介绍
2012/01/05 Javascript
THREE.JS入门教程(4)创建粒子系统
2013/01/24 Javascript
javascript不同类型数据之间的运算的转换方法
2014/02/13 Javascript
jQuery过滤选择器详解
2015/01/13 Javascript
jQuery实现图片与文字描述左右滑动自动切换的方法
2015/07/27 Javascript
深入探究JavaScript中for循环的效率问题及相关优化
2016/03/13 Javascript
jQuery实现摸拟alert提示框
2016/05/22 Javascript
浅析JavaScript动画模拟拖拽原理
2016/12/09 Javascript
jQuery Masonry瀑布流插件使用方法详解
2017/01/18 Javascript
js 递归和定时器的实例解析
2017/02/03 Javascript
原生JS实现图片翻书效果
2017/02/16 Javascript
微信小程序实现tab和swiper切换结合效果
2020/07/17 Javascript
详解vue项目中使用token的身份验证的简单实践
2019/03/08 Javascript
微信小程序tab切换可滑动切换导航栏跟随滚动实现代码
2019/09/04 Javascript
20多个小事例带你重温ES10新特性(小结)
2019/09/29 Javascript
微信小程序使用GoEasy实现websocket实时通讯
2020/05/19 Javascript
linux环境下安装pyramid和新建项目的步骤
2013/11/27 Python
Python基本数据类型详细介绍
2014/03/11 Python
Python将list中的string批量转化成int/float的方法
2018/06/26 Python
Python 实现交换矩阵的行示例
2019/06/26 Python
解决python中导入win32com.client出错的问题
2019/07/26 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
2021/02/25 Python
阿里健康大药房:阿里自营网上药店
2017/08/01 全球购物
街头时尚在线:JESSICABUURMAN
2019/06/16 全球购物
波兰在线杂货店:Polski Koszyk
2019/11/02 全球购物
介绍一下linux的文件系统
2012/03/20 面试题
法律工作求职自荐信
2013/10/31 职场文书
12岁生日感言
2014/01/21 职场文书
假期安全教育广播稿
2014/10/04 职场文书
反对四风自我剖析材料
2014/10/07 职场文书