#{}
#{}和$ {}都可以获得map中的值或者pojo对象属性的值。Mybatis在处理$ {}时,就是把${}直接替换成变量的值。而Mybatis在处理#{}时,会对sql语句进行预处理,将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值。
map
Map是一个接口,即Interface Map<K,V>,其中K-key类型和V-value的类型
它的每个元素包含一个key对象和一个value对象,且在这两个对象之间存在一种映射的对应关系,所有从Map集合中访问元素时,只有指定了key就可以找到对应的value,因此key必须是唯一的且不能重复,当key相同时,后面的value值会覆盖之前的value值。
在多值查询的时候,通常要把方法返回类型设置为Map<String,Object>类型,Mybatis为我们提供了另一种解决方式,通过K-V的形式将查询结果保存在Map中。
若实体类属性或者数据库中字段较多可以考虑使用map键值对的形式插入。
Map<String,Object> map =new HashMap<String,Object>();//创建Map对象,Object是所有类型的父类 map.put("key",value);//存储key和value
``
IDEA快捷键
ctrl-折叠,ctrl+展开
模糊查询
<select id="selectLikeOne" resultType="com.lu.entity.Student">
select * from student where name like #{name}
</select>