更新时间:2021年03月18日11时27分 来源:传智教育
所谓SQL的动态和静态,是指SQL语句在何时被编译和执行,二者都是用在SQL嵌入式编程中的,这里所说的嵌入式是指将SQL语句嵌入在高级语言中,而不是针对于单片机的那种嵌入式编程。
SQL语句的主体结构,在编译时尚无法确定,只有等到程序运行起来,在执行的过程中才能确定,这种SQL叫做动态SQL
静态SQL语句的编译是在应用程序运行前进行的,编译的结果会存储在数据库内部。而程序运行时,数据库将直接执行编译好的SQL语句,降低运行时的开销。
MyBatis中用于实现动态SQL的元素主要有:if、where、foreach。
另外还要注意一点,在SQL中如果某些参数没有确定,如“select from user where age > ? ”这种语句是静态SQL,不是动态SQL,虽然个别参数的值不知道,但整个SQL的结构已经确定,数据库是可以将它编译的,在执行阶段只需将个别参数的值补充进来即可。实际开发中动态sql语句的使用场景非常多,最明显的例子就是多条件查询,其中查询的条件每次并不确定有哪些时。
猜你喜欢: