mybatis include choose when if

2024-05-12 02:38
文章标签 mybatis include choose

本文主要是介绍mybatis include choose when if,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

<?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.hundsun.cloudtrade.match.dao.IDayHoldDao"><sql id="insertIntoHoldSql">INSERT INTO tb_day_hold (firm_account    ,seat_no         ,stock_account   ,exchange_type   ,stock_name      ,stock_code      ,amount          ,market_value    ,position_str    )VALUES (#{firm_account  } ,#{seat_no       } ,#{stock_account } ,#{exchange_type } ,#{stock_name    } ,#{stock_code    } ,<choose><when test="occur_amount != null and occur_amount != '' ">#{occur_amount        } ,  </when><when test="amount != null and amount != '' ">#{amount        } ,  </when><otherwise>0,</otherwise></choose>#{market_value  } ,#{position_str  } )</sql><insert id="addOrUpdateOne_addAmount" parameterType="com.hundsun.cloudtrade.match.domain.DayHoldDomain"><include refid="insertIntoHoldSql"></include><![CDATA[ON DUPLICATE KEY UPDATEamount = amount + VALUES(amount);]]></insert><insert id="addOrUpdateOne_amount" parameterType="com.hundsun.cloudtrade.match.domain.DayHoldDomain"><include refid="insertIntoHoldSql"></include><![CDATA[ON DUPLICATE KEY UPDATEamount = VALUES(amount) , seat_no = VALUES(seat_no);]]></insert><select id="qryMultiRecords"parameterType="com.hundsun.cloudtrade.match.dto.req.QryHoldReq"resultType="com.hundsun.cloudtrade.match.domain.DayHoldDomain">SELECT firm_account    ,seat_no         ,stock_account   ,exchange_type   ,stock_name      ,stock_code      ,amount          ,market_value    ,position_str    <choose><!-- 查询历史持仓表 --><when test="hold_date != null and hold_date != '' ">,hold_date FROM tb_history_hold</when><!-- 查询当日持仓 --><otherwise>,'' hold_date FROM tb_day_hold</otherwise></choose>WHERE firm_account = #{firm_account}<if test="seat_no != null and seat_no != '' ">  AND seat_no = #{seat_no}  </if>   <if test="exchange_type != null and exchange_type != '' ">  AND exchange_type = #{exchange_type}  </if>   <if test="stock_account != null and stock_account != '' ">  AND stock_account = #{stock_account}  </if>   <if test="position_str != null and position_str != '' ">  AND position_str = #{position_str}  </if>   ORDER BY stock_code DESC<if test="req_number != null and req_number != '' ">  LIMIT 0,#{req_number}</if>;</select><delete id="delMultiRecords" parameterType="com.hundsun.cloudtrade.match.dto.req.DelHoldsReq"><![CDATA[DELETE FROM tb_history_hold WHERE firm_account = #{firm_account};DELETE FROM tb_day_hold WHERE firm_account = #{firm_account};]]></delete></mapper>

数据源的配置:

jdbc.url=jdbc:mysql://10.20.135.32:8066/TESTDB?autoReconnect=true&allowMultiQueries=true
jdbc.username=root
jdbc.password=123456
jdbc.driverClass=com.mysql.jdbc.Driver

注意 allowMultiQueries=true 说明允许了多个 sql 语句的同时操作



这篇关于mybatis include choose when if的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/981372

相关文章

Mybatis官方生成器的使用方式

《Mybatis官方生成器的使用方式》本文详细介绍了MyBatisGenerator(MBG)的使用方法,通过实际代码示例展示了如何配置Maven插件来自动化生成MyBatis项目所需的实体类、Map... 目录1. MyBATis Generator 简介2. MyBatis Generator 的功能3

Mybatis提示Tag name expected的问题及解决

《Mybatis提示Tagnameexpected的问题及解决》MyBatis是一个开源的Java持久层框架,用于将Java对象与数据库表进行映射,它提供了一种简单、灵活的方式来访问数据库,同时也... 目录概念说明MyBATis特点发现问题解决问题第一种方式第二种方式问题总结概念说明MyBatis(原名

SpringBoot基于MyBatis-Plus实现Lambda Query查询的示例代码

《SpringBoot基于MyBatis-Plus实现LambdaQuery查询的示例代码》MyBatis-Plus是MyBatis的增强工具,简化了数据库操作,并提高了开发效率,它提供了多种查询方... 目录引言基础环境配置依赖配置(Maven)application.yml 配置表结构设计demo_st

解决mybatis-plus-boot-starter与mybatis-spring-boot-starter的错误问题

《解决mybatis-plus-boot-starter与mybatis-spring-boot-starter的错误问题》本文主要讲述了在使用MyBatis和MyBatis-Plus时遇到的绑定异常... 目录myBATis-plus-boot-starpythonter与mybatis-spring-b

Spring Boot 中整合 MyBatis-Plus详细步骤(最新推荐)

《SpringBoot中整合MyBatis-Plus详细步骤(最新推荐)》本文详细介绍了如何在SpringBoot项目中整合MyBatis-Plus,包括整合步骤、基本CRUD操作、分页查询、批... 目录一、整合步骤1. 创建 Spring Boot 项目2. 配置项目依赖3. 配置数据源4. 创建实体类

Mybatis拦截器如何实现数据权限过滤

《Mybatis拦截器如何实现数据权限过滤》本文介绍了MyBatis拦截器的使用,通过实现Interceptor接口对SQL进行处理,实现数据权限过滤功能,通过在本地线程变量中存储数据权限相关信息,并... 目录背景基础知识MyBATis 拦截器介绍代码实战总结背景现在的项目负责人去年年底离职,导致前期规

MyBatis框架实现一个简单的数据查询操作

《MyBatis框架实现一个简单的数据查询操作》本文介绍了MyBatis框架下进行数据查询操作的详细步骤,括创建实体类、编写SQL标签、配置Mapper、开启驼峰命名映射以及执行SQL语句等,感兴趣的... 基于在前面几章我们已经学习了对MyBATis进行环境配置,并利用SqlSessionFactory核

MyBatis延迟加载的处理方案

《MyBatis延迟加载的处理方案》MyBatis支持延迟加载(LazyLoading),允许在需要数据时才从数据库加载,而不是在查询结果第一次返回时就立即加载所有数据,延迟加载的核心思想是,将关联对... 目录MyBATis如何处理延迟加载?延迟加载的原理1. 开启延迟加载2. 延迟加载的配置2.1 使用

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

Spring+MyBatis+jeasyui 功能树列表

java代码@EnablePaging@RequestMapping(value = "/queryFunctionList.html")@ResponseBodypublic Map<String, Object> queryFunctionList() {String parentId = "";List<FunctionDisplay> tables = query(parent