MyBatis提供了XML和注解两种方式使用数据库,相比XML的方式,注解的方式更加简单方便,无须创建XML配置文件。
一、XML和注解的异同
MyBatis在最初设计时是一个XML驱动的框架,配置信息和映射文件都是基于XML的,而到了MyBatis 3,就有了新的选择。注解模式为使用MyBatis提供了一种更加简单的SQL语句映射,而不会造成大量的开销。两种模式的区别如下:
1)注解模式使用简单,开发效率高,但是维护麻烦,修改SQL需要重新编译打包。
2)XML模式便于维护,SQL和代码分开,代码清晰易懂,而使用注解模式需要在方法前加各种注解和SQL语句,使得代码的可读性不强。
3)XML模式虽然提供了完善的标签来实现复杂的SQL语句,但是没有在Java代码中直接判断拼接那样简单方便。
4)XML模式因为SQL是配置在XML文件中的,某些特殊字符需要转义,所以使用起来比较麻烦,容易出错。
两种模式各有特点,注解模式适合简单快速的模式,在微服务架构中,一般微服务都有自己对应的数据库,多表连接查询的需求会大大降低,非常适合注解模式。而XML模式比较适合大型项目,可以灵活地动态生成SQL,方便调整SQL。在具体开发过程中,可以根据公司业务和团队技术基础进行选择。
二、使用注解实现数据查询
MyBatis注解模式的最大特点是取消了Mapper的XML配置,通过@Insert、、@Update、@Select、@Delete等注解将SQL语句定义在Mapper接口方法中或SQLProvider的方法中,从而省去了XML配置文件。这些注解和参数的使用与mapper.xml配置文件基本一致。下面就来演示使用MyBatis注解实现数据查询。
1. 修改配置文件
首先创建Spring Boot项目,集成MyBatis的过程与XML配置方式一样。使用注解方式只需要在application.properties中指明实体类的包路径,其他保持不变,配置示例如下:
# mapper.xml mapper接口的包路径
MyBatis.type-alias