Mybatis的mapper文件中#和$的区别 以及 resultType和resultMap的区别

时间:2023-03-08 17:06:02

一般#{}用于传递查询的参数,一般用于从dao层传递一个string或者其他的参数过来,mybatis对这个参数会进行加引号的操作,将参数转变为一个字符串。

SELECT * FROM employee WHERE name="jack"

而$则不同,我们一般用于ORDER BY的后面。

SELECT * FROM employee ORDER BY salary

MyBatis的每一个查询映射的返回类型都是ResultMap,只是当我们提供的返回类型属性是resultType的时候(一般是Integer,Long等),MyBatis对自动的给我们把对应的值赋给resultType所指定对象的属性,而当我们提供的返回类型是resultMap的时候(一般是<resutMap><resutMap></resutMap>),将数据库中列数据复制到对象的相应属性上,可以用于复制查询,两者不能同时用。