Java框架_Mybatis_day05_映射文件之动态SQL

llama factory NOTE] 除上述链接以外的其他网站均为未经许可的第三方网站,请小心甄别。 阅读详情

目录

九、Mybatis 映射文件之动态SQL

9.1 标签的使用

9.2 标签的使用

9.3 标签的使用

9.4 Mybatis中简化编写的SQL片段 : 标签的使用


九、Mybatis 映射文件之动态SQL

9.1 <if> 标签的使用

<select id="findByCondition" parameterType="user" resultType="user">
    select * from user where 1 = 1
    <if test="username != null">
       and username like #{username}
    </if>
    <if test="sex != null">
       and sex = #{sex}
    </if>
</select>

       <if>标签的test属性中写的是对象的属性名,如果是包装类的对象要使用OGNL表达式的写法,另外要注意where 1=1 的作用。

9.2 <where> 标签的使用

<select id="findByCondition" parameterType="user" resultType="user">
    select * from user
    <where>
        <if test="username != null">
            and username like #{username}
        </if>
        <if test="sex != null">
            and sex = #{sex}
        </if>
    </where>
</select>

注意:<where >可以自动处理第一个and

9.3 <foreach> 标签的使用

这里我们先创建一个QueryVo类来封装一个List集合:

QueryVo.java

package com.cpz.domain;

import java.util.ArrayList;
import java.util.List;

public class QueryVo {
    private User user;
    private List<Integer> ids = new ArrayList<Integer>();

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    public List<Integer> getIds() {
        return ids;
    }

    public void setIds(List<Integer> ids) {
        this.ids = ids;
    }
}

UserDao.xml

<!--4.3 动态SQL标签之<foreach>标签
    collection:使用ognl读取queryVo实体中的集合属性名
    open:sql语句的前缀
    close:sql语句的后缀
    item:遍历集合的每个值的标识
    separator:遍历集合的每个值的分隔符
 -->
<select id="findByCondition2" resultType="user" parameterType="queryVo">
     select * from user
     <where>
        <if test="ids != null and ids.size() > 0">
            <foreach collection="ids" open=" and id in (" close=")" item="id" separator=",">
                #{id}
            </foreach>
        </if>
     </where>
</select>

TestUser.java

public void findByCondition2(){
    List<Integer> ids = new ArrayList<Integer>();
    ids.add(41);
    ids.add(42);
    ids.add(43);
    QueryVo queryVo = new QueryVo();
    queryVo.setIds(ids);
    List<User> list = userDao.findByCondition2(queryVo);
    for (User user : list) {
        System.out.println(user);
    }
}

9.4 Mybatis中简化编写的SQL片段 :<sql> 标签的使用

 

       可以将sql语句中重复的部分提取出来,类似于:select * from user,使用时用include进行引用即可

<sql id="defaultSql">
    select * from user
</sql> 
  
<select id="findByCondition" parameterType="user" resultType="user">
    <include refid="defaultSql"></include>
    <where>
        <if test="username != null">
            and username like #{username}
        </if>
        <if test="sex != null">
            and sex = #{sex}
        </if>
    </where>
</select>

 

开源模型应用落地-qwen模型小试-入门篇(二) 在windows环境下,使用transformer设置模型参数/System Prompt/历史对话 阅读详情

相关推荐

ADRV9009学习资料保存:基于XC7Z100+ADRV9009的双收双发无线电射频板卡

ADRV9009学习资料保存:基于XC7Z100+ADRV9009的双收双发无线电射频板卡 一、板卡概述 基于XC7Z100+ADRV9009的双收双发无线电射频板卡是基于XilinxZYNQFPGA和ADI的无线收发芯片ADRV9009开发的专用功能板卡,用于5G小基站,无线图传,数据收发...

9365

IDEA中mybatis的xml文件SQL字段出现红色波浪线

先打开file->setting的SQL设置,改为自己数据库对应版本,我是oralce 然后再把SQL去掉,包括后面的竖线 基本就可以了,若是还不行,我也没辙了

