mybatis集成SpringCloud以及项目分享

    @Select("select * from new_ent_task")
    List<Task> page();

    @SelectProvider(type= TaskProvider.class, method= "pageByCondition")
    List<Task> pageByCondition(@Param("taskName")String taskName);

    @SelectProvider(type= TaskProvider.class, method= "pageByCondition2")
    List<Task> pageByCondition2(TaskPageCondition condition);

mybatis分页查询控件pagehelper,参数不定时候需要使用@selectProvide自定义sql。

type为class,method为方法名称。如果传递对象不需要加@param参数,不然会报错

Caused by: org.apache.ibatis.binding.BindingException: Parameter 'arg0' not found. Available parameters are [condition, param1]

加入@param后会将参数转成Map<String,Object>格式,通过name或者int顺序取参数。

对应上面provide正确写法

 

public class TaskProvider {

    public String pageByCondition(Map<String,Object> map){
        StringBuilder sb = new StringBuilder("select * from new_ent_task where 1=1");
        String taskName = (String)map.get("taskName");
        if(!StringUtils.isBlank(taskName)){
            sb.append(" and task_name like '%").append(taskName).append("%'");
        }
        return sb.toString();
    }

    public String pageByCondition2(TaskPageCondition condition){
        StringBuilder sb = new StringBuilder("select * from new_ent_task where 1=1");
        String taskName = condition.getTaskName();
        if(!StringUtils.isBlank(taskName)){
            sb.append(" and task_name like '%").append(taskName).append("%'");
        }
        return sb.toString();
    }
}


另外针对springboot项目pagehelper配置单独的maven依赖,应该会好用点。

 

 

 

 

<!--pagehelper-->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.1.1</version>
</dependency>

 

 

 

mybatis项目分享,github地址:https://github.com/zhouxiaohei/spring-boot-mybaits-demo

 

1、项目集成:mybatis
   没有mybatis的xml配置文件,配置都在application.properties文件和entConfig中
2、分页插件:mybatis插件pagehelper
   基本通用插件:tk.mybatis
3、全文由注解和provider生成灵活sql。
4、统一的control层返回值和异常处理机制。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值