因为在很多业务逻辑复杂的项目中,往往不是简单的sql语句就能查询出来自己想要的数据,所有mybatis引入了动态sql语句,

UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hao.mapper.UserMapper"><select id="findByCondition" parameterType="user" resultType="user">select * from user<where><if test="id!=0">and id=#{id}</if><if test="username!=null">and username=#{username}</if><if test="password!=null">and password=#{password}</if></where></select>
</mapper>

Dao层接口

然后测试

 @Testpublic void test1() throws IOException {InputStream stream = Resources.getResourceAsStream("SqlMapConfig.xml");SqlSession sqlSession = new SqlSessionFactoryBuilder().build(stream).openSession();UserMapper mapper = sqlSession.getMapper(UserMapper.class);
//      模拟条件User user = new User();user.setId(1);user.setUsername("张三");user.setPassword("123");List<User> userList = mapper.findByCondition(user);System.out.println(userList);}

结果:

Mybatis映射文件动态SQL语句-01相关推荐

  1. Mybatis映射文件动态SQL语句-02

    foreach UserMapper.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYP ...

  2. Mybatis配置及动态SQL语句标签

    #Mybatis resources: ###db.properties: jdbc.driver = com.mysql.jdbc.Driver jdbc.url = jdbc:mysql://lo ...

  3. Mybatis 中update动态SQL语句

    Mybatis中的CRUD操作(增删改查)中,简单的SQL操作比较直观,如查找操作: <select id="findBySrcId" resultMap="ent ...

  4. MyBatis之五:动态sql语句

    在mybatis 3 或以上的版本提供了4类标签,分别是:if,choose(when,otherwise),rim(where,set),foreach.接下来将分别介绍这几种标签的具体用法,映射x ...

  5. Mybatis—动态SQL语句与逆向工程

    Mybatis动态SQL语句与逆向工程 MyBatis动态SQL语句与逆向工程 1.动态SQL语句 1.1.动态SQL是什么 1.2.动态SQL有什么用 1.3.基于XML的实现 1.3.2.接口文件 ...

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

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

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

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

  8. 【MyBatis笔记】03-映射文件的sql语句中 #{} 和 ${} 的区别以及实现模糊查询

    映射文件的sql语句中 #{} 和 ${} 区别以及实现模糊查询 sql 语句中的 #{} #{} 模糊查询错误用法 #{} 实现模糊查询 sql 语句中的 ${} ${} 实现模糊查询 #{} 与 ...

  9. 03-映射文件的sql语句中 #{} 和 ${} 的区别以及实现模糊查询

    映射文件的sql语句中 #{} 和 ${} 区别以及实现模糊查询 目录 sql 语句中的 #{} #{} 模糊查询错误用法 #{} 实现模糊查询 sql 语句中的 ${} ${} 实现模糊查询 #{} ...

最新文章

  1. 梯度下降算法到logistic回归
  2. 【图像】jpg与jpeg的区别
  3. linux关于/etc/profile.d与/etc/profile的正确运用
  4. IOS开发基础之socket的使用
  5. 工具使用——印象(汇总)
  6. mysql 统计查询总数_如何一眼识别MySQL选择哪种查询计划(上)
  7. python编程入门----numpy不常见的小细节
  8. android应用程序列表,List列表应用程序-小知识 #103
  9. zoj 3228 覆盖及非覆盖串的多次匹配
  10. 2022年四方系统/四方支付系统部署实战,以及细节讨论,Gitee版本
  11. c语言ASCII码表详解(一)
  12. 如果在魔兽世界中,做一个合格野性德
  13. 【架构】1366- 如何画出一张优秀的架构图
  14. windows安全事件ID编号解释大全
  15. java反射获取子类或者父类的属性值
  16. 思科NXOS系列交换机(N5K,N7K,N9K)和华为CE交换机配置比对
  17. MISC常用工具(会接着补)
  18. 大数据与Java的关系
  19. IDC:阿里云获2021中国数据治理平台市场份额第一
  20. 【Win 10应用开发】如何知道UAP在哪个平台上运行

热门文章

  1. 截取中文字符长度(中文、字母都有效)
  2. 《大话》之 策略模式 Vs 状态模式
  3. asp.net 由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值...
  4. SCSF 系列:Smart Client Software Factory 中 MVP 模式最佳实践
  5. 查询Windows api
  6. [翻译]load-on-startup 元素的作用
  7. bin文件转换成html,怎么样把BIN文件转换成ISO文件
  8. android 不可点击状态,Android系统.如何使用setClickable同时设置所有按钮可点击或不可点击?...
  9. oracle dg状态查询,oracle dg状态检查及相关命令
  10. android r 编译找不到头文件_kOS(1):编译