中易网

如何MyBatis中使用动态SQL查询与注释

答案:2  悬赏:0  
解决时间 2021-02-14 04:48
如何MyBatis中使用动态SQL查询与注释
最佳答案
首先,楼主需了解何为动态sql,何为静态sql,这是他们的区别:
  静态 SQL:静态 SQL 语句一般用于嵌入式 SQL 应用中,在程序运行前,SQL 语句必须是确定的,例如 SQL 语句中涉及的列名和表名必须是存在的。静态 SQL 语句的编译是在应用程序运行前进行的,编译的结果会存储在数据库内部。而后程序运行时,数据库将直接执行编译好的 SQL 语句,降低运行时的开销。静态SQL在编译时已经确定了引用的表和列。 宿主变量不改变表和列信息。 可以使用主变量改变查询参数值, 但是不能用主变量代替表名或列名。
  动态 SQL:动态 SQL 语句是在应用程序运行时被编译和执行的,不在编译时确定 SQL 的表和列,而是让程序在运行时提供,并将SQL 语句文本传给 DBMS 执行。 静态 SQL 语句在编译时已经生成执行计划。 而动态 SQL 语句,只有在执行时才产生执行计划。动态 SQL 语句首先执行 PREPARE 语句要求 DBMS 分析、确认和优化语句,并为其生成执行计划。例如,使用 DB2 的交互式工具 CLP 访问数据库时,用户输入的 SQL 语句是不确定的,因此 SQL 语句只能被动态地编译。动态 SQL 的应用较多,常见的 CLI 和 JDBC 应用程序都使用动态 SQL。

下面是一个典型的在MyBatis中使用动态SQL:
<update id="update" parameterType="org.format.dynamicproxy.mybatis.bean.User"> UPDATE users <trim prefix="SET" prefixOverrides=","> <if test="name != null and name != ''"> name = #{name} </if> <if test="age != null and age != ''"> , age = #{age} </if> <if test="birthday != null and birthday != ''"> , birthday = #{birthday} </if> </trim> where id = ${id}</update>
全部回答
搜一下:如何MyBatis中使用动态SQL查询与注释
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
作文《森林给沙漠写信》可以怎么写
魔兽世界从银月城怎么到沙塔斯啊?
洛阳博宏工贸有限公司在什么地方啊,我要过去
孩子两岁多,就是不愿意睡觉,听音乐,讲故事
UVA鞋底材料有什么特点
太原沃德学院如何?
河滨街/富法路(路口)地址在什么地方,想过去
中企动力是干嘛的
求precious sosuke资源@惹眼的月光
想和别人合伙创业,但是我只出技术,没有资金,
羽毛球拉线磅数问题
王者荣耀露可娜娜碎片怎么获得
乐之海琴行在什么地方啊,我要过去处理事情
哪些由分子构成,哪些物质由原子构成
我在成都想学习西餐或者西点烘培。请问成都哪
推荐资讯
问道5系小师妹区别,哪个法最牛
我电脑每插一次U盘,设备管理器那边USB驱动就
聚仙楼地址有知道的么?有点事想过去
近50年哪场战争 ,造成了多少伤害
dnf阿修罗带什么称号
怎么在金蝶KiS标准版中新建账套
1996/10/21天秤座的幸运数字?幸运石?幸运颜色
跑步跑了几年,今天突然腿疼不会有什么问题吧
一个很老的动画片,主人公是黄皮肤很抽象的一
冯提莫在哪里直播
西街卫生室怎么去啊,有知道地址的么
心梗什么情况下需要做支架?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?