z2014ypd的博客 4433

视源CVTE嵌入式面试题及参考答案(200+面试题,17万字)

内核模块如何设置? 内核模块是可在运行时动态加载到内核或从内核卸载的代码块。以下是设置内核模块的步骤: 首先,编写内核模块代码。通常使用 C 语言编写,包含必要的头文件,如<linux/init.h>、<linux/module.h>等。在代码中,需要定义模块的初始化函数和清理函数。初始化函数在模块加载时被调用,用于进行模块的初始化工作,如注册设备、分配资源等。清理函数在模块卸载时被调用,用于释放资源、注销设备等。 例如: #include <li

大模型大数据攻城狮的专栏 2204

IDEA中sql、hql等语句 检查报错(红色波浪线)运行通过!合理配置IDEA就能解决

遇到的问题:在各种sql语句的书写过程中,各种的报错(红色波浪线)。1、不识别sql的关键字 from 之类的2、不能识别hql等语句的 PO类3、不能识别 表名 和 列名但是运行并没有问题。所以可以认为是IDEA识别的问题。类似以下报错 ,还原了一下现场。                        原因:        IDEA没有关联相应的模块,造成不能识别问题解决方法:给项目关联相对应得...

qq_40987088的博客 1万+

【Zephyr存储专题】06_存储块设备驱动开发(Nand Flash)

本文介绍了基于Zephyr系统的NAND Flash驱动实现方案,重点阐述了Flash驱动模型的核心架构和关键API设计。

zero的博客 1803

YOLO26创新改进 | 全网独家创新篇、小目标检测专属 | AAAI 2025 | 引入HS-FPN中的HFP和SDP创新点,从频域增强小目标特征,淘汰FPN进行升级,助力YOLO26有效涨点

本文提出HS-FPN特征金字塔网络,通过高频感知模块(HFP)和空间依赖感知模块(SDP)优化YOLO26模型。HFP利用高通滤波器增强小目标的高频特征,SDP捕获相邻像素的空间依赖关系。在AI-TOD等小目标检测数据集上,HS-FPN相比传统FPN显著提升性能。文章详细介绍了HFP和SDP的模块结构、核心代码实现,以及如何在YOLO26中集成这两个模块的配置方法,提供了多个版本的yaml文件配置方案。实验结果表明该方法能有效改善微小目标检测效果。

Ai缝合怪、助力小伙伴高效发论文 207

解决SQL映射文件的警告提示

点击IDEA右边框的 Database ,在展开的界面点击 + 选择 Data Source ,再选择 MySQL。:Idea和数据库没有建立连接,不识别表信息。但是大家一定要记住,它并不影响程序的执行。而此界面就和 navicat 工具一样可以进行数据库的操作。也可以编写SQL语句。在入门案例映射配置文件中存在报红的情况。:在Idea中配置MySQL数据库连接。IDEA中配置MySQL数据库连接。在弹出的界面进行基本信息的填写。点击完成后就能看到如下界面。

o676448的博客 519

ORB-SLAM2算法部署验证、原理代码和各种改进方法汇总

本文主要汇总个人学习使用ORB-SLAM2算法中参考的相关博客和代码汇总,以及在ORB-SLAM2算法基础上各个改进方法的汇总。

重点记录机器人和自动驾驶相关领域的技术,尤其是计算机视觉,视觉SLAM等,不仅有前言文献或必备算法的学习,也会有实际应用的点滴经验 744

SQL server2008的SQL文件代码下有红色波浪线,并提示用户名无效

很简单,只要在每次推出SQL是将文件进行保存就可以,记住这里的保存时选择这种文件就可以

qq_26893841的博客 805

【FDTD】仿真目录(共计 16 篇)

