MyBatis框架真正强大之处就在于SQL映射语句,mybatis专注于SQL,对开发人员来说可以极大限度地进行SQL调优,以保证性能。方便使用mybatis框架,现在就来谈谈SQL映射文件。
<mapper>标签是根元素节点,只有一个属性namespace(命名空间),作用:
- 用于区分不同的mapper,全局唯一。
- 绑定DAO接口,即面向接口编程。当namespace绑定了某个接口后,可不用写该接口的实现类,mybatis会根据接口的完整限定名查找到对应的mapper配置来执行SQL语句,因此namespace的命名必须跟接口同名。
注意:接口中的方法与映射文件中的SQL语句id应对应。如下代码中的id=“selectUserById”,则DAO接口中就有selectUserById()与之对应。
<select id="selectUserById" resultType="xiaojiang.mybatisdemo.entity.User">
select id,name,sex from user where id = #{id}
</select>
关于#{...}和${...}的符号作用:“#”一般是用做参数传递,而另一个一般是作为占位符。
<resultMap>标签,用来描述数据库结果集和对象的对应关系。
还有<select>,<delete>,<update>,<insert>标签 对应增删改查映射操作。
parameterType属性:表示查询语句传入参数的类型的玩全限定名或别名,支持复杂数据类型。
resultType属性:查询语句返回结果类型的完全限定名或别名。
总结:对于一个参数的情况下,mybatis传入参数类型可以是基本类型,通过#{参数名}即可获取传入的值,若是多参数的情况下,则需要复杂数据类型来支持,包括Javabean实体类和Map类型,通过#{属性名}或#{Map的key}来获取传入的值。
网友评论