Mybatis之通用mapper使用注解的方式写动态sql-小结

使用注解的方式直接在语句中拼写动态SQL语句

注意事项:

  @Select("<script> SELECT DISTINCT project_id FROM `project_partner` WHERE belong=1 AND project_id " +
            "IN " +
            "<foreach item=‘item‘ index=‘index‘ collection=‘ids‘ open=‘(‘ close=‘)‘ separator=‘,‘ >" +
            "#{item}" +
            "</foreach>" +
            "</script>")
    List<Integer> findAllId(@Param("ids") List<Integer> item);

    /**
     * 等价于上者
     * 小结:
     * 如果加上 @Param 注解,(可以不指定parameterType),并且注解值等同于 collection 中的值
     * 如果不加上 @Param 注解,需要指定 collection 的类型,是 list、map、array 的三种类型中的一种
     * 并且使用动态sql的话需要加上 <script> 的闭合标签,并且如果其中出现 < 或 > 符号,需要进行转义,否则会出错:
     *                  Caused by: org.xml.sax.SAXParseException: 元素内容必须由格式正确的字符数据或标记组成
     * @Select(    "<script> SELECT DISTINCT project_id FROM `project_partner` WHERE belong=1 AND project_id " +
     *             "IN " +
     *             "<foreach item=‘item‘ index=‘index‘ collection=‘list‘ open=‘(‘ close=‘)‘ separator=‘,‘ >" +
     *             "#{item}" +
     *             "</foreach>" +
     *             "</script>")
     *     List<Integer> findAllId(List<Integer> item);
     */

至此,小结结束!

原文地址:https://www.cnblogs.com/Nickc/p/12148229.html

时间: 2024-10-11 20:42:58

Mybatis之通用mapper使用注解的方式写动态sql-小结的相关文章

Spring Boot集成MyBatis实现通用Mapper

前言 MyBatis关于MyBatis,大部分人都很熟悉.MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录.不管是DDD(Domain Driven Design,领域驱动建模)还是分层架构的风

扩展mybatis和通用mapper,支持mysql的geometry类型字段

因项目中需要用到地理位置信息的存储.查询.计算等,经过研究决定使用mysql(5.7版本)数据库的geometry类型字段来保存地理位置坐标,使用虚拟列(Virtual Generated Column)来保存geohash值,便于查询. 需要了解geometry如何使用及优势可参看: mysql中geometry类型的简单使用 MySQL Geometry扩展在地理位置计算中的效率优势 本文主要讲解扩展mybatis和通用mapper,使其支持geometry类型字段的新增.修改.查询 首先创

mybatis的注解开发之三种动态sql

脚本sql XML配置方式的动态SQL我就不讲了,有兴趣可以自己了解,下面是用<script>的方式把它照搬过来,用注解来实现.适用于xml配置转换到注解配置 @Select("<script>select * from user <if test=\"id !=null \">where id = #{id} </if></script>") public List<User> findUse

MyBatis动态SQL小结

p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; text-align: justify; font-size: 10.5pt; font-family: 等线 } .MsoChpDefault { font-family: 等线 } div.WordSection1 { } ol { margin-bottom: 0cm } ul { margin-bottom: 0cm } Mybati

教你如何开发Mybatis的通用Mapper

本文档地址: 如何开发自己的通用Mapper 博客排版不如直接在gitosc上查看,建议去上面的链接查看. 前言 自从发了通用Mapper-0.1.0版本后,我觉得对少数人来说,这可能是他们正好需要的一个工具.至少目前的通用DAO中,很少能有比这个更强大的. 但是对另一部分人来说,使用Mybatis代码生成器(我正在和一些朋友翻译这个文档,地址:MyBatis Generator)生成xml很方便,不需要使用通用Mapper. 实际上如果你无法在自己的业务中提取出通用的单表(多表实际上能实现,但

Spring Boot集成Mybatis及通用Mapper

集成Mybatis可以通过 mybatis-spring-boot-starter 实现. <!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-

mybatis使用通用mapper步骤

首先在pom.xml文件中通过maven下载通用mapper包 创建通用mapper接口且继承Mapper<T>类泛型 在mybatis配置文件中引入mapperclass 接下来便开始在通用mapper的世界中畅游了~~~~~~~~~ package com.aaa.entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; impo

mybatis ——xml方式与动态sql

mybatis的真正强大之处在于它的映射语句,所以映射器的xml方式就显得相对简单 为啥子Mapper接口没有实现类,却可以被调用那? mybatis使用java动态代理可以直接调用接口来调用相应的方法,不需要提供接口的实现类.当调用一个接口的方法时,会调用接口的全限定名称和当前调用方法的名称组成一个方法id,这个id就是xml映射文件中的namespace和具体方法的id,这样接口和xml就关联了.当调用mapper接口,通过代理转化成对xml里对应方法的调用. mybatis使用预编译参数的

接口方式[推荐]/动态SQL语句

MVC目录结构: Src -- com.shxt.servlet[控制层] --com.shxt.service[业务逻辑层] --com.shxt.model[实体Bean,用来承载数据] --com.shxt.dao[data access object数据访问层,执行SQL] 使用接口的规则 接口方式:处理多个参数的规则 动态SQL之Where语句 更新 添加操作 批量处理