springboot 和 mybatis整合:

mapper定义的是数据库的操作方法:

@Mapper
public interface UserMapper {}

单参数的处理:

    @Select("select * from t_user")@Results({@Result(property = "userId", column = "USER_ID"),@Result(property = "username", column = "USERNAME"),@Result(property = "password", column = "PASSWORD"),@Result(property = "mobileNum", column = "PHONE_NUM")})List<User> list();

多参数的处理:

    /*** 延伸:无论什么方式,如果涉及多个参数,则必须加上@Param注解,否则无法使用EL表达式获取参数。*/@Select("select * from t_user where username like #{username} and password like #{password}")@Results({@Result(property = "userId", column = "USER_ID"),@Result(property = "username", column = "USERNAME"),@Result(property = "password", column = "PASSWORD"),@Result(property = "mobileNum", column = "PHONE_NUM")})User get(@Param("username") String username, @Param("password") String password);

CRUD的高级注解:

@SelectProvider
@InsertProvider
@UpdateProvider
@DeleteProvider

先在mapper下定义Provider,所谓的Provider就是自定义的sql语句,规则可以自定义

public class UserSqlProvider {/*** 方式1:在工具类的方法里,可以自己手工编写SQL。*/public String listByUsername(String username) {return "select * from t_user where username =#{username}";}
}

然后定义使用这个sql语句的方法,就在对应的mapper里面操作:

    /*** 方式2:使用注解指定某个工具类的方法来动态编写SQL.*/@SelectProvider(type = UserSqlProvider.class, method = "listByUsername")@Results({@Result(property = "userId", column = "USER_ID"),@Result(property = "username", column = "USERNAME"),@Result(property = "password", column = "PASSWORD"),@Result(property = "mobileNum", column = "PHONE_NUM")})List<User> listByUsername(String username);

controller里面使用:

    @GetMapping("list/{username}")public List<User> listByUsername(@PathVariable("username") String username) {return userMapper.listByUsername(username);}

another samples:

UserSqlProvider.java   /*** 方式2:也可以根据官方提供的API来编写动态SQL。*/public String getBadUser(@Param("username") String username, @Param("password") String password) {return new SQL() {{SELECT("*");FROM("t_user");if (username != null && password != null) {WHERE("username like #{username} and password like #{password}");} else {WHERE("1=2");}}}.toString();}UserMapper.java@SelectProvider(type = UserSqlProvider.class, method = "getBadUser")@Results({@Result(property = "userId", column = "USER_ID"),@Result(property = "username", column = "USERNAME"),@Result(property = "password", column = "PASSWORD"),@Result(property = "mobileNum", column = "PHONE_NUM")})User getBadUser(@Param("username") String username, @Param("password") String password);UserController.java@GetMapping("get/bad/{username}/{password}")public User getBadUser(@PathVariable("username") String username, @PathVariable("password") String password) {return userMapper.getBadUser(username, password);}