对于完美吸收型边界条件,有时候我们需要设置将仿真结构穿过边界条件区域,具体原因可以阅读下文。在进行 S 参数扫描时,当考虑到材料的色散特性时,我们可以如下文一样选择计算群延迟。仿真,我们需要构建仿真结构与仿真区域,对于它们的尺寸,应该遵循下文进行设定。中存在多种不同的网格类型,具体可以参考下文,这部分内容仅作了解即可。尺寸的设置问题,对于 mesh 的最小尺寸,可以参考下文。的边界条件设置也十分重要,下文中我们对边界条件进行总结。仿真中我们可以设定参与仿真的模式数量,可以参考下文。尺寸的实例,详见下文。

u011699626的博客 504

DBeaver配置本地mysql-connector驱动文件

本文摘要:介绍了数据库驱动管理的基本操作步骤:1)新建驱动管理器,填写MySQL驱动名称、类名和类型;2)添加本地MySQL驱动文件;3)创建数据库连接并测试。适用于MySQL5.x和8.x版本,帮助用户快速配置数据库连接。

litlit023的专栏 1689

如何消除 sql server 2008 查询语句的红色波浪线

近来学习sql的时候,所以就用上了sql server 2008 , 这个版本有个很好的地方就是会智能提示,但是这种智能提示有些时候这是很烦人, 比如说新建一张数据表之后,表名为 Person  当使用结构化查询语句的时候,输入Person 总是会出现红色波浪线(红色波浪线一般是提示有错误,但是这里并没错) 为什么会出现红色波浪线呢? 百度上有个很好的解释: 原因是这样的.你的

罗汉松驻扎的工作基地 5102

RK3588 MPP,RGA,DRM,QT之RGA

RK3588多路视频采用RGA来进行混合成一帧

dreamliweiming的博客 4265

week16_day05_Mybatis01

mybatis介绍 持久层框架(其实所有数据库的框架都是持久层框架) orm框架 → Object relationship mapping 对象关系映射 对象 → javabean 关系 → 关系表 映射 → 一个javabean对象就可以对应一条关系表中的记录 定制Sql:手写sql语句 → 灵活的框架 高级映射:输入映射和输出映射 输入映射:对象 → 关系表 → 为预编译的sql提供参数 输出映射:关系表 → 对象 → 查询结果的封装 动态sql:根据你的参数的不同可以动态的更改执行的sql语句 将s

shihao的博客 424

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【Java项目学习 Day05】Mybatis

MyBatis快速入门

weixin_51617671的博客 397

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

02-框架--Mybatis

Mybatis是持久层框架JDBC缺点:1、操作的复杂度偏高2、数据的查询结果集处理繁琐3、sql硬编码,sql和java代码混合写了Mybatis:1、需要配置文件2、直接把查询结果集的数据映射到实体类属性中3、把所有的sql统一的在文件中进行编写映射文件xxx.xml。

cfy264269的博客 235

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

全网最强JavaWeb笔记 | 万字长文爆肝JavaWeb开发——day09Mybatis

万字长文爆肝黑马程序员2023最新版JavaWeb教程。这套教程打破常规,不再局限于过时的老套JavaWeb技术,而是与时俱进,运用的都是企业中流行的前沿技术。笔者认真跟着这个教程,再一次认真学习一遍JavaWeb教程,温故而知新,对JavaWeb开发也有了更加深入细致的了解。因此笔者做了全网最全面详细的学习笔记,通篇图文并茂,

qq_45832461的博客 987

JAVA WEB DAY14_ MyBatis(day02)

文章目录MyBatis01-根据用户 ID 查询用户-[★★★★]02-配置元素properties基本使用-[★★★★]03-配置元素 typeAliases 基本使用-[★★★★]04-配置元素 mappers 基本使用-[★★★★]使用 Mybatis 实现 CRUD 操作-[★★★★★]05-方式1- Mapper 接口代理的开发方式05-01-根据用户名称模糊查询用户-[★★★★★]05-02-新增用户-[★★★★★]05-03-获取新增记录的主键值-[★★★★★]05-04-根据用户 id 修改

