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打印的是程序运行的结果集,

posted @   不再犹豫27  阅读(19)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示