mybatis相关技巧

MyBatis 中常用的 Mapper 相关注解和技巧,包括 @Select/@Insert/@Update/@Delete 和 @Options,并给出一些常见的优化方法 Mapper 是 MyBatis 中的一个重要概念,它用于封装复杂的 SQL 和参数映射关系,降低数据访问层与业务逻辑层之间的耦合度,方便后期维护和扩展。本系列教程主要基于 MyBatis3.x版本进行讲解,对 MyBatis-spring、MyBatis-mybatis、MyBatis-generator 等其他框架也会有所涉及。在 MyBatis 中,Mapper 是一个接口,这个接口提供了若干个方法,这些方法对应了我们执行数据库操作时需要执行的 SQL 语句或存储过程。 阅读详情

1. mybatis模糊查询新方式

<bind name="reportNumber" value="'%'+reportNumber+'%'"/>

详细栗子:

<if test="reportNumber != null and reportNumber !=''">
    <bind name="reportNumber" value="'%'+reportNumber+'%'"/>
    AND giri.report_number LIKE #{reportNumber}
</if>

或者

concat('%',#{dto.reportNumber},'%')

2. mapper.xml中大于等于新方式

<![CDATA[>=]]>
<=    &lt;=
>=    &gt;=

3.选择查询条件

<where>
<choose>
                <when test="userRoleCode == 'bxcw'">
                    <!--财务人员:单据状态为提交-->
                    AND gici.case_status = 'SUBMITTED'
                </when>
                <when test="userRoleCode == 'bxgs'">
                    <!--保险公司:单据状态为财务通过-->
                    AND gici.case_status = 'FINANCIAL_PASS'
                </when>
                <otherwise>
                    <!--业务人员:索赔状态为新建或者财务拒绝或者保险公司拒绝-->
                    AND (
                    gici.case_status = 'NEW'
                    OR gici.case_status = 'FINANCIAL_REJECT'
                    OR gici.case_status = 'INSURANCE_COM_REJECT'
                    )
                    AND (giri.contact_employee_id = #{userId} OR giri.created_by = #{userId})
                </otherwise>
            </choose>

4. mybatis方法解析

insert():有值插入,没有的值插入null
insertSelective(): 只插入有值得属性

5. mybatis一对一

association 关键字
例子:

<resultMap id="IcBusinessGroundKpi" type="com.hand.hic.gic.dto.IcBusinessGroundKpiCountDTO">
    <result property="reportTime" column="report_time"/>
    <result property="closeTime" column="close_time"/>
    <result property="paymentTime" column="payment_time"/>
    <result property="payTime" column="pay_time"/>
    <result property="writeOffTime" column="write_off_time"/>
    <association property="total" javaType="com.hand.hic.gic.dto.IcBusinessGroundKpiDTO">
        <result property="report" column="report"/>
        <result property="unSettled" column="un_settled"/>
        <result property="settled" column="settled"/>
        <result property="unRequest" column="un_request"/>
        <result property="requested" column="requested"/>
        <result property="unCompensate" column="un_compensate"/>
        <result property="compensated" column="compensated"/>
        <result property="unWriteOff" column="un_write_off"/>
        <result property="writeOn" column="write_on"/>
    </association>
</resultMap>

注意点:association标签下的属性需要写,不然无法识别

6. mybatis一对多

collection 关键字
例子:
image.png
注意点:collection 标签下的属性貌似可以不用写,待验证…

集成学习综述—bagging/随机森林/adaboost/GBDT/XGBoost/LightGBM/catboost 原理和代码介绍 集成学习介绍 文章目录集成学习介绍1 基本概念1.1 定义基本定义集成学习类别参考链接1.2 基学习器(CART)介绍公式介绍例子讲解代码实践参考链接1.3 偏差(bias)和方差(var)公式推导图解参考链接2 Boosting类2.1 原理2.2 AdaBoost2.2.2 公式推导2.2.3 优点与不足优点不足应用2.2.4 代码实践2.2.5 参考链接2.3 GBDT原理介绍代码实践参考... 阅读详情

相关推荐

PINN——加入物理约束的神经网络

【摘要】 基于物理信息的神经网络(Physics-informed Neural Network, 简称PINN),是一类用于解决有监督学习任务的神经网络,它不仅能够像传统神经网络一样学习到训练数据样本的分布规律,而且能够学习到数学方程描述的物理定律。与纯数据驱动的神经网络学习相比,PINN在训练过程中施加了物理信息约束,因而能用更少的数据样本学习到更具泛化能力的模型。本文主要解析这种神经网络以...

qq_39444290的博客 4581

MySql相关开发技巧-----mybatis中一对多和一对一的使用

开发过程中,经常遇到查出来的数据需要进行业务封装的.如果用代码处理非常麻烦.这里写两种mybatis中标签的使用方法 mysql查出来如果是这种数据格式 name data 1 A 1 B 2 A 2 B 2 C 但是业务要求.需要封装成 1—> A,B 2—>A,B,C 这时候用一对多标签就可以实现 放代码 @Data public class NameDTO{ @ApiModelProperty(value = "名称") private

strophe的博客 248

Jetson Nano官方镜像下载&烧录

在NVIDIA Jetson Nano开发者套件上安装NVIDIA官方Ubuntu镜像

weixin_44222088的博客 8843

【MyBatis】深入解析 MyBatis 基础操作:使用对象/ List 接收单条/多条数据库数据策略、多参数绑定测试技巧、@Results、@ResultsMap 相关注解及驼峰命名配置文件

【MyBatis】深入解析 MyBatis 基础操作:使用对象/ List 接收单条/多条数据库数据策略、多参数绑定测试技巧、接口参数与 SQL 字段名一致原则通过as起别名映射、 通过@Results进行结 通过 @ResultsMap 复用 @Results 开启驼峰命名

OuO-1 的博客 662

大一Python之循环解决实际问题

pythin之循环解决实际问题

weixin_66263546的博客 2287

5G边缘计算:核心网下沉革命

5G核心网与边缘计算的深度融合,通过UPF下沉、本地流量卸载等关键技术,实现了低时延、高效能的分布式计算架构。该技术将数据处理从核心网向边缘节点转移,支持工业控制、车联网、远程医疗等场景的1-10ms超低时延需求。5G核心网的SBA架构和CUPS设计为边缘计算提供了灵活部署基础,SMF、PCF等网元协同确保业务质量与可靠性。

Qinti_mm的博客 1398

mybatis的动态查询

1.if 语句的使用 <select id="findPagedMedicines" resultType="Medicine"> select * from vw_medicine where 1=1 <!--药名--> <if test="type=='1'.toString()"> and medicine...

SeaLong_的博客 398

解密OpenVLA的ActionTokenizer:如何用256个Token控制7维机器人动作

本文深入解析了OpenVLA模型中ActionTokenizer的核心机制。该分词器通过将7维连续机器人动作空间离散化为256个Token,巧妙地解决了大语言模型输出精确控制指令的难题。文章详细阐述了其设计哲学、与Llama-2词表的集成方式,并分析了256个离散区间在精度与效率间的平衡,为机器人视觉-语言-动作控制提供了关键技术桥梁。

weixin_29209801的博客 475

Mybatis中使用case when 批量更新数据

替换 {} 括住的信息。

若疆~赤云 751

Kubernetes 集群升级与备份恢复:从 1.24 到 1.30 的平滑升级实战

详解 Kubernetes 集群版本升级流程(kubeadm 方式),包括前置检查、组件逐个升级、节点排水与恢复,同时演示 etcd 备份与集群灾难恢复方案。

kaixin110a的博客 35

【WRF数据准备】土地利用数据-MODIS MCD12Q1数据下载及制备

【WRF数据准备】MODIS静态地理数据下载及制备

WW、forever的博客 3412

MyBatis之Mapper详解及常用技巧

标签:mybatis mapper select 先看一个简单的案例: SELECT * FROM PERSON WHERE ID = #{id} 这个语句被称作 selectPerson,接受一个 int(或 Integer)类型的参数,并返回一个 HashMap 类型的对象,其中的键是列名,值便是结果行中的对应值。注意参数#{id},类似与JDBC的语句: String selectPerson = “SELECT * FROM PERSON WHERE ID=?”; PreparedState

weixin_45336946的博客 1295

【人工智能】 WebDev Arena:实时AI Web开发竞赛的技术探索与价值

《AI编程竞赛推动Web开发技术创新》摘要:WebDev Arena作为聚焦Web开发领域的实时AI编程竞赛,通过标准化竞技环境检验AI模型在代码生成、问题解决等方面的能力。竞赛覆盖前端、后端等全流程开发环节,采用实时评分机制,推动AI对复杂Web需求的理解和多元技术栈适配。该赛事不仅促进AI编程技术创新,更为Web开发行业与AI技术融合搭建桥梁,有望提升开发效率、降低技术门槛。未来将拓展Web3.0等前沿技术主题,持续推动行业智能化发展。(150字)

奶爸的编程之路,也就一周冷个三天 254

mybatis 使用经验小结

http://www.cnblogs.com/yjmyzz/p/4261024.html

nimeijian的专栏 429

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Mybatis_plus学习(二)

Mybatis_plus学习(二)

严文文 Chris 177

mybatis动态代理的使用

package com.jiayifan.mapper; import static org.junit.jupiter.api.Assertions.*; import java.io.InputStream; import java.util.Date; import java.util.List; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apach

liulang68的博客 210

mybatis入门

0、系统环境 JDK版本:1.8 IDE:InterliJ IDEA 2017.2.5 Maven版本:3.5 MyBatis版本:3.X 数据库:MySQL 5.5 mybatis 1.1 mybatis本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis。2013年11月...

qq_43330631的博客 146

Mybatis小技巧之批量删除、模糊查询

mybatis 模糊查询 批量删除

qq_42338744的博客 707

Spring Boot + MyBatis + Vue:全栈开发的高级技巧与优化策略

在现代软件开发中,构建高效、可维护的全栈应用是每个开发团队的目标。Spring Boot、MyBatis 和 Vue.js 的结合,为全栈开发提供了一个强大而灵活的技术栈。本文将通过一个具体的实战项目,详细介绍如何使用 Spring Boot + MyBatis + Vue 构建一个完整的全栈应用,并分享一些高级技巧和优化策略,帮助你提升项目的性能和可维护性。

weixin_66924704的博客 748

MyBatis-Plus

MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。• 无侵入:只做增强不做改变,不会对现有工程产生影响• 强大的 CRUD 操作:内置通用 Mapper,少量配置即可实现单表CRUD 操作• 支持 Lambda:编写查询条件无需担心字段写错• 支持主键自动生成• 内置分页插件• ……• 单独使用 MyBatis-Plus• 基于 Spring 使用 MyBatis-Plus。

Kim_Wu233的博客 234

MYBATIS动力

有的人把它叫做: pojo(普通java类)有的叫做: bean(豆子)有的叫做: domain(领域模型)

m0_74348480的博客 222

mybatis拿不到数据库字段username的值

使用别名解决,加上as 实体类属性名。

A_87868584888的博客 274

Mybatis中用NOW()表示当前时间

Mybatis中用NOW()表示当前时间

m0_67402125的博客 2686

mybatis多个参数的情况下foreach怎么遍历List

记录一下mybatis在多个参数的情况下,其中有一个list怎么遍历。

weixin_41491295的博客 235

Mybatis批量新增数据

待写

darknightbatman的博客 121

MyBatis官网学习

MyBatis官网学习  

tcrct 138

如何使用mybatis-generator生成的Example方法动态扩展

如何使用mybatis-generator生成的Example方法动态扩展

qq_31217363的博客 510
上一篇: 新建aop日志--自定义注解
下一篇: Elasticsearch零基础实战(Elasticsearch、logstash、kibana安装)
梦魇梦狸º
博客等级 码龄8年 5319粉丝 92原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值