mybatis之特殊SQL的执行

news2025/2/27 4:35:42

1.1模糊查询

尝试:

//模糊查询用户
List<User> getUserByLike(@Param("mohu") String mohu);

<select id="getUserByLike" resultType="user">
    select * from user where username like '%#{mohu}%'
</select>

@Test
public void testGetUserByLike(){
    List<User> users = mapper.getUserByLike("q");
    users.forEach(System.out::println);
}

结果:

Could not set parameters for mapping: ParameterMapping{property='mohu', mode=IN, javaType=class java.lang.Object, jdbcType=null, numericScale=null, resultMapId='null', jdbcTypeName='null', expression='null'}.

解决:

法1:看到上方报错结果没有单引号,所以采用$模式

select * from user where username like '%${mohu}%'

法2:concat是MySQL自己的语句,未来可移植性差

select * from user where username like concat ('%',#{mohu},'%')

法3:自己拼接(更常用)

select * from user where username like "%"#{mohu}"%"

 1.2批量删除

尝试:

/**
 * 批量删除
 * @param ids
 */
void delectMoreUser(@Param("ids") String ids);

<delete id="delectMoreUser">
    delete from user where id in(#{ids})
</delete>

@Test
public void testDelectMoreUser(){
    mapper.delectMoreUser("7,8");
}

结果:

解决:(使用$)

 delete from user where id in(${ids})

1.3动态设置表名

(1)写死动态表名进行测试

/**
 * 动态设置表名,查询表信息
 * @param tableName
 * @return
 */
List<User> getUserList(@Param("tableName") String tableName);

<select id="getUserList" resultType="user">
    select * from #{tableName}
</select>

@Test
public void testGetUserList(){
    List<User> users =  mapper.getUserList("user");
    users.forEach(System.out::println);
}

结果:

解决:

select * from ${tableName}

(2)改造成实现动态的写法

List<Object> getList(@Param("tableName") String tableName);

<select id="getList" resultType="object">
    select * from ${tableName}
</select>

@Test
public void testGetList(){
    List<Object> objects =  mapper.getList("user");
    objects.forEach(System.out::println);
}

结果:只显示了第一列id的内容

解决如下:

List<Map<String,Object>> getList(@Param("tableName") String tableName);

@Test
    public void testGetList(){
        List<Map<String,Object>> users = mapper.getList("user");
        users.forEach(System.out::println);
    }

1.4添加功能获取自增的主键

useGeneratedKeys:表示当前添加功能实用自增的主键

keyProperty:将添加的数据的自增主键作为试题类类型的属性赋值

/**
 * 添加用户信息并获取自增的主键
 * @param user
 */
void insertUser(User user);

<!--
    useGeneratedKeys:表示当前添加功能实用自增的主键
    keyProperty:将添加的数据的自增主键作为试题类类型的属性赋值
-->
<insert id="insertUser" useGeneratedKeys="true" keyProperty="id">
    insert into user values(null,#{username},#{password},#{age},#{sex},#{email})
</insert>

public void testInsertUser(){
    User user = new User(null,"kk","1248",46,"男","78@qq.com");
    mapper.insertUser(user);
    //插入完成后需要知道id值
    System.out.println(user);
}

最终数据添加成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1823636.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

本地密码记录工具-KeePass

文章目录 软件界面软件下载KeePass配置KeePass修改中文创建数据库配置数据库锁定配置账户密码为不同应用配置账号密码插件安装及使用 数据库同步 在此之前&#xff0c;没有使用过类似的账户密码记录工具&#xff0c;甚至完全没有接触过&#xff0c;由于Edge浏览器自带保存密码并…

视频监控汇聚平台:系统日志介绍及在运维中的实际应用

目录 一、系统日志的重要性 &#xff08;一&#xff09;安全保障 &#xff08;二&#xff09;故障排查 &#xff08;三&#xff09;运营管理 &#xff08;四&#xff09;事件回溯与分析 二、产品说明 &#xff08;一&#xff09;产品介绍 &#xff08;二&#xff09;接…

把纸质文件扫描成word电子版的3种方法!

在数字化日益盛行的今天&#xff0c;纸质文件转化为电子版的需求愈发强烈。不论是出于环保的考虑&#xff0c;还是为了提高工作效率&#xff0c;将纸质文件扫描成Word电子版都是一项必备技能。那么&#xff0c;如何将纸质文件轻松转化为Word电子版呢&#xff1f;本文将为您揭秘…

【Windows10】查看WIFI密码

操作步骤 电脑上查看已连接Wi-Fi的密码的步骤如下: 连接需要查看密码的Wi-Fi。右键点击任务栏上的 [网络] 图标&#xff0c;选择 [开启"网络和Internet"设置]。在 高级网络设置 项目中&#xff0c;点选 [网络和共享中心]。开启网络和共享中心的窗口后&#xff0c;点…

One能聊天接入百度千帆大模型 —— 文心一言

One能聊天介绍&#xff1a;基于ChatGPT实现的微信小程序&#xff0c;适配H5和WEB端。包含前后端&#xff0c;支持打字效果输出流式输出&#xff0c;支持AI聊天次数限制&#xff0c;支持分享增加次数等功能One能聊天开源地址&#xff1a;https://github.com/oldinaction/ChatGPT…

【算法专题--链表】相交链表--高频面试题(图文详解,小白一看就会!!)

目录 一、前言 二、题目描述 三、解题方法 ⭐双指针 --- 数学思维 ⭐双指针 --- 按链表长度计算 &#x1f95d; 判断相交 &#x1f347; 求出交点 &#x1f34d;实现步骤 四、总结与提炼 五、共勉 一、前言 相交链表这道题&#xff0c;可以说是--链表专题--&#xf…

docker-compose部署FastDFS分布式文件系统

文章目录 一、技术选型二、fastDFS组成部分三、docker-compose文件四、客户端nginx配置五、存储器spring Boot集成参考文献 一、技术选型 还有一个更好的google FS&#xff08;但是他不开源&#xff0c;我也没找到社区版一类的可以不要钱使用的&#xff09;。 最后考虑到我们存…

通信设备的网卡

一、网卡的作用 将计算机或者路由器连接到传输介质上的接口&#xff0c;传输介质可以是有线也可以是无线的。 &#xff08;1&#xff09;计算机的网卡 现在的计算机大多有两个网卡&#xff0c;一个是有线网卡一个无线网卡&#xff0c;比如以我们的台式电脑为例 台式电脑千兆网…

推进现代化的财务计划,打造可持续的企业发展

现阶段一个重大问题是&#xff0c;大多数企业无法保持决策与规划水平的一致性&#xff0c;财务团队的现状难以支持复杂环境下的新型决策&#xff0c;从而造成了劳动力和资源的错误匹配。由于财务功能的过度扩展&#xff0c;企业难以持续发展。财务团队不得不为了企业的存亡不断…

【代码】数据类型之复合数据类型

Hello&#xff01;大家好&#xff0c;我是学霸小羊&#xff0c;今天讲讲数据类型之复合数据类型。 上一个博客讲了讲基本数据类型&#xff0c;今天讲讲复合数据类型&#xff0c;没学过基本数据类型的建议先去学一学哈。 【代码】数据类型之基本数据类型https://blog.csdn.net…

AI论文速读 | 2024[SIGIR]基于大语言模型的下一个兴趣点推荐

论文标题&#xff1a;Large Language Models for Next Point-of-Interest Recommendation 作者&#xff1a;Peibo Li ; Maarten de Rijke ; Hao Xue &#xff08;薛昊&#xff09;; Shuang Ao ; Yang Song ; Flora D. Salim 机构&#xff1a;新南威尔士大学(UNSW)&#xff0c…

MAC M1系统编译ffmpeg-gl-transition

MAC M1系统编译ffmpeg-gl-transition 1. 本人系统2. 编译&#x1f4b0;系统准备2.1. 下载【ffmpeg-gl-transition】到用户家目录下&#xff0c;并解压2.2 下载ffmpeg源码2.3. brew安装GLEW glfw32.4 复制vf_gltransition.c文件到ffmpeg2.5 修改ffmpeg源码文件2.6 设置库目录和…

这4款国产软件,因为太良心好用,甚至被误认为是外国人开发的

说起国产软件&#xff0c;大家总是容易给它们打上“流氓、要钱、广告满天飞”的标签&#xff0c;其实&#xff0c;有些小众的软件超级好用&#xff0c;功能强大又不耍流氓&#xff0c;真心不该被一棍子打死。 1、sunlight studio Sunlight Studio是一个开源、免费、无广告的硬…

【成品设计】基于物联网的停车管理系统设计与实现

《基于物联网的停车管理系统设计与实现》 整体功能&#xff1a; 本次课题中&#xff0c;主要设计的是一款基于物联网技术的校园停车的管理系统&#xff0c;该系统能更方便得让管理员对停车场进行管理&#xff0c;同时也能够满足和方便用户使用。针对此种现象&#xff0c;就需…

【面试干货】抽象类和接口的区别

【面试干货】抽象类和接口的区别 1、抽象类1.1、什么是抽象类&#xff1f;1.2、示例代码 2、接口2.1、什么是接口&#xff1f;2.2、示例代码 3、比较和总结3.1、使用场景3.2、关键区别3.3、代码示例比较 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&am…

大规模装箱问题:蜣螂优化算法DBO求解二维装箱问题(MATLAB代码)

一、问题描述 装载率:所有选择的箱子的总面积与夹板面积之比 假设一共有300个箱子&#xff0c;如何设计算法&#xff0c;使得选择部分箱子放入80*80的甲板上&#xff0c;让甲板的装载率越大&#xff0c;要求箱子间不得重叠。 二、蜣螂优化算法求解二维装箱问题 蜣螂优化算法…

八 、VS的调试技巧

--- 24.4.20 目录 1、什么是Bug&#xff1f; 2、什么是调试&#xff08;Debug&#xff09;&#xff1f; 3、Debug和Release 4、VS基础调试快捷键 4.1、环境准备 4.2、调试快捷键 5、监视和内存观察 5.1、监视窗口 5.2、内存窗口 6、调试举例1 7、调试举例2 8、调试…

AI宣传文案软件有哪些?5款AI软件推荐

AI宣传文案软件有哪些&#xff1f;AI宣传文案软件在现代营销和创意产业中扮演着越来越重要的角色&#xff0c;它们凭借先进的自然语言处理、机器学习和深度学习技术&#xff0c;不仅解放了创作者的双手&#xff0c;还大大提升了文案的生成效率和质量。这些软件能够精准捕捉用户…

Polarion重启时自动删除.config

Polarion二次开发的插件中&#xff0c;对Servlet新增、修改或删除时&#xff0c;发布到应用需要删除.config文件才能使修改生效&#xff0c;每次需要手动执行&#xff0c;不如加到restart启动脚本中。只需修改start函数即可。 代码如下&#xff1a; vi /opt/polarion/bin/pola…

(科学:某天是星期几)泽勒一致性是由克里斯汀·泽勒开发的用于计算某天是星期几的算法。

(科学:某天是星期几)泽勒一致性是由克里斯汀泽勒开发的用于计算某天是星期几的算法。这个公式是: 其中: h是一个星期中的某一天(0 为星期六;1 为星期天;2 为星期一;3 为星期二;4 为 星期三;5 为星期四;6为星期五)。 q 是某月的第几天。 m 是月份(3 为三月&#xff0c;4 为四月,…