动态sql

动态SQL

声明:本文章属于学习笔记,根据狂神说的Mybatis编写

Mybatis在线文档:https://mybatis.org/mybatis-3/zh/index.html

一丶 动态SQL之if语句

首先我们要理解什么是动态的sql语句,假如我只按照摸个sql语句的固定格式,那么他就不是动态的。我们在固有的sql语句中根据不同的值得限定,所查询的不同的值,那么就可以称之为动态的。
动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种痛苦。

数据库表:
在这里插入图片描述

接口的设计:
在这里插入图片描述

BlogMapper.xml文件的配置:

  <select id="queryBlog" parameterType="map" resultType="blog">
        select *from blog where 1=1
        <if test="title!=null">
            and title=#{title}
        </if>
        <if test="author!=null">
            and author=#{author}
        </if>
    </select>

在这里我们看后面的where 1=1 其实就是为了确保可以必须查出来结果用的。if中的语句其实就是拼接语句。

测试类测试:

 @Test
    public void test2(){
   
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        BlogMapper mapper = sqlSession.getMapper(BlogMapper.class);
        HashMap<Object, Object> map = new HashMap<>();
        map.put("title","kdynb");
        List<Blog> blogs = mapper.queryBlog(map);
        for (Blog blog : blogs) {
   
            System.out.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值