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

Mybatis(四)特殊SQL的查询:模糊查询、批量删除、动态设置表明、添加功能获取自增的主键

实体类:

数据库:

1、模糊查询

方案一:

不适用#{ },’%?%‘ 问号是属于字符串的一部分 不会被解析成占位符,会被当作是我们字符串的一部分来解析,所以我们执行的语句中找不到占位符,但是我们却为占位符进行了赋值,所以说就会报错。

我们使用${ } ,将#{}替换成${ }

这个不适用:
// select * from t_user where username like '%#{username}%'select * from t_user where username like '%${username}%'

方案二:

使用字符串拼接的方法

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

方案三:

最常用的方式

select * from t_user where username like "%"#{username}"%"

2、批量删除

#{ } 在sql语句中被解析之后本身就会加上一个单引号 ' '

表中的 字符串 日期 字段名 都可以加单引号

不可以使用#{} 需要使用${ }

/**
* 批量删除
*/int deleteMore(@Param("ids") String ids);<delete id="deleteMore">delete from t_user where id in(${ids})</delete>

3、动态设置表明

使用${ }

#{ } 还是不使适用,会产生 ' '   ,动态设置表名的时候不可以带  '  ' 

List<User> getUserByTableName(@Param("tableName") String tableName);<select id="getUserByTableName" resultType="User">select * from #{tableName}</select>

4、添加功能获取自增的主键

void insertUser(User user);<insert id="insertUser" useGeneratedKeys="true" keyProperty="id">insert into t_user values(null,#{username},#{password},#{age},#{sex},#{email})
</insert><!--    使用自动递增的主键  获取的主键不能通过返回值进行获取-->
<!--    当我们执行完添加操作之后,user中的id属性就有值了-->
<!--    useGeneratedKeys:设置当前标签中的sql使用了自增的主键keyProperty: 将自增的主键的值赋值给传书到映射文件中参数的某个属性-->
//测试代码   @Testpublic void testGetUserByLike1(){SqlSession sqlSession = SqlSessionUtils.getSqlSession();SQLMapper mapper = sqlSession.getMapper(SQLMapper.class);User user = new User(null,"asdff","456789",14,"男","asdf.com");mapper.insertUser(user);}

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

相关文章:

  • JS原型与原型链
  • Python编程学习第一篇——Python零基础快速入门(六)(4)异常处理
  • GraphHopper-map-navi_路径规划、导航(web前端页面版)
  • 2-46 基于matlab的声音信号的短时能量、短时过零率、端点检测
  • 力扣630.课程表 II
  • 数字IC后端流程简述
  • 数学建模--整数规划和非线性规划
  • Linux-查看dd命令进度
  • 高效微调 100 多种大语言模型:先计算法,急速推理!
  • opencv grabCut前景后景分割去除背景
  • qt--电子相册
  • 【MSP430】MSP430F5529几个定时器
  • 苍穹外卖(一)之环境搭建篇
  • 【限免】16PAM、16PSK、16QAM、16CQAM星座图及误码率【附MATLAB代码】
  • 09-软件易用性
  • FPGA开发——独立仿真和联合仿真
  • 基于STM32瑞士军刀--【FreeRTOS开发】学习笔记(二)|| 堆 / 栈
  • ABAP+从SAP发出去的PDF文件在第三方系统出现乱码
  • 基于springsecurity的会话并发处理功能(附代码)
  • Redis底层数据结构的实现
  • 制作excel模板,用于管理后台批量导入船舶数据
  • 领略诗词之妙,发觉生活之美。
  • 基于FFmpeg和SDL的音视频解码播放的实现过程与相关细节
  • SSIS_SQLITE
  • Redis 7.x 系列【27】集群原理之通信机制
  • 【五】MySql8基于m2芯片arm架构Ubuntu24虚拟机安装
  • 【Hot100】LeetCode—279. 完全平方数
  • 腾讯云开发者《中国数据库前世今生》有奖创作季
  • redis:清除缓存的最简单命令示例
  • 基于深度学习算法,支持再学习功能,不断提升系统精准度的智慧地产开源了。