当前位置: 首页> 科技> 名企 > 宁波代办营业执照注册公司_正能量软件免费观看不用下载_品牌策划是做什么的_磁力岛

宁波代办营业执照注册公司_正能量软件免费观看不用下载_品牌策划是做什么的_磁力岛

时间:2025/8/8 7:29:27来源:https://blog.csdn.net/DreamStar2560/article/details/141743853 浏览次数:0次
宁波代办营业执照注册公司_正能量软件免费观看不用下载_品牌策划是做什么的_磁力岛

目录

  • 单次执行
    • 单次新增
    • 单次更新
    • 单次删除
  • 批量执行
    • 批量新增
    • 批量更新
      • for 循环执行更新
      • for 循环生成多条 sql,一次执行
    • 批量删除
  • 参数传递
    • 预处理方式 (`OGNL表达式 #{}`)
      • 数据类型转换
    • 直接替换 `(EL表达式 ${})`
  • 安全

单次执行

单次新增

<insert id="insert" parameterType="java.util.List">  INSERT INTO USERS (NAME, EMAIL, AGE)  VALUES  (#{item.name}, #{item.email},#{item.age})  
</insert>

单次更新

<update id="update"  parameterType="java.util.List">  UPDATE USER<set>NAME = #{item.name},EMAIL = #{item.email},AGE = #{item.age}</set>where ID = ${item.id}
</update>

单次删除

<delete id="delete" parameterType="java.util.List">  DELETE FROM USERS  WHERE ID = #{id}
</delete>

批量执行

MyBatis 的设计初衷是每个标签对应一个 SQL 语句,也就是不支持单个标签多条 SQL 语句的执行。

批量新增

<insert id="insertBatch" parameterType="java.util.List">  INSERT INTO USERS (NAME, EMAIL, AGE)  VALUES  <foreach collection="list" item="item" index="index" separator=",">  (#{item.name}, #{item.email},#{item.age})  </foreach>  
</insert>

批量更新

for 循环执行更新

for 循环生成多条 sql,一次执行

如需要在连接 MySQLURL 上加 &allowMultiQueries=true

<update id="updateBatch"  parameterType="java.util.List">  <foreach collection="list" item="item" index="index" separator=";">UPDATE USER<set>NAME = #{item.name},EMAIL = #{item.email},AGE = #{item.age}</set>where ID = ${item.id}</foreach>      
</update>

批量删除

<delete id="deleteBatch" parameterType="java.util.List">  DELETE FROM USERS  WHERE ID IN  <foreach collection="list" item="item" open="(" separator="," close=")">  #{item}  </foreach>  
</delete>

参数传递

  • XML 中逻辑判断 (<if> 等标签),不同的 Java 类型不同的判断规则
  • 入参类型应提前处理为与数据库中相匹配的类型,SQL 中处理类型问题不仅麻烦且可能存在版本问题

预处理方式 (OGNL表达式 #{})

  • 支持防 SQL 注入
  • 传入的参数自动数据类型转换
  • 有预处理,不能用于传递表名、列名 等

数据类型转换

Java 类型XML 代码示例
Char<if test="req.parameter != null and req.parameter == 'A'">
Int<if test="req.parameter != null and req.parameter == 18">
Boolean<if test="req.parameter != null and req.parameter'">
String<if test="req.parameter != null and req.parameter != ''">
List<if test="req.parameter != null and req.parameter.size() > 0">
Array<if test="req.parameter != null and req.parameter.length > 0">
Map<if test="req.parameter != null and !req.parameter.isEmpty()">
Date<if test="req.parameter != null">
LocalDateTime<if test="req.parameter != null">

直接替换 (EL表达式 ${})

  • 有 SQL 注入风险
  • 传入的参数不支持自动数据类型转换
  • 可用于动态构建 SQL,用于传递表名、列名、排序字段名 等

安全

关键字:宁波代办营业执照注册公司_正能量软件免费观看不用下载_品牌策划是做什么的_磁力岛

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: