(12)深入Mapper XML 映射文件之三

438人浏览 / 0人评论
sql元素

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}也是一样,然后将它们的值传入预处理语句的参数中。

全部评论

晴天下起了小雨
2017-10-01 18:00
很喜欢,果断关注了
wjmyly7336064
2017-10-01 18:00
相当实用,赞美了
橘大佬
2017-10-01 18:00
就是有些细节再到位点就好了…