浅谈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 将PPT幻灯片转为HTML文件的实现思路
Jun 11 Java/Android
Springboot集成阿里云OSS上传文件系统教程
Jun 28 Java/Android
每日六道java新手入门面试题,通往自由的道路
Jun 30 Java/Android
java实现对Hadoop的操作
Jul 01 Java/Android
java设计模式--三种工厂模式详解
Jul 21 Java/Android
Java 实战项目之家居购物商城系统详解流程
Nov 11 Java/Android
JVM之方法返回地址详解
Feb 28 Java/Android
Spring Bean是如何初始化的详解
Mar 22 Java/Android
Spring Boot 使用 Spring-Retry 进行重试框架
Apr 24 Java/Android
Java 轮询锁使用时遇到问题
May 11 Java/Android
springboot+rabbitmq实现智能家居实例详解
Jul 23 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获取数组中某元素的位置及array_keys函数应用
2013/01/29 PHP
php导入excel文件到mysql数据库的方法
2015/01/14 PHP
PHP实现获取毫秒时间戳的方法【使用microtime()函数】
2019/03/01 PHP
PHP cookie,session的使用与用户自动登录功能实现方法分析
2019/06/05 PHP
将HTML自动转为JS代码
2006/06/26 Javascript
Document 对象的常用方法
2009/07/31 Javascript
event.srcElement 用法笔记e.target
2009/12/18 Javascript
IE8下关于querySelectorAll()的问题
2010/05/13 Javascript
javascript处理table表格的代码
2010/12/06 Javascript
Javascript调用C#代码
2011/01/17 Javascript
深入理解JavaScript系列(39):设计模式之适配器模式详解
2015/03/04 Javascript
Java File类的常用方法总结
2015/03/18 Javascript
javascript动态创建表格及添加数据实例详解
2015/05/13 Javascript
bootstrap下拉菜单使用方法解析
2017/01/13 Javascript
BootStrap注意事项小结(五)表单
2017/03/10 Javascript
浅谈express 中间件机制及实现原理
2017/08/31 Javascript
vue-cli webpack2项目打包优化分享
2018/02/07 Javascript
如何获取TypeScript的声明文件.d.ts
2018/05/01 Javascript
mock.js模拟数据实现前后端分离
2019/07/24 Javascript
Python多线程编程(六):可重入锁RLock
2015/04/05 Python
python中的decimal类型转换实例详解
2019/06/26 Python
python面试题之列表声明实例分析
2019/07/08 Python
Python-copy()与deepcopy()区别详解
2019/07/12 Python
Django之使用celery和NGINX生成静态页面实现性能优化
2019/10/08 Python
python科学计算之scipy——optimize用法
2019/11/25 Python
幼师岗位求职简历的自荐信格式
2013/09/21 职场文书
毕业学生推荐信
2013/12/01 职场文书
新郎父亲婚宴答谢词
2014/01/11 职场文书
小学生防溺水广播稿
2014/01/12 职场文书
十岁生日父母答谢词
2014/01/18 职场文书
校园广播稿100字
2014/10/06 职场文书
2014年前台个人工作总结
2014/11/14 职场文书
物业保安辞职信
2015/05/12 职场文书
详解Redis瘦身指南
2021/05/26 Redis
Redis性能监控的实现
2021/07/09 Redis
使用 Apache Dubbo 实现远程通信(微服务架构)
2022/02/12 Servers