目录
mybatis在实际使用时,最主要的还是映射器。这一篇大体介绍一下映射器,但是有个问题,这篇文章全是我自己对应映射器的理解,因为根据现有的资料(基本上都是复制粘贴同样的内容)去理解,我理解不了,然后就根据官网去理解,所以有了下边这些叙述,这些描述和其他的文章中的描述还是有挺多不同的,我也没有底儿到底理解的是对还是错,希望看完文章的同学能留个言 描述一下自己的看法。
1、映射器是什么?
mybatis的映射器究竟是什么呢?这个官网没有给予明确的概念,不过可以尝试从另一个角度去理解,之前说过mybatis是一个半自动的ORM框架,因为需要开发者自己去定义sql语句,自己去设置请求参数和结果集类型,但是mybatis却可以将数据在java类型与数据库之间转换,这就是映射器的功劳。基于此,以自己的理解,mybatis的映射器应该包含两部分:开发者自定义的sql和mybatis提供的自动映射的机制。
2、自定义sql和使用的分类
这个也就是常说的映射器类型,因为我觉得说映射器类型不太准确,因为映射器是一个整体的工具,而非一部分,所以才有了上边的目录,这里主要说的是定义和使用的不同方式,具体如下:
2、1 根据定义sql的两种方式分类
1)使用sql映射文件,将sql定义在xml文件中
2)将sql通过注解的方式直接定义在java代码中
2、2 根据使用方式分类
1)直接通过sqlSession调用xml文件中的sql
2)将sql映射文件和一个接口绑定,之后使用时直接调用接口即可,这种比较常用,它是通过生成代理对象的方式来进行具体的数据处理,java代码和sql分离,耦合度较低,在使用时可以实现面向接口编程,使用方便。这种使用方式需要注意sql映射文件中的命名空间必须是对应接口的全路径限定名
3)不使用sql映射文件,直接使用注解将sql定义在java类中,需要定义接口,在接口中对应方法上定义对应的sql,这种的原理和第2中相同,只不过比较适用于sql简单的情况,且耦合度较高
以上就是对映射器的理解,期望读过这篇文章的同学留言自己的看法,一起交流一下。