Mybatis为啥要编写实体类?

        在学习mybatis时 跟着教程敲了一边代码,最后程序成功的从数据库中拿到了数据。之后就开始分析程序,整体梳理下来发现都可以对应上 唯独编写的实体类不太明白 为什么要写这个实体类?实体类怎么和数据库中的数据对应上的?能不能不写这个实体类?

经过网上的查找以后最终明白了一点,我的理解如下:

  • mybatis如何从数据库中拿到数据?

        首先我们知道mybatis需要有Mapper接口和Mapper.xml(两者名字一定要一样)Mapper接口中编写的是操作数据库的相关方法,Mapper.xml中通过namespace绑定这个接口从而实现对应接口中的方法  xml中的sql语句有两个参数 resultType 和 parameterType 前者是返回结果的类型 后者是方法传递的参数类型 。

        通常来说resultType填写的是你写的实体类 ,通过执行对应的sql从数据库中拿到数据 , 理论上这个拿到的数据是和你编写的实体类是可以对应上的 后台为你new一个实体类的对象把数据库中拿到的数据封装在这个对象里 最终返回给你看到的数据就是这个对象里面的属性。注意:实际上是无论你写不写这个resultType后台都会为你创建一个HashMap 系统先将数据库中的数据以键值对的方式写到这个Map中(如果是多条数据那么就会创建List<HashMap<Key,Value>>)如果你写了这个resultType那么就会把这个Map中的数据再次写到这个实体类的对象中。反之你没写resultType或者写的Map那么就会直接把Map中的数据返回给你。

  • 为什么要写这个实体类?

        首先Java万物皆对象,我们编写这个实体类可以将拿到的数据封装成一个对象,有了对象我们就可以更好的去操作它修改它,其次在小的项目中编写实体类更加的方便、代码可读性高

  • 为什么不写实体类也可以?

        上面解释的 如果不写实体类系统就自动创建HashMap来为你封装数据,我们就直接拿到这个map就可以了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龙城桥少

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值