当前位置: 首页 > 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.dtcms.com/a/314605.html

相关文章:

  • 网安学习NO.21
  • 飞算JavaAI需求转SpringBoot项目沉浸式体验
  • 探访WAIC2025:当AI成为双刃剑,合合信息如何破解真假难题
  • 北京JAVA基础面试30天打卡01
  • SpringMvc跨域配置方法详解
  • Linux网络编程【基于UDP网络通信的群聊服务】
  • 通用代码自用
  • 李沐写作笔记
  • C语言结构体、位段、枚举、联合体
  • Codeforces Round 1004 (Div. 2)
  • win10 系统,一键保存截图, shift + print_screen
  • Ubuntu 下 MySQL 运维自动化部署教程(在线简易版)
  • 0.08B参数以小博大:用小模型生成媲美GPT-4o的古典诗词
  • TCP 四次挥手详解
  • springboot博客实战笔记01
  • 常见的Prompt设计误区
  • Centos Docker 安装手册(可用)
  • Web开发系列-第15章 项目部署-Docker
  • windows小组件能清理吗
  • 银河麒麟V10一键安装DM8的脚本及高阶运维SQL分享
  • 微型导轨:3D打印设备精度平稳的关键应用
  • 【Spring AI快速上手 (二)】Advisor实现对话上下文管理
  • 零基础掌握 Scrapy 和 Scrapy-Redis:爬虫分布式部署深度解析
  • C++少儿编程(二十一)—软件执行流程
  • 【微实验】MATLAB频谱 三维可视化
  • 量化大型语言模型的评估
  • Flutter开发 MaterrialApp基本属性介绍
  • CSDN文章创作用法
  • sqli-labs:Less-26a关卡详细解析
  • sqli-labs:Less-27a关卡详细解析