java-浅谈mybatis的映射文件

浅谈mybatis的映射文件

我们知道mybatis数据半自动化的持久性存储的数据操作工具,在mybatis的使用中,我们通常知道的需要具备三个部分,分别是entity实体类,mapper接口和mapper的映射文件,当我们使用springboot注入mybatis接口的时候,如果找不到映射文件就出现Invalid
bound statement (not found)
的报错,那么映射文件的处于什么样的位置和级联的时候为什么可以根据需求任意地书写sql语句呢?

<select id="getByClassName" resultType="com.fanjun.mybatisplus.entity.TName" parameterType="java.lang.String">
    select a.id,a.name
    from t_name a join t_class b on a.id=b.name_id where b.t_class= #{className}
</select>

用过jdbc的伙伴应该知道,每次的数据操作,就是sql访问数据库,所以mybatis也是一样,需要先获取sql,mybatis的获取方式就是与接口对应的映射文件,所以映射文件的名字也会与接口的名字相同。

那么,如何从映射文件中获取sql呢,有两个比较重要的配置,一个就是mapper标签下的namespace属性,该属性指明对应的接口,另一个就是crud的标签的id属性,该属性匹配接口的对应方法名,这样就实现了sql的获取。
而sql的占位赋值就依靠parameterType和parameterMap属性进行赋值,返回值根据resultType和resultMap就行ORM转换。如果这四个属性不懂的伙伴请移步百度。

所以综上所得,mybatis的映射文件就是为接口的方法找到对应的sql,存在预编译的,就根据配置属性将方法参数进行处理后添加到sql,然后查找数据库,返回的数据记录再根据配置属性转成java的对象类型。这也是为什么可以在映射文件中任意写sql,比如级联处理的sql,只要parameter和result配置正确,就能实现ORM转换。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值