Mybatis杂记

简介: 使用Mybatis过程中的一些问题

1.关于sql中引用使用$与使用#号的区别:

sql语句方面,使用$是直接替换值操作,而#是进行预处理,下面看个例子。

我们假设实体类Teacher有一个name属性,我们查询name=“张三”老师的信息。

SELECT * FROM  teacher where name = ${name}  等价于   SELECT * FROM  teacher where name =  "张三"

SELECT * FROM  teacher where name = #{name}  等价于   SELECT * FROM  teacher where name =  ?   当执行这条sql的时候,才会赋值name = '张三'.

我们一般使用#来获取引用值,这样避免了sql注入问题,当然在不能jdbc不能使用预处理的情况下我们就得使用$取值了,

比如公司每年的财务报表按照年份命名,我们根据年份来查询标的时候就不能使用#取值了

Select * from ${year}_account  ,这里如果使用#号取值就会报错。

2.生成UUID

select replace(uuid(),'-','');

3.批量更新

主要用到foreach标签,遍历map如下

情况一:多列不同属性

  1.    
  2.         insert ignore into tb_news  
  3.          
  4.            ${key}  
  5.          
  6.         values  
  7.          
  8.            #{params[${key}]}  
  9.          
  10.   >

情况二:同一列不同值更新

update oa_host_resources

           when id= #{key} then  #{idLevelMap[${key}]}

where

   id=#{key}

此种情况参考的是

UPDATE course

   SET name = CASE id

       WHEN 1 THEN 'name1'

       WHEN 2 THEN 'name2'

       WHEN 3 THEN 'name3'

   END,

WHERE id IN (1,2,3)

4.截取字符串并遍历

'${item}'  

目录
相关文章
|
算法 NoSQL Redis
分布式锁—4.Redisson的联锁和红锁
Redisson的MultiLock和RedLock机制为分布式锁提供了强大的支持。MultiLock允许一次性锁定多个资源,确保在更新这些资源时不会被其他线程干扰。它通过将多个锁合并为一个大锁,统一进行加锁和释放操作。RedissonMultiLock的实现通过遍历所有锁并尝试加锁,若在超时时间内无法获取所有锁,则释放已获取的锁并重试。 RedLock算法则基于多个Redis节点的加锁机制,确保在大多数节点上加锁成功即可。RedissonRedLock通过重载MultiLock的failedLocksLi
744 10
|
机器学习/深度学习 存储 人工智能
2025年NVIDIA RTX 4090云服务器租赁价格与选型指南
本文探讨了在主流云服务商尚未提供RTX 4090实例的背景下,如何选择高性能GPU服务器。分析了市场现状、替代方案性能,并推荐阿里云的GN7i(NVIDIA A10)、GN6v(NVIDIA V100)等实例,提供了成本优化策略与选型建议,确保用户在AI训练、图形渲染等场景中实现效率和成本的最佳平衡。
|
Kotlin
Kotlin教程笔记(20) - 枚举与密封类
Kotlin教程笔记(20) - 枚举与密封类
139 3
Kotlin教程笔记(20) - 枚举与密封类
|
机器学习/深度学习 Java 关系型数据库
程序员必知:关于高淇JAVA中SORM总结学习笔记详细个人解释
程序员必知:关于高淇JAVA中SORM总结学习笔记详细个人解释
205 2
|
存储 数据可视化 算法
【数据分析与可视化】Scipy中的优化、数据拟合及稀疏矩阵处理(超详细 附源码)
【数据分析与可视化】Scipy中的优化、数据拟合及稀疏矩阵处理(超详细 附源码)
458 0
|
存储 Kubernetes API
Kubernetes总架构图
一、Kubernetes的总架构图 二、Kubernetes各个组件介绍 (一)kube-master[控制节点] master的工作流程图 Kubecfg将特定的请求,比如创建Pod,发送给Kubernetes Client。
9498 0

热门文章

最新文章