浅谈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 Boot 实现敏感词及特殊字符过滤处理
Jun 29 Java/Android
分析ZooKeeper分布式锁的实现
Jun 30 Java/Android
gateway与spring-boot-starter-web冲突问题的解决
Jul 16 Java/Android
Java org.w3c.dom.Document 类方法引用报错
Aug 07 Java/Android
Java面试题冲刺第十九天--数据库(4)
Aug 07 Java/Android
Java设计模式之享元模式示例详解
Mar 03 Java/Android
java项目构建Gradle的使用教程
Mar 24 Java/Android
Android开发实现极为简单的QQ登录页面
Apr 24 Java/Android
Java线程的6种状态与生命周期
May 11 Java/Android
SpringBoot项目部署到阿里云服务器的实现步骤
Jun 28 Java/Android
利用Java连接Hadoop进行编程
Jun 28 Java/Android
Spring Boot实现文件上传下载
Aug 14 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
第十三节 对象串行化 [13]
2006/10/09 PHP
深入array multisort排序原理的详解
2013/06/18 PHP
修改apache配置文件去除thinkphp url中的index.php
2014/01/17 PHP
php.ini save_handler 修改不生效的解决办法
2014/07/22 PHP
PHP入门教程之表单与验证实例详解
2016/09/11 PHP
用javascript获取当页面上鼠标光标位置和触发事件的对象的代码
2009/12/09 Javascript
在网页中使用document.write时遭遇的奇怪问题
2010/08/24 Javascript
用jquery写的一个万年历(自写)
2014/01/20 Javascript
jquery实现的一个文章自定义分段显示功能
2014/05/23 Javascript
JS实现判断碰撞的方法
2015/02/11 Javascript
jQuery实现将页面上HTML标签换成另外标签的方法
2015/06/09 Javascript
JavaScript实现算术平方根算法-代码超简单
2015/09/11 Javascript
原生js页面滚动延迟加载图片
2015/12/20 Javascript
jQuery easyui的validatebox校验规则扩展及easyui校验框validatebox用法
2016/01/18 Javascript
漫谈JS引擎的运行机制 你应该知道什么
2016/06/15 Javascript
jQuery EasyUI菜单与按钮详解
2016/07/13 Javascript
Ionic项目中Native Camera的使用方法
2017/06/07 Javascript
解决Vue使用swiper动态加载数据,动态轮播数据显示白屏的问题
2018/09/27 Javascript
解决vue props传Array/Object类型值,子组件报错的情况
2020/11/07 Javascript
node.js文件的复制、创建文件夹等相关操作
2021/02/05 Javascript
python学生管理系统代码实现
2020/04/05 Python
Python八大常见排序算法定义、实现及时间消耗效率分析
2018/04/27 Python
python多线程与多进程及其区别详解
2019/08/08 Python
PyCharm 光标变成黑块的解决方式
2021/02/06 Python
Html5监听手机摇一摇事件的实现
2019/11/07 HTML / CSS
公司企业表扬信
2014/01/11 职场文书
大队委竞选演讲稿
2014/04/28 职场文书
公司年终奖分配方案
2014/06/16 职场文书
2014超市双十一活动策划方案
2014/09/29 职场文书
意外死亡赔偿协议书
2014/10/14 职场文书
2014年幼儿园安全工作总结
2014/11/10 职场文书
广告公司文案策划岗位职责
2015/04/14 职场文书
毕业典礼致辞
2015/07/29 职场文书
公司仓库管理制度
2015/08/04 职场文书
Golang: 内建容器的用法
2021/05/05 Golang
JAVA长虹键法之建造者Builder模式实现
2022/04/10 Java/Android