Mybatis的动态拼接条件方式

 更新时间:2024年02月01日 09:07:05   作者:人月IT  
这篇文章主要介绍了Mybatis的动态拼接条件方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Mybatis的动态拼接条件

官网的例子永远是最好的,切记切记!!

拼接条件

    <sql id="select_asset_where">
        <if test="accountType != null and accountType.size != 0" >
            and 
            <foreach collection="accountType" item="param" separator="OR" open="(" close=")">
                a.account_type = #{param}
            </foreach>
        </if>
    </sql>

条件查询

<select id="selectAssetByCondition"
                parameterType="com.zemcho.controller.asset.dto.AssetConditionDto"   resultMap="AssetCondtitionResultMap">
        SELECT reg_code, asset_name, asset_type, metering_units, use_info, 
                expect_end_date, regist_man, regist_date, account_type, fee_item, 
                finance_bill_date, user, user_account, keeper, checker, 
                buyer, school_addr, account_book, acquire_way, asset_use_way, 
                write_off_date, asset_status_1, store_place, orginal_value, net_value, 
                number_value
        FROM tb_asset_regist_d a
        <if test="assetDepInfo != null" >
            , cfg_asset_dep_info b
        </if>
        <if test="assetTypeInfo != null" >
            , cfg_asset_type_info c
        </if>
        <where>
            <include refid="select_asset_where"></include>
        </where>
</select>

批量插入

 <!-- 批量插入 -->
    <!-- 批量插入生成的兑换码 -->
    <insert id ="insertBulk" parameterType="java.util.List" >
        <selectKey resultType ="java.lang.Integer" keyProperty= "id"
                order= "AFTER">
            SELECT LAST_INSERT_ID()
        </selectKey >
        insert into `tb_basic_treatment_d`
        (<include refid="Base_Column_List" />,LOAD_TIME)
        values
        <foreach collection ="list" item="item" index= "index" separator =",">
            (
            #{item.name},
            #{item.teacherNumber},
            #{item.idNumber},
            #{item.year},
            #{item.annualWageIncomeYuan},
            #{item.fiveInsuranceAGold},
            #{item.loadTime}
            )
        </foreach >
    </insert >

普通查询

 <select id="selectByReaderNum" parameterType="string" resultMap="BaseResultMap">
    select 
    <include refid="Base_Column_List" />
    from tb_library_borrower_d
    where reader_id = #{num,jdbcType=VARCHAR} limit 1
  </select>

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • SpringBoot中使用 RabbitMQ的教程详解

    SpringBoot中使用 RabbitMQ的教程详解

    这篇文章主要介绍了SpringBoot中使用 RabbitMQ的教程详解,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • Gradle构建基本的Web项目结构

    Gradle构建基本的Web项目结构

    这篇文章主要为大家介绍了Gradle创建Web项目基本的框架结构搭建,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-03-03
  • java智能问答图灵机器人AI接口(聚合数据)

    java智能问答图灵机器人AI接口(聚合数据)

    这篇文章主要介绍了java智能问答图灵机器人AI接口(聚合数据),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • Maven热部署devtools的实现示例

    Maven热部署devtools的实现示例

    本文主要介绍了Maven热部署devtools的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • SpringBoot项目中Druid自动登录功能实现

    SpringBoot项目中Druid自动登录功能实现

    Druid是Java语言中最好的数据库连接池,Druid能够提供强大的监控和扩展功能,这篇文章主要介绍了SpringBoot项目中Druid自动登录功能实现,需要的朋友可以参考下
    2024-08-08
  • SpringBoot HikariCP连接池监控实现方案

    SpringBoot HikariCP连接池监控实现方案

    文章介绍了五种监控SpringBoot应用程序中HikariCP连接池状态和性能的工具和技术,包括SpringBootActuator、Micrometer、Prometheus+Grafana、HikariCP自带的Metrics以及NewRelic/Datadog等第三方服务,每种方法都有其特点和配置步骤
    2025-01-01
  • Java获取支付宝OpenID的实现方法

    Java获取支付宝OpenID的实现方法

    在Java中,通过支付宝开放平台API可以获取用户的OpenID,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-09-09
  • Java接口自动化测试框架设计之Get请求方法和测试详解

    Java接口自动化测试框架设计之Get请求方法和测试详解

    这篇文章主要介绍了Java接口自动化测试框架设计 Get请求方法和测试,框架设计我们只是介绍基本的组件,而且框架设计没有想象那么难,一步一步跟着做就会了。这篇我们来演示,如果通过Java代码来实现一个用纯代码实现Http中的Get请求过程,需要的朋友可以参考下
    2019-07-07
  • RocketMQ延迟消息简明介绍

    RocketMQ延迟消息简明介绍

    这篇文章主要介绍了RocketMQ延迟消息,延迟消息是个啥?顾名思义,就是等一段时间再消费的消息。文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • Java中的常用时间日期类总结(Date、DateFormat)

    Java中的常用时间日期类总结(Date、DateFormat)

    在Java开发中处理时间和日期是相当常见的任务,无论是计算日期差异、格式化日期显示、解析日期字符串还是进行日期计算,都需要一些时间和日期处理的技巧,这篇文章主要给大家介绍了关于Java中常用时间日期类(Date、DateFormat)的相关资料,需要的朋友可以参考下
    2024-08-08

最新评论