当前位置: 首页 > news >正文

mybatis知识

       mybatis起着连接Java程序与数据库之间的关系,我们在进行项目开发的过程中,需要定义实体类对应数据库表中的字段,那么在mybatis语句中,什么情况下要用实体类属性名,什么时候需要用到数据库字段名?

记住一条铁律即可:

MyBatis 里凡是带 #{}${} 或 表达式的地方,一律写 Java 实体类中的属性名;凡是直接写在 SQL 语句里的,一律写数据库表的列名(或别名)。

下面为大家举一些例子:

场景写实体类属性还是表字段?示例
#{} 占位符✅ 实体类属性#{userName}
${} 拼接✅ 实体类属性${orderBy}
<if test=""> 表达式✅ 实体类属性<if test="status != null">
SQL 语句中的列名✅ 表字段或别名SELECT user_name FROM t_user
SQL 语句中的表名✅ 表名FROM t_user
resultType / resultMap 的 column✅ 表字段或别名<result column="user_name" property="userName"/>

举个完整的例子:
表结构
CREATE TABLE clazz (
id          BIGINT PRIMARY KEY,
name        VARCHAR(100),
begin_date  DATE,
end_date    DATE
);

实体类:

public class ClazzQueryParam {
private String name;       // 对应表列 name
private LocalDate begin;   // 对应表列 begin_date
private LocalDate end;     // 对应表列 end_date
}

Mapper文件:

<select id="list" resultType="com.xxx.Clazz">
SELECT
id,
name,
begin_date,   <!-- 表字段 -->
end_date
FROM clazz
<where>
<if test="name != null and name != ''">
AND name LIKE CONCAT('%', #{name}, '%')   <!-- #{name} 用实体属性 -->
</if>
<if test="begin != null and end != null">
AND begin_date BETWEEN #{begin} AND #{end} <!-- #{begin} / #{end} 用实体属性-->
</if>
</where>
</select>

http://www.lryc.cn/news/610484.html

相关文章:

  • 第12届蓝桥杯Scratch_选拔赛_初级组_真题2020年9月20日
  • NetBSD notes
  • 数据结构——单向链表部分操作及valgrind安装
  • 网络资源模板--基于Android Studio 实现的消消乐游戏
  • 机器学习05——正则化与逻辑回归
  • Linux Epool的作用
  • ssh连接VirtualBox中的Ubuntu24.04(win11、putty、NAT 模式)
  • Redis真的是单线程的吗?
  • (五)系统可靠性设计
  • 深度残差网络ResNet结构
  • 网络相关命令
  • 30天入门Python(基础篇)——第31天:标准库学习之re模块
  • 【BUUCTF系列】[SUCTF 2019]EasySQL1
  • Linux开发利器:探秘开源,构建高效——基础开发工具指南(下)【make/Makefile】
  • 单向链表练习
  • TCP 协议的“无消息边界”(No Message Boundaries)特性
  • Java 的 APT(Annotation Processing Tool)机制详解
  • 区块链 和 一致性哈希的结合
  • SpringBoot+SpringMVC常用注解
  • 可视化图解算法57:字符串的排列
  • 简要探讨大型语言模型(LLMs)的发展历史
  • AI编程助手:终结996的新希望
  • [激光原理与应用-134]:光学器件 - 图解透镜原理和元件
  • 实现三通道转单通道(灰度图)的两种加权方法
  • Pixel 4D 3.4.4.0 | 支持丰富的壁纸资源,高清画质,高度的个性化设置能力,智能推荐功能
  • Coze Loop:开源智能体自动化流程编排平台原理与实践
  • 可重复读(Repeatable Read)能解决幻读吗?
  • 【unitrix】 7.1 二进制位加法(bit_add.rs)
  • Minio部署和客户端使用 - 版本 2025-05-24T17-08-30Z
  • 县级融媒体中心备份与恢复策略(精简版3-2-1架构)