浅谈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 相关文章推荐
Spring Cache和EhCache实现缓存管理方式
Jun 15 Java/Android
Spring Boot 整合 Apache Dubbo的示例代码
Jul 04 Java/Android
浅谈spring boot使用thymeleaf版本的问题
Aug 04 Java/Android
Java spring单点登录系统
Sep 04 Java/Android
Java网络编程之UDP实现原理解析
Sep 04 Java/Android
JAVA API 实用类 String详解
Oct 05 Java/Android
Java实现房屋出租系统详解
Oct 05 Java/Android
JPA 通过Specification如何实现复杂查询
Nov 23 Java/Android
Java并发编程之原子性-Atomic的使用
Mar 16 Java/Android
Spring Boot DevTools 全局配置学习指南
Mar 31 Java/Android
JAVA长虹键法之建造者Builder模式实现
Apr 10 Java/Android
Java实现添加条码或二维码到Word文档
Jun 01 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
定制404错误页面,并发信给管理员的程序
2006/10/09 PHP
一些需要禁用的PHP危险函数(disable_functions)
2012/02/23 PHP
php生成图片验证码-附五种验证码
2015/08/19 PHP
PHP7.1新功能之Nullable Type用法分析
2016/09/26 PHP
jQuery中需要注意的细节问题小结
2011/12/06 Javascript
从数据结构的角度分析 for each in 比 for in 快的多
2013/07/07 Javascript
使用js在页面中绘制表格核心代码
2013/09/16 Javascript
原生javascript实现无间缝滚动示例
2014/01/28 Javascript
js调用后台、后台调用前台等方法总结
2014/04/17 Javascript
Jquery代码实现图片轮播效果(一)
2015/08/12 Javascript
JavaScript 性能优化小结
2015/10/12 Javascript
深入理解MVC中的时间js格式化
2016/05/19 Javascript
基于Vue生产环境部署详解
2017/09/15 Javascript
JS 中document.write()的用法和清空的原因浅析
2017/12/04 Javascript
在vue里面设置全局变量或数据的方法
2018/03/09 Javascript
echarts设置图例颜色和地图底色的方法实例
2018/08/01 Javascript
Array数组对象中的forEach、map、filter及reduce详析
2018/08/02 Javascript
微信小程序实现下拉刷新动画
2019/06/21 Javascript
vscode 插件开发 + vue的操作方法
2020/06/05 Javascript
js和jquery判断数据类型的4种方法总结
2020/08/28 jQuery
用Python编写一个高效的端口扫描器的方法
2018/12/20 Python
对python捕获ctrl+c手工中断程序的两种方法详解
2018/12/26 Python
django的csrf实现过程详解
2019/07/26 Python
Django项目之Elasticsearch搜索引擎的实例
2019/08/21 Python
HTML5在canvas中绘制复杂形状附效果截图
2014/06/23 HTML / CSS
使用canvas绘制贝塞尔曲线
2014/12/17 HTML / CSS
阿联酋彩妆品牌:OUD MILANO
2019/10/06 全球购物
阿里巴巴英国:Alibaba英国
2019/12/11 全球购物
大学生简历的个人自我评价
2013/12/04 职场文书
业务员简历自我评价
2014/03/06 职场文书
会计专业个人自我鉴定
2014/03/21 职场文书
纺织工程专业推荐信
2014/09/08 职场文书
幼儿园教师岗位职责
2015/04/02 职场文书
2015年工程师工作总结
2015/04/30 职场文书
2019终止劳动合同协议书最新范本!
2019/07/09 职场文书
Go timer如何调度
2021/06/09 Golang