MyBatis注解开发多条件查询

MyBatis动态SQL实现及Provider类详解
本文详细介绍了MyBatis中的Mapper接口及其注解的使用,包括查询所有学生、插入学生、删除学生的方法。同时,展示了如何通过Provider类动态构建SQL查询语句,根据传入的学生对象属性来过滤查询条件,提高了SQL的灵活性和可维护性。

Mapper中

public interface StudentMapper {

    @Select("select * from students")
    List<Students> findAll();

    @Insert("insert into students (sid,username,major,dnum) values (#{sid},#{username},#{major},#{dnum})")
    void addStudent(Students students);

    @Delete("delete from students where id=#{id}")
    void delStudentById(Integer id);

    @SelectProvider(type = StudentProvider.class, method = "findStudentByManyCondition")
    List<Students> findByManyCondition(Students students);
}

对应的Provider类

public class StudentProvider {

    public String findStudentByManyCondition(Students students){

        StringBuffer sql = new StringBuffer("select * from students where 1=1");

        String sid, username, major, dnum;
        sid = students.getSid();
        username = students.getUsername();
        major = students.getMajor();
        dnum = students.getDnum();

        if(!"".equals(sid)){
            sql.append(" and sid='"+sid+ "'");
        }

        if(!"".equals(username)){
            sql.append(" and username='"+username+ "'");
        }

        if(!"".equals(major)){
            sql.append(" and major='"+major+ "'");
        }

        if(!"".equals(dnum)){
            sql.append(" and dnum='"+dnum+ "'");
        }

        return sql.toString();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值