Mybatis第二天(映射,)
1,以多个参数入参(需要在每个参数前面添加@Param注解),@param:该注解可以实现多参数传递,同时还可以解决参数名称相同的问题,因为@Param中可以重新设置传入参数的名称
resultMap映射结果集:
如果实体类中的变量名和表中对应的字段名不一致时,自动映射设置值得时候,就会找不到相关的属性,导致值设置不进去(为null),此时,我们可以通过resultMap来手动设置映射的字段值
<select id="getUserList" resultMap="userList" parameterType="map">
<!-- 注意:如果是以map集合入参,那么拿值的时候,必须和map集中中的key值名字一样 -->
select * from smbms_user where userName like concat('%',#{uName},'%')
and userRole=#{uRole}
</select>
<!-- 添加resultMap标签 id属性:对应的是select标签中的resultMap=""中的名称 type属性:对象的是查询之后结果集映射的实体类,等同于之前select标签中的resultType
注意:如果实体类中的字段名和数据库的字段名一致,即使我们没有通过result标签来进行映射,也会自动去匹配映射值(如果在配置文件更改了自动映射级别则另说) -->
<resultMap type="user" id="userList">
<!-- result:设置映射字段的标签 column属性:对应的是数据库中字段的名字(也可以是查询语句中设置的字段别名) property属性:对应的是要映射到的实体类中的属性名称 -->
<id column="id" property="id"/>
<result property="code" column="userCode"/>
</resultMap>
resultMap自动映射的级别:NONE,PARTIAL,FULL
复制mybatis官网中settings的代码,在mybatis-config.xml中配置,写在setting中
<settings>
<!-- 配置Log4j日志 -->
<setting name="logImpl" value="LOG4J"/>
<!-- 配置映射级别 -->
<setting name="autoMappingBehavior" value="NONE"/>
</settings>
注意:在log4j文件中,用debug打印的是程序运行的结果集,

浙公网安备 33010602011771号