MyBatis(二) XML与注解方式基础用法(以RBAC权限管理为例)
在文章《MyBatis(一) 基础入门》介绍了MyBatis的最原始使用方式,有机会从头开始了解和使用一个框架的好处是可以对它可以了解更多,现在,来了解它的XML方式的配置。
为了有一个比较好的例子,这里使用RBAC权限管理模型,可以了解到单表、多表的CRUD。RBAC(Role-Based Access Control), 基于角色的访问控制,就是用户通过角色与权限进行关联,即一个用户拥有可以拥有多个角色,一个角色可以拥有多个权限,就构成了“用户-角色-权限”的授权模型,其中,用户与角色之间,角色与权限之间,一般是多对多的关系,如下所示:
对于部分系统,上述权限管理模型可以满足了,其他业务场景,可以对该模型进行适当扩充以满足需求。
1. 首先在MySQL数据库中新建如上几个表并插入一些测试数据,如下:
2. 创建用户表、角色表、权限表的Java实体类
注意:MyBatis对于以下划线分割的列名,在Java中会自动转为驼峰表达式。以用户表为例:
其他表的Java实体类类似。
3. 编写mapper的xml和接口文件,注意,包路径要一致!
4. 修改mybatis-config.xml文件
和之前不一样的是,这里mappers里的mapper标签改为了package,这样,mybatis框架就会自动扫描该包路径下的所有mapper文件而不用写N个mapper子标签配置了。
如上步骤,准备好了开发基础,可以开始试验MyBatis的CRUD了。
SELECT
1. 修改UserMapper.java接口和对应XML文件
2. 测试类如下:
运行测试,正常。
INSERT
插入的简单用法。在mapper接口新增函数:
在mapper的xml文件实现sql:
运行的测试结果如下:
UPDATE
和insert插入差不多,详细看GitHub提交的代码,地址参考《MyBatis(一) 基础入门》。
DELETE
和insert插入差不多,详细看GitHub提交的代码,地址参考《MyBatis(一) 基础入门》。
注解形式
实际开发中,基本都是使用XML方式来编写SQL语句,对于需求比较简单的业务系统,可以使用注解形式实现,但是,注解实现的形式当SQL语句变化时都需要重新编译代码,不够灵活,因此,一般不会使用,下面只是简单介绍下用法。