1.Mybatis注解开发之动态SQL语句

背景:使用mybatis的注解开发动态Sql会比较麻烦, 很不方便, 所以不太推荐使用,该文章以查询作为案例,演示动态sql语句.
注意:Mybatis的动态sql语句开发, 可以分为三种写法:

1.脚本动态sql语句
2.方法中定义sql
3.结构化sql

2.案例环境

2.1.实体类 User(提供了Get、Set、toString方法)

2.2.接口 IUserDao

2.3.需求

使用动态sql, 执行IUserDao接口内的findUserByCondition方法
如果username属性有值,则查询条件中加上username=值
如果sex属性有值,则查询条件也商家 sex=值

3.动态SQL实现

3.1.脚本动态SQL语句


把xml中的动态sql语句, 直接拷贝到注解中, 并使用script标签包括起来即可

3.2.方法中定义sql语句

3.2.1.需要定义一个专门用于生成动态sql语句的类. 并在类中定义一个专门给findUserByCondition()方法生成sql语句的方法.

3.2.2.可以在方法中利用SELECT( ), FROM( ), WHERE( )等动态生成sql语句.

3.2.3.把该类的该方法,配置到接口的findUserByCondition()方法上,表示该方法所使用的查询的sql语句,由UserDynaSqlProvider类的findUserByConditionSql方法提供

3.3.结构化sql语句

注意: 该方式和方式2一模一样, 只是在组装sql语句时的语法有少许区别.

3.3.1需要定义一个专门用于生成动态sql语句的类. 并在类中定义一个专门给findUserByCondition()方法生成sql语句的方法.

3.3.2.可以在方法中利用SELECT( ), FROM( ), WHERE( )等动态生成sql语句

3.3.3.把该类的该方法,配置到接口的findUserByCondition()方法上,表示该方法所使用的查询的sql语句,由UserDynaSqlProvider类的findUserByConditionSql方法提供

测试

如果测试代码如下:

则程序运行产生的sql语句是:

select * from user where (username = ?)

运行结果是:

如果测试代码如下:

则程序运行产生的sql语句是:

select * from user where (username = ? and sex = ?)

运行结果是:

Java神鬼莫测之MyBatis注解开发之动态SQL语句(六)相关推荐

  1. Mybatis注解-注解方式的动态SQL语句

    基于手写SQL语句的注解CRUD 把手写SQL语句的注解CRUD,修改为动态SQL语句方式. CategoryDynaSqlProvider 新增CategoryDynaSqlProvider,提供C ...

  2. Mybatis第三天动态Sql语句、XML中一对多、多对一、多对多该怎么写

    Mybatis第三天 Mybatis中使用unpooled配置连接池原理分析 Mybatis中使用pooled配置连接的原理分析 Mybatis中的事务原理和自动提交设置 Mybatis中的动态sql ...

  3. IBatis.net动态SQL语句(六)

    在学习动态SQL语句之前,首先必须对条件查询有一定了解,先来学习如何向IBatis.Net的映射文件里传入参数. 一.条件查询 1.传递单个参数 如根据Id查询: <select id=&quo ...

  4. java元婴期(24)----java进阶(mybatis(3)---动态sql(重点))

    什么是动态sql mybatis核心对sql语句进行灵活操作,通过表达式进行判断,对sql进行灵活拼接.组装. 标签介绍 1.if标记(if是动态sql中最最常用的标记) 动态 SQL 通常要做的事情 ...

  5. Mybatis(13)动态sql语句if/where/foreach

    创建项目day03_eesy_02dynamicSQL,复制Mybatis(12)中项目day03_eesy_01datasourceAndTx if标签的使用,针对查询 1.更改IUseDao接口 ...

  6. java注解的开发_使用Java注解开发自动生成SQL

    使用注解开发的好处就是减少配置文件的使用.在实际过程中,随着项目越来越复杂,功能越来越多,会产生非常多的配置文件.但是,当配置文件过多,实际维护过程中产生的问题就不容易定位,这样就会徒劳的增加工作量. ...

  7. Mybatis 注解开发 + 动态SQL

    Hello 大家好我是橙子同学,今天分享注解Mybatis注解开发+动态sql 目录 每文一铺垫(今天有小插曲哦) 注解开发 添加 @Insert 删除 @Delete 查询 @Select 修改 @ ...

  8. 02JavaWeb之MyBatis详解、SqlSession执行、mapper代理执行、动态SQL语句、注解开发、resultMap、resultType、多参数传递

    MyBatis MyBatis 是一款优秀的持久层框架,用于简化 JDBC 开发,它封装了JDBC大部分的操作. MyBatis 本是 Apache 的一个开源项目iBatis, 2010年这个项目由 ...

  9. mybatis注解开发动态sql

    mybatis注解开发动态sql 本篇来讲一下如何使用mybatis注解模式中的动态sql 先来讲一下什么是动态sql 在我们实际开发的时候可能会出现很多方法需要一条很相似的sql语句来进行增删改查, ...

最新文章

  1. 【Win 10 应用开发】将墨迹保存到图像的两种方法
  2. ipv6下单播。组播 泛播
  3. java svgbase64转byte_java 图片进行base64 编码解码
  4. Android PC投屏简单尝试(录屏直播)2—硬解章(MediaCodec+RMTP)
  5. 计算机学校专业工学,大学专业详解:工学(仪器仪表类)
  6. Java1.8接口方法都是抽象_抽象类和接口的区别以及jdk1.8之后接口里面可以实现方法...
  7. 配置classpath,引入jar包
  8. brew 安装php7.1.6_mac上通过brew安装php7
  9. Xcode7中你一定要知道的炸裂调试神技(转)
  10. 第一篇:CUDA 6.0 安装及配置( WIN7 64位 / 英伟达G卡 / VS2010 )
  11. cdr宏教程_cdr软件怎么使用宏批量导出文件?
  12. akka typed mysql_akka-typed(8) - CQRS读写分离模式
  13. 乒乓球比赛赛程_2018国际乒联乒乓球重大赛事详细赛程表,看点爆点早知道
  14. 论文阅读Check it again:Progressive Visual Question Answering via Visual Entailment
  15. 【附PPT下载】2021腾讯广告算法大赛 ACM MM Grand Challenge录用论文揭晓
  16. BOSE QC35 蓝牙卡顿,断断续续问题
  17. css:currentColor和inherit属性的区别
  18. 1094 谷歌的招聘(测试点2说明)
  19. python 文件和文件夹操作
  20. QT核心机制3:信号与槽

热门文章

  1. linux locate命令查找,Linux locate命令的使用方法
  2. php输出熊猫图案,CSS如何绘制一只萌萌哒的大熊猫?(代码示例)
  3. 我的外挂之路【三】远程调用
  4. opengl曲面贴图
  5. 新手可直接复现:Duan版本CenterNet在2080Ti上训练自己的数据集——踩坑记录
  6. 【软考 系统架构设计师】原创必过论文④ 论基于构件的软件开发
  7. Python基础之day03-字符串,列表,元组,字典
  8. Python GUI设计——Button功能按钮
  9. 通过P3P头实现跨域设置cookie
  10. 从无到有,一步一步实现记事本APP(二)