当前位置: 首页 > 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.hkea.cn/news/557554/

相关文章:

  • 网站的整体结构百度云网盘资源搜索引擎入口
  • 咸阳网站建设哪家专业杭州优化公司在线留言
  • 地板网站建设门户网站
  • 新增备案网站负责人人工智能培训心得体会
  • 帮境外赌场做网站是否有风险百度企业号
  • 网站换了服务器百度seo排名优化公司哪家好
  • 海南网站建设制作网络营销效果评估
  • 飞阳建设网站上海广告公司
  • 营销网站导航栏常见网站搜索排名靠前
  • 深圳市政府网站官网百度地图疫情实时动态
  • 上海建设工程咨询网 首页深圳优化排名公司
  • 杭州哪个网站建设最好做网站的网络公司
  • 制作一个网站步骤东莞网络营销销售
  • 专业的营销网站建设公司百度联盟注册
  • 机械类网站用什么做背景指数运算法则
  • 微信如何绑定网站加速游戏流畅的软件
  • 茂名整站优化百度问答首页
  • 手机网站搭建网络宣传方式
  • 2003网站建设网站seo哪家公司好
  • 成都学校网站制作2022年国际十大新闻
  • 工厂外贸网站建设台州网络推广
  • 酒店网站建设方案策划百度seo怎么做网站内容优化
  • 网站更改公司需要重新备案吗搜索网页内容
  • 现在做网站还用dw做模板了吗成人电脑速成培训班
  • 做app要不要建网站刚开的店铺怎么做推广
  • 做生存分析的网站有哪些专业的网站优化公司
  • 网站双倍浮动百度联盟app
  • 北京网站设计确保代码符合w3c广州网络营销的推广
  • 做网站实名认证有什么用百度移动端模拟点击排名
  • 知更鸟wordpress 怎样沈阳百度seo关键词优化排名