MyBatis注解式和配置式之间的差异

-----今天我给大家来讲讲MyBatis的注解式和配置式的区别:

MyBatis和hiber一样都是属于持久层的框架,也是ORM的映射关系,但是他和hibernate最最最明显的区别是,Mybatis是半自动的,什么是半自动呢?这个简单的来说就是由程序员手动生成sql语句,这个就区别传统的jdbc了,虽然是手动生成sql语句让人有种久别的亲切感,但是我们只需要建立sql上的逻辑关系,实体依然和数据库自动进行映射,也就是说,我的sql语句字段映射的就是实体的属性。所以说他是半自动的咯~

------但是今天的主题是MyBatis注解式和配置式之间的差异:

1.文件上的差异:

有过Mybatis开发经历的小伙伴肯定知道,我们进行配置式开发的时候我们需要在项目中的mapper包中去配置一个xml的一个映射业务接口的一个文件,这里面写的就也就是我们的sql,它长这样子:

那么我们用注解式开发的时候,这个文件也就不需要了,我们的信息会根据注解配置在接口上。

2.配置上的差异:

在进行MyBatis'开发,无论是配置式开发还是注解式开发,他都会有一个最基础的配置文件,一般叫MyBatis-config.xml,这里面也就是声明一下数据源,配置一下数据库连接池,声明标签中的信息别名等等,虽说的简单但是却是核心所在。

配置式:上面也说了,在mapper中配置一个xml,处理我们的业务逻辑,而注解式则是在接口方法上实现

重点在黄色框框内,看清楚@select属于哪个包?这一行代码就取代了整个xml,是不是很牛皮,感觉到了映射能力的强大

除开这个之外,MyBatis-config.xml这个文件声明的mapper标签也从配置式的引入xml文件变成注解式的引入类文件

由此可见,那么insert,update,delete也是如此,但是有个不好的消息就来了,注解式如何实现动态Sql,那么这样的话上面描述的注解是无法完成Sql的。

3.动态Sql上的差异:

配置式常用:

注解式则需要用到sql语句构造器如下:

回到接口引用sql构造器的方法

这里的type=构造器的类的对象,method=“构造器的方法”,那么构造器的参数则与接口方法参数对应。

4.关联关系写法上的差异,由于注解和配置形式上大相径庭,原理却是没有变,这里关联关系就不做太多演示,有兴趣的百度一大把哟~

猜你喜欢

转载自blog.csdn.net/Mr_xiayijie/article/details/84197002