Mybatis sql动态查询(可以填参数也可不填)

1.html

 <form action="datebaseServlet" method="post">
                        <input type="hidden" name="flag" value="1">
                        Seqname:<input type="text" name="seqname">
                        freeuse1:<input type="text" name="freeuse1">
                        <input type="submit">
                    </form>

2.servlet

复制代码
  String sqename = request.getParameter("seqname");
            String  freeuse1 = request.getParameter("freeuse1");
            Datebase datebase =new Datebase();
            if(sqename!=null){
                datebase.setSeqname(sqename);
            }
            if(freeuse1!=null){
                datebase.setFreeuse1(freeuse1);
            }
          List <Datebase> list=  service.selectDatebaseLike(datebase);
复制代码

3.service

 public List<Datebase> selectDatebaseLike(Datebase datebase) {
        DatebaseDAO dao = new DatebaseDAO();
        List<Datebase>  list  = dao.selectDatebaseLike(datebase);

        return list;
    }

4.dao

 public List<Datebase> selectDatebaseLike(Datebase datebase){
        SqlSession session = InitialSqlSession.openSqlSession();
        DatebaseMapper  mapper = session.getMapper(DatebaseMapper.class);
        List<Datebase> l =  mapper.selectDatebaseLike(datebase);
        session.close();
        return l;
    }

 

5.mapper

@SelectProvider(type= DatebaseSqlProvider.class,method="selectDatebaseLike")
    List<Datebase> selectDatebaseLike(Datebase datebase);

6.DatebaseSqlProvider

复制代码
public class DatebaseSqlProvider {
    public String selectDatebaseLike(Datebase datebase) {
        return new SQL(){{

         SELECT("*");
         FROM("tb001");
         WHERE("1=1");
            if(!datebase.getSeqname().equals(""))
            {
                WHERE("tb001.seqname = #{seqname}");
            }
            if(!datebase.getFreeuse1().equals(""))
            {
                WHERE("tb001.freeuse1 = #{freeuse1}");
            }

        }}.toString();

    }
    public String select() {
        return new SQL(){{
            SELECT("*");
            FROM("tb001");
                WHERE("tb001.seqname = #{seqname}");

        }}.toString();

    }

}
复制代码

WHERE1=1 使sql条件恒成立

 

posted @   When?  阅读(492)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示