2.映射中的参数

1 | <select id="selectPerson" parameterType="int" resultType="hashmap"> |
#{id}
告诉Mybatis从接口方法上获取一个叫做id的参数,而parameterType="int"
则说明这个参数是一个int类型的数据,关于Select元素的属性在官网文档上有具体说明。
- 关于parameterType在官网的说明中提到:这个属性是可选的,因为 MyBatis 可以根据语句中实际传入的参数计算出应该使用的类型处理器(TypeHandler),因此实际上不配置这个属性,#{xxx}参数也可以正常工作
- 如果传入方法的参数是一个实体类,比如“User”,实际上参数也仍然可以继续写作#{id},Mybatis会自动在类里面寻找叫做id的同名字段
- 如果传入方法的参数是一个map,Mybatis会自动在map里调用get(id)来获取对应的值,此时map的数据可能是
map.put("id",2)
多参数方法
如果传入方法的参数是多参数的,如public User findUser(int id,String username)
,则需要在参数前面加入@Param("参数名")
注解,下面是一个示例
1 | //UserDao |
1 | <select id="findUser" resultType="User"> |
如果不加注解的话,在XML中多参数只能用#{argN-1}...#{arg0}
或者#{param1}...#{paramN}
的形式来映射
Comments