文档章节

MyBatis之动态SQL

骑着毛驴来编程
 骑着毛驴来编程
发布于 2016/07/13 11:05
字数 187
阅读 26
收藏 2

动态SQL

一般的情况我就不再赘述了,官方文档上都有,此处我就写几个个案吧.

Like模糊查询:

有三种情况:

(1) '%'||#{username}||'%'

(2) #{username}  在java代码中写入userDao.queryUserByName("%2%");

(3) <select id="queryUserByName" parameterType="String" resultType="User">

   <bind name="pattern" value="'%' + _parameter + '%'" />

   SELECT * FROM test_user

   WHERE title LIKE  #{pattern}

</select>

 

注:此处的_parameter 是指传入的String类型参数

 

Where条件加if判断:

<trim prefix="WHERE" prefixOverrides="AND |OR ">

   <if test="_parameter !=null">

and  username  like  '%'||#{username}||'%'

 </if>

 </trim>

<where>

   <if test="_parameter !=null">

and  username  like  '%'||#{username}||'%'

 </if>

 </where>

动态更新语句相似的解决方案是 set

<update id="updateAuthorIfNecessary"

       parameterType="domain.blog.Author">

  update Author

    <set>

      <if test="username != null">username=#{username},</if>

      <if test="password != null">password=#{password},</if>

      <if test="email != null">email=#{email},</if>

      <if test="bio != null">bio=#{bio}</if>

    </set>

  where id=#{id}</update>

© 著作权归作者所有

骑着毛驴来编程
粉丝 3
博文 11
码字总数 5391
作品 0
杭州
程序员
私信 提问
基于注解的Mybatis mapper 接口注意事项

原文:http://my.oschina.net/doctor2014/blog/411580 基于注解的Mybatis mapper 接口功能没有mapper xml配置文件丰富,而且动态sql语句的灵活性不能和xml配置相比。 这里只说一下基于注解的...

Beaver_
2015/05/06
7.6K
2
MyBatis体系大纲

1.MyBatis优势 2.MyBatis总体流程 3.MyBatis功能架构 4.MyBatis框架架构 5.MyBatis动态SQL语句 5.1.MyBatis动态传入表名,字段名参数 要实现动态传入表名、列名,需要做如下修改 添加属性sta...

微尘鉴
2015/09/17
72
0
Java面试----2018年MyBatis常见实用面试题整理

Java面试----2018年MyBatis常见实用面试题整理 1、什么是MyBatis? 答:MyBatis是一个可以自定义SQL、存储过程和高级映射的持久层框架。 2、讲下MyBatis的缓存 答:MyBatis的缓存分为一级缓存...

优惠券活动
2018/04/29
0
0
Mybatis3.4.x技术内幕(十七):Mybatis之动态Sql设计原本(上)

上一篇博文中,介绍了可复用的sql片段,通过<include>标签进行引入,而<include>标签内一般存放的是静态sql,其实,sql片段也是可以放置动态sql标签内容。 1. Mybatis支持的动态sql及基本用法...

祖大俊
2016/08/20
1K
2
MyBatis基础学习:动态SQL和SQL语句构建器类

Mybatis介绍 MyBatis(http://www.mybatis.org/) 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可...

Jia
2016/09/22
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

在阿里云ecs服务器(linux之centos系统)安装调试nginx

购买阿里云ecs服务器实例 由于这里只是测试,我们就随便买一个(当然我就选最便宜的了,这里的抢占式实例测试完可以直接释放) 选择centos7.6镜像 点击下一步:网络和安全组 接下来选中开通h...

祖达
昨天
2
0
【阴阳师】真蛇10层记录

蛇切黑体系 追月神 散件一速,速度越高越好(220+) 镰鼬 招财二速,速度211以上; 山兔 火灵三速,速度180-200均可; 丑女 心眼四速,速度170左右即可; 大蛇 蚌精暴击套。速度高于阴阳师即...

Areya
昨天
4
0
js动态设置元素高度

this.$refs.xxx.style.height= this.contentHeight; 元素需要绑定

Carbenson
昨天
2
0
今天的学习

今天学到了ci框架中的查询语句的where条件语句: 1、$this->db->select('')->from('')->where('id = ??')->get()->result_array();2、$this->db->select('')->from('')->where('id', '??'......

墨冥
昨天
2
0
MySQL在高并发下的订单撮合、系统使用、共享锁与排他锁保证数据一致性

前序 距离上次择文发表,两月余久。2018年也即将要结束了,目前的工作依然是与区块链应用相关的,也很荣幸在9月初受邀签约出版暂名为《区块链以太坊DApp实战开发》一书,预计在明年年初出版。...

我最喜欢三大框架
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部