sql元素可以被用来定义可重用的SQL代码段,可以包含在其他语句中。它可以被静态地(在加载参数时) 参数化。不同的属性值通过包含的实例发生变化。例如:
${alias}.id,${alias}.username,${alias}.password
这个SQL片段可以被包含在其他语句中,例如:
select
from some_table tl
属性值可以用于包含的refid属性或者包含的字句里面的属性,例如:
${prefix}Table
from
select
fieldl,field2,field3
参数(Parameters )
前面的所有语句中所见到的都是简单参数的例子,实际上参数是MyBatis非常强大的元素。对于简单参数的使用,大多数情况下参数都很少,例如:
select id,username,password
from users
where id = #{id}
上面的这个示例说明了一个非常简单的命名参数映射。参数类型被设置为int,这样这个参数就可以被设置成任何内容。原生的类型或简单数据类型(比如整型和字符串),因为没有相关属性,它会完全用参数值来替代。但是,如果传入一个复杂的对象(比如User),行为就会有一点不同了。例如:
insert into users (id,username,password)
values (#{id},#{username},{password})
如果User 类型的参数对象被传递到了语句中,如#{id}语句则会查找参数对象User的id属性,#{username}和#{password}也是一样,然后将它们的值传入预处理语句的参数中。
关注微信公众号获取更多VSCode编程信息,定时发布干货文章
全部评论