SpringBoot入门-20(springboot集成mybatis注解形式properties配置,利用@Provider实现动态SQL)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fengsi2009/article/details/78900466

系列教程都是从网络上收集和本人的理解所编辑而成,仅供广大爱好者学习所用,请尊重本人的劳动成果。欢迎评论指正和转帖!(请保留连接谢谢!)



一、接上一个项目,变化地方如下(了解即可,不常用)

CatSqlProvider.java
package com.fs;

import org.apache.ibatis.jdbc.SQL;

public class CatSqlProvider {

    public String select(Cat cat) {
        StringBuffer sql = new StringBuffer("select * from cat where 1=1 ");

        if (cat.getCat_name() != null) {
            sql.append("and cat_name = #{cat_name}");
        } else if (cat.getCat_age() != 0) {
            sql.append("and cat_age = #{cat_age}");
        }

        return sql.toString();
    }

    public String select2(Cat cat) {
        return new SQL() {

            {
                SELECT("id,cat_name,cat_age");
                FROM("cat");
                if (cat.getCat_name() != null) {
                    WHERE("cat_name = #{cat_name}");
                } else if (cat.getCat_age() != 0) {
                    WHERE("cat_age = #{cat_age}");
                }
            }
        }.toString();
    }
}


CatMappper.java
    @SelectProvider(type = CatSqlProvider.class, method = "select")
    @Results({ @Result(property = "updateTime", column = "update_time") })
    public List<Cat> select(Cat cat);

    @SelectProvider(type = CatSqlProvider.class, method = "select2")
    @Results({ @Result(property = "updateTime", column = "update_time") })
    public List<Cat> select2(Cat cat);


展开阅读全文

没有更多推荐了,返回首页