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

邢台做网站推广价格青岛seo结算

邢台做网站推广价格,青岛seo结算,商标注册查询系统官网,杭州微网站建设公司文章目录 一、介绍二、语法三、常见示例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.yidumall.com/news/97134.html

相关文章:

  • 推荐广州微信网站建设常州seo博客
  • 2元义乌小商品批发网上海网站seo招聘
  • 在汕头的网络公司有哪些新泰网站seo
  • 住房建设部网站今天的新闻 联播最新消息
  • 做网站排名软件北京seo报价
  • 电脑可以做网站主机么互联网广告公司
  • 深圳最好的营销网站建设公司网站怎么推广出去
  • 淘宝装修做代码的网站seo学徒招聘
  • 动态网站开发项目实训报告福清市百度seo
  • php做的网站安全吗小熊猫seo博客
  • 上海给政府机关做网站开发 万今日最新国内新闻重大事件
  • 江苏政府网站建设对比评估怎样做好竞价推广
  • php心水主论坛网站制作网页设计百度百科创建
  • 上海搭建商seo什么意思中文意思
  • 网站建设公司做销售前景好不好新闻头条免费下载安装
  • 免费网站建设开发产品推广
  • 佛山网站建设报价南宁推广公司
  • 180天做180个网站电商网站建设定制
  • 网站制作公司dedecms十大成功营销策划案例
  • 素材中国免费素材网官网宁波seo推广优化怎么做
  • 吉林做网站哪家好网站权重一般有几个等级
  • wordpress 网店模板制作知名seo公司
  • 天津网站建设座机号网站制作免费
  • cnnic可信网站必须做吗?做网络营销推广
  • 上海住房和城乡建设部网站关键词优化系统
  • 东台网站建设专业搜索引擎优化电话
  • 网站建设合同的注意点长沙百度快速排名
  • 哈尔滨最专业的网站建设如何优化网页
  • 网站制作的要求常用的搜索引擎有哪些?
  • wordpress全屏滚动网站免费换友情链接