springboot 和 mybatis整合:参数查询和动态sql相关推荐

  1. Mybatis的特性详解——动态SQL

    Mybatis的特性详解--动态SQL 前言 一.动态sql的元素 1.MyBatis if标签:条件判断 2.MyBatis choose.when和otherwise标签 3.MyBatis wh ...

  2. geoserver动态颜色参数样式、动态sql配置实现

    动态颜色参数样式.动态sql 访问方式: http://localhost:20011/geoserver/gzzjygis/wms?service=WMS&version=1.1.0& ...

  3. Mybatis最拿得出手的功能之一 SpringBoot整合Mybatis-Plus 实战之动态SQL

    MyBatis的动态SQL是最令人喜欢的功能 在了解 动态SQL之前,你首先得知道一个表达式 OGNL,这个是基础! 面试常问问题 : Mybatis 中$与#的区别? #是将传入的值当做字符串的形式 ...

  4. 8、SpringBoot+Mybatis整合------参数取值方式

    前言: 我们知道,在mybatis中,参数取值方式有两种: #{ } 和 ${ } 下面,我们来探讨下#{ }与${ }不同. 一.#{ } 例: select * from student wher ...

  5. Day14(springboot与mybatis整合、mybatis自动代码生成、swagger、thymeleaf、lombok环境配置、mybatisPlus介绍(自动代码生成))

    srpingboot和mybatis整合 springbootSSM项目下载地址 链接:https://pan.baidu.com/s/11fwh1C7ZOg3jQVlXl2DJjQ 提取码:83yt ...

  6. mybatis if test 用法_SpringBoot整合Mybatis-Plus 实战之动态SQL,Mybatis拿得出手的功能之一...

    MyBatis的动态SQL是最令人喜欢的功能 在了解 动态SQL之前,你首先得知道一个表达式 OGNL,这个是基础! 面试常问问题 : Mybatis 中$与#的区别? 是将传入的值当做字符串的形式, ...

  7. java元婴期(29)----java进阶(springmvc(3)---springmvc和mybatis整合参数绑定(上))

    springmvc和mybatis整合 需求 使用springmvc和mybatis完成商品列表查询. 整合思路 springmvc+mybaits的系统架构: 第一步:整合dao层 mybatis和 ...

  8. Eclipse中实现SpringBoot与Mybatis整合(图文教程带源码)

    场景 数据库中数据 实现效果 项目结构 前面参照 Eclipse中新建SpringBoot项目并输出HelloWorld https://blog.csdn.net/BADAO_LIUMANG_QIZ ...

  9. Mybatis的第三章动态sql总结

    我们来讲一下为什么要使用Mybatis的动态sql ? *因为动态sql之所以是Mybatis 的强大特性是因为我们在使用JDBC操作数据库的时候如果查询特别的多,将条件串联成sql字符串是一件很痛苦 ...

最新文章

  1. 【mysql】Mac下安装mysql5.7 完整步骤,大坑已解决
  2. linux 批量启动服务器,批量部署Linux操作系统systemimager 使用
  3. 检查邮箱是否包含教育后缀.edu结尾的邮箱
  4. Stanford UFLDL教程 线性解码器
  5. CentOS 7.2 Ubuntu 18部署Rsync + Lsyncd服务实现文件实时同步/备份
  6. poj2823 Sliding Window
  7. matlab解带参数的积分方程组,方程组求解问题:方程组中有带参数的积分函数,求参数...
  8. 使用SpringMVC参数传递时,解决get请求时中文乱码的问题
  9. Hive 导数据到本地(2种方式)
  10. 1TB存储版iPhone 13 Pro机型预计交付时间已被推迟至10月
  11. mysql 重要维护工具 图解
  12. 免费复制百度文库的VIP文章(非常简单!)
  13. Eureka的元数据
  14. 服务器上excel文件损坏,excel文件打不开的原因和解决方法 excel文件损坏怎么修复...
  15. DB buffer bussy wait 分析一例
  16. 企业如何借助制造业ERP系统,做好生产排产管理?
  17. 云服务器接口文档 华为云,和云服务器对接的接口
  18. On the Effectiveness of Visible Watermarks 利用AI技术去除图像水印
  19. 01马氏链及其平稳分布
  20. 帝国往昔--中国的附属国

热门文章

  1. PHP图片上传,框架通用
  2. 15个JavaScript 编码小技巧
  3. java 重用性_Java开发重用性必备的三大核心知识点
  4. html5中加亮文本,html实现高亮关键字
  5. ubuntu 12.04 php mysql_Ubuntu 12.04下LAMP安装配置
  6. alm系统的使用流程_840D sl系统授权管理
  7. sqlplus中调用shell_(转)shell 调用sqlplus各种情况示例
  8. linux pxe安装mysql_搭建PXE实现自动化安装系统
  9. html 复制文本按钮,js实现点击按钮复制文本功能
  10. android应用资源可以分为两大类,Android 应用资源(一)