Mybatis中,当实体类中的属性名和表中的字段名不一样 ,怎么办 ?
在mapper映射文件中使用resultMap来自定义映射规则
<select id="getEmployeeById" resultMap="myMap">
select * from employees where id = #{id}
</select>
<!-- 自定义高级映射 -->
<resultMap type="com.atguigu.mybatis.entities.Employee" id="myMap">
<!-- 映射主键 -->
<id column="id" property="id"/>
<!-- 映射其他列 -->
<result column="last_name" property="lastName"/>
<result column="email" property="email"/>
<result column="salary" property="salary"/>
<result column="dept_id" property="deptId"/>
</resultMap>
在mapper中如何传递多个参数
mybatis的动态sql是做什么的
Mybatis 的 Xml 映射文件中,不同的 Xml 映射文件,id 是否可以重复
不同的 Xml 映射文件,如果配置了 namespace,那么 id 可以重复;如果没有配置 namespace,那么 id 不能重复;
原因就是 namespace+id 是作为 Map<String, MapperStatement>的 key使用的,如果没有 namespace,就剩下 id,那么,id 重复会导致数据互相覆盖。
有了 namespace,自然 id 就可以重复,namespace 不同,namespace+id 自然也就不同。
MyBatis中如何防止SQL注入
在编写MyBatis的映射语句时,尽量采用“#{xxx}”这样的格式。若不得不使用“${xxx}”这样的参数,要手工地做好过滤工作,来防止SQL注入攻击