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

邢台做网站推广价格发帖平台

邢台做网站推广价格,发帖平台,视频网站做电商,网络设置文章目录 一、介绍二、语法三、常见示例3.1、字符串拼接3.2、动态条件处理(三元表达式)3.3、避免重复计算3.4、bind与分页查询3.5、foreach中使用bind 四、错误示例4.1、where后面跟着bind 五、总结5.1、注意事项 一、介绍 在 MyBatis 中,bind 标签允许在 OGNL 表达…

文章目录

  • 一、介绍
  • 二、语法
  • 三、常见示例
    • 3.1、字符串拼接
    • 3.2、动态条件处理(三元表达式)
    • 3.3、避免重复计算
    • 3.4、bind与分页查询
    • 3.5、foreach中使用bind
  • 四、错误示例
    • 4.1、where后面跟着bind
  • 五、总结
    • 5.1、注意事项

一、介绍

在 MyBatis 中,bind 标签允许在 OGNL 表达式上下文中创建一个变量并将其绑定到当前上下文,常用于动态 SQL 中简化复杂表达式或重复计算。

二、语法

<bind name="变量名" value="OGNL表达式"/>
  • name:变量名称,后续可直接引用。
  • value:OGNL 表达式,可以是字符串拼接、计算等操作。

三、常见示例

3.1、字符串拼接

在模糊查询中,避免直接在 SQL 中拼接 %,提升可读性:

<select id="searchUsers" resultType="User"><bind name="pattern" value="'%' + username + '%'"/>SELECT * FROM users WHERE username LIKE #{pattern}
</select>

3.2、动态条件处理(三元表达式)

结合条件判断,简化复杂逻辑:

<select id="getUsers" resultType="User"><bind name="filterName" value="name != null ? name : '%'"/>SELECT * FROM usersWHERE name LIKE #{filterName}
</select>

3.3、避免重复计算

在多次使用同一表达式时,通过 bind 复用:

<select id="calculate" resultType="double"><bind name="total" value="price * quantity"/><bind name="discounted" value="total * (1 - discount)"/>SELECT #{discounted} AS final_price
</select>

3.4、bind与分页查询

bind经常与分页查询limit一起使用,用来计算limit中的起始条数与分页数。

<select id="pageListUser" resultType="com.demo.entity.User"parameterType="java.util.List">select * from user where name = #{name}<if test="pageNo != null and pageSize != null"><bind name="pageNo" value="(pageNo-1)*pageSize"/>limit #{pageNo},#{pageSize}</if>
</select>
  • pageNo:页码、第几页
  • pageSize: 每页显示条数

3.5、foreach中使用bind

在 MyBatis 的 foreach 循环中,应避免使用 bind 来创建每个迭代的临时变量,因为 bind 的作用域是当前上下文,在循环中会被覆盖。替代方案是在 Java 代码中预处理数据,或者直接在表达式中使用循环项和索引。

若实在需要在foreach中使用bind,可以参考我的另一篇博文《mybatis foreach里用bind、foreach中使用bind的坑、foreach中动态生成表名》

四、错误示例

4.1、where后面跟着bind

网上看到有些博文写过这样的示例,bind跟在where条件后面,但这是一种错误的写法。bind 变量仅在当前语句块(如 <select><update>)内有效。

<select id="getUsersByNameAndAge" resultType="User">SELECT * FROM usersWHERE name = #{name} AND age >= <bind name="minAge" value="${minAge}" />
</select>

<bind> 必须放在 SQL 语句的最前面,不能跟在 WHERE 条件后面。

五、总结

5.1、注意事项

  • bind 变量仅在当前语句块(如 <select><update>)内有效。
  • OGNL 表达式支持 Java 语法,如三元运算符、方法调用等。
  • 优先使用 bind 而非直接拼接 SQL,以提高安全性和可维护性。

通过灵活使用 bind,可以显著提升 MyBatis 动态 SQL 的可读性和简洁性。



创作不易,欢迎打赏,你的鼓励将是我创作的最大动力。

在这里插入图片描述

http://www.hrbkazy.com/news/39513.html

相关文章:

  • 织梦怎么修改网站模板网络营销推广的要点
  • 网站导航栏条源码郑州seo顾问
  • 商城型网站建设代理加盟网站域名购买
  • 网站服务器和空间大小网络推广优化培训
  • 找做网站的公司离我最近的广告公司
  • b2b外贸网站如何做推广安卓嗅探app视频真实地址
  • html5网站开发需要框架吗百度竞价可以自学吗
  • 有哪些专门做校企合作的网站南京做网站的公司
  • 邯郸做网站推广的地方平台推广广告宣传词
  • 网站开发与管理期末考试活动推广文案
  • 昌平网站建设浩森宇特商丘网站seo
  • 上海频道做网站怎么样扬州网站seo
  • 织梦模板网站好优化吗网站网页设计
  • 网站开发公司东莞黑马培训机构
  • aspcms网站栏目调用网站在线推广
  • 网站怎么做子分类网络推广的渠道
  • 网站怎样做链接百度上打广告怎么收费
  • 网站降权怎么做网站优化公司哪家好
  • 做门户网站 公司营业范围是啥南京seo外包
  • 网站建设公司.刷赞业务推广网站
  • 成都专业网站制作百度seo优化推广
  • wordpress做视频播放网站百度网盘资源共享
  • 做自媒体那几个网站好点seo网站关键词优化机构
  • wordpress加代码广告潍坊百度快速排名优化
  • wep购物网站开发模板临沂做网站建设公司
  • w78企业网站后台怎么做互联网营销师培训课程免费
  • 江山有做网站开发吗快速优化排名公司推荐
  • 点卡网站怎么做seo的主要工作是什么
  • 临沂个人做网站小程序开发公司排行榜
  • 什么网站免费制作网络平台怎么创建需要多少钱