首页技术文章正文

如何理解MyBatis中SQL的动态和静态?

更新时间:2021年03月18日 08时58分10秒 来源:黑马程序员

SQL的动态和静态

所谓SQL的动态和静态,是指SQL语句在何时被编译和执行,二者都是用在SQL嵌入式编程中的,这里所说的嵌入式是指将SQL语句嵌入在高级语言中,而不是针对于单片机的那种嵌入式编程。

SQL语句的主体结构,在编译时尚无法确定,只有等到程序运行起来,在执行的过程中才能确定,这种SQL叫做动态SQL

静态SQL语句的编译是在应用程序运行前进行的,编译的结果会存储在数据库内部。而程序运行时,数据库将直接执行编译好的SQL语句,降低运行时的开销。

MyBatis中用于实现动态SQL的元素主要有:if、where、foreach。

另外还要注意一点,在SQL中如果某些参数没有确定,如“select from user where age > ? ”这种语句是静态SQL,不是动态SQL,虽然个别参数的值不知道,但整个SQL的结构已经确定,数据库是可以将它编译的,在执行阶段只需将个别参数的值补充进来即可。实际开发中动态sql语句的使用场景非常多,最明显的例子就是多条件查询,其中查询的条件每次并不确定有哪些时。


猜你喜欢:
MyBatis中动态SQL中的主要元素有哪些?

Mybatis 执行SQL命令的完整流程

Java视频教程:Mybatis由浅入深教程

黑马程序员高级java工程师培训课程



分享到:
在线咨询 我要报名
和我们在线交谈!