NTT0101的博客 331

Mybatis学习-day18

数据持久化是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中数据模型的统称。例如,文件的存储、数据的读取以及对数据表的增删改查等都是数据持久化操作。MyBatis 支持定制化 SQL、存储过程以及高级映射,可以在实体类和 SQL 语句之间建立映射关系,是一种半自动化的 ORM 实现。其封装性低于 Hibernate,但性能优秀、小巧、简单易学、应用广泛。

W_ZH511的博客 787

05_03_Mybatis||day03_Mybatis第三天||(总结篇,原文很详细)

今日课程内容 一、mybatis中的连接池以及事务控制 1.1 连接池 我们在实际开发中都会使用到连接池。 因为它可以减少我们获取连接所消耗的时间。 1.2 mybatis中的连接池 mybatis连接池提供了3种方式的配置: 配置的位置: 主配置文件SqlMapConfig.xml中的dataSource标签,type属性就是表示采用何种连接池方式。 type属性的取值: POOLED【实际开发】:采用传统的javax.sql.DataSource规范中的连接池,mybatis中有针对

qq_40572023的博客 227

Oracle数据库学习笔记day05_Mybatis框架入门

Mybatis核心配置文件 是一个xml文件,命名无要求,位置无要求,一般成为mybatis.xml,放在src路径下 Mybatis SQL映射文件 在Mybatis中,推荐使用mappers作为包名,我们只需要写一个映射配置文件就可以,DeptMapper.xml,用于定义要执行的sql语句,同时可以设 置参数|返回值结果类型 JAVA测试代码 ...

Erick_Zhang1996的博客 227

MyBatis 源码学习 | Day 1 | 了解 MyBatis

MyBatis 是一个 Java持久层框架,用于简化数据库的操作。它通过 XML 或注解的方式配置和映射原始类型、接口和Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录

nx__xn的博客 1134

框架之mybatis(1)————day39,主要是基本的用法

什么是框架 概述 用自己的话来说:框架就是一些半成品的软件,就是一组组件,供你完成你你要做的项目 框架解决的问题: 技术的整合 框架一般处于低层应用平台,和高层业务逻辑之间的中间层 软件进行分层的重要性 实现了软件中的"高内聚,低耦合"的现象,把问题分开来控制,易于控制,易于延展,易于资源的分配,mvn就是常见的分层开发的思想 分层常见的框架 MyBatis的概述 开发者只需 要关注SQL...

lalaMarry的博客 244

Mybatis学习日记-day1-搭建一个mybatis程序

学习Mybatis之前,肯定要先了解Mybatis是什么。在了解、学习Mybatis中,官方文档是学习Mybatis的重要工具。Mybatis是什么?MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

2301_79789506的博客 798

MyBatis02

MyBatis(第2天)-基本使用 项目结构 mybatis_day02_01_xml用户的增删改查操作 mybatis_day02_02_old传统DAO实现类方式 mybatis_day02_03_anno注解方式 mybatis_day02_04_dynamic_sql动态SQL mybatis框架的学习,不要纠结,不要老想wsm,我们的目标使用mybatis,等我们框架...

Bulid_Evolto的博客 716

day05

Day05-01 知识点回顾 1.SpringBoot工程中的HikariCP应用 1)为什么使用连接池?(用空间换时间,提高数据库访问性能) 2)市面上常用连接池?(c3p0,dbcp,druid,hikaricp) 3)连接池的设计思想?(数据的存储结构,算法,线程安全) 4)Springboot工程中hikaricp入门应用 4.1)创建项目module 4.2)添加依赖(mysql,spring data jdbc) 4.3)连接配置(application.properties) 4.4)单元测

TonyOliver的博客 284
上一篇: Java框架_Mybatis_day04_配置文件/连接池/事务
下一篇: Java框架_Mybatis_day06_多表关联之一对一、一对多查询
chipeize
博客等级 码龄10年 23粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值