当前位置:首页 > 经验 >

mybatis入门教程(mybatis初学者总结)

来源:原点资讯(www.yd166.com)时间:2022-10-29 11:27:17作者:YD166手机阅读>>

在我们企业级后台应用开发的过程中,一个比较经典的应用场景就是权限控制操作。采用RBAC(Role-Based Access Control,基于角色的访问控制)。这是一个比较经典的应用场景。后续的案例都是基于这个权限控制来实现的。

mybatis入门教程,mybatis初学者总结(1)

基于RBAC权限管理是解决如下的需求:一个用户有若*角色、一个角色有若*权限,权限的意思就是对于某个模块的CRUD操作。这样就构成了 用户-角色-权限的授权模型。如上图所示,涉及到了五张表:用户表、角色表、权限表、用户角色关系表和角色权限关系表。

创建数据库表

根据上面的分析,需要创建的表有五个分别是用户表、角色表、权限表、用户角色关系表和角色权限关系表。

这里执行如下的一些SQL建表语句

用户表

CREATE TABLE sys_user( id BIGINT NOT NULL COMMENT '主键ID' , user_name VARCHAR(32) COMMENT '用户名' , user_password VARCHAR(32) COMMENT '密码' , user_email VARCHAR(32) COMMENT '邮箱' , user_info TEXT COMMENT '简介' , head_image TEXT COMMENT '头像' , create_time DATETIME COMMENT '创建时间' , PRIMARY KEY (id) ) COMMENT = '用户表 ';;

角色表

CREATE TABLE sys_role( id BIGINT NOT NULL COMMENT '角色ID' , role_name VARCHAR(32) COMMENT '角色名' , eabled CHAR(1) COMMENT '有效标志' , create_by VARCHAR(32) COMMENT '创建人' , create_time DATETIME COMMENT '创建时间' , PRIMARY KEY (id) ) COMMENT = '角色表 ';;

权限表

CREATE TABLE sys_privilege( id BIGINT COMMENT '权限ID' , privilege_name VARCHAR(32) COMMENT '权限名称' , privilege_url VARCHAR(32) COMMENT '权限URL' ) COMMENT = '权限表 ';;

用户角色关联表

CREATE TABLE sys_user_role( user_id BIGINT COMMENT '用户ID' , role_id BIGINT COMMENT '角色ID' ) COMMENT = '用户角色关联表 ';;

用户权限关联表

CREATE TABLE sys_role_privilege( role_id BIGINT COMMENT '角色ID' , privilege_id BIGINT COMMENT '权限ID' ) COMMENT = '角色权限关联表 ';;

为了后续的测试,可以自己在数据库中建立对应的业务逻辑关系数据,来测试数据权限操作。

创建实体

在MyBatis中默认采用的是下划线驼峰命名规则,也就是说数据库字段中的下划线会以驼峰命名的方式在实体类中展示。

这里首先来看一下用户表对应的实体类

public class SysUser { /** * 用户ID */ private Long id; /** * 用户名 */ private String userName; /** * 用户密码 */ private String userPassword; /** * 邮箱 */ private String userEmail; /** * 简介 */ private String userInfo; /** * 头像 */ private String headImage; /** * 创建时间 */ private Date createTime; // 为了代码干净整洁,这里省略get/set方法。 }

可以看到在SysUser类中采用了驼峰命名的方式。这里其实并没有太多的要求,只要能与数据库字段进行映射就可以了,后续还可以通过ResultMap的方式进行字段匹配的映射。

在MyBatis中,数据库字段与Java类型的对应关系不需要刻意去记忆。只需要对一些特殊的关键字段注意一下就可以了。因为在Java 中对于基本数据类型都会有默认值,但是在一些引用类型判断的时候就会出现问题,因为例如int类型的数据默认值是0,但是如果要进行引用对象判断的时候,这个指向0 的引用会一直存在,所以就会导致很多的问题。所以在设置实体类的时候建议不要使用基本数据类型作为判断。

同样的,其他的表也通过这种方式进行创建。

栏目热文

mybatis的工作原理和流程(mybatis执行流程讲解)

mybatis的工作原理和流程(mybatis执行流程讲解)

1、mybatis基本工作原理介绍计算机的基本工作就是存储和计算,而MyBatis是存储领域的利器。MyBatis的基本...

2022-10-29 12:10:38查看全文 >>

mybatis官方文档中文(mybatis免费)

mybatis官方文档中文(mybatis免费)

官网地址:https://github.com/mybatis/mybatis-3一个简单的mybatis-demo简概...

2022-10-29 11:32:46查看全文 >>

mybatis底层原理分析(mybatis底层原理图)

mybatis底层原理分析(mybatis底层原理图)

此篇文章讲述了MyBatis的原理,非常简单却很实用。持续分享Java技术干货,欢迎关注我。前言MyBatis 是一个被...

2022-10-29 11:32:36查看全文 >>

mybatis插入时间参数(mybatis接收日期参数)

mybatis插入时间参数(mybatis接收日期参数)

介绍MyBatis Generator的作用就是根据数据库中的表结构,帮我们自动生成和表结构相同的实体类,mapper接...

2022-10-29 12:02:57查看全文 >>

mybatis工作原理通俗理解(mybatis真实原理)

mybatis工作原理通俗理解(mybatis真实原理)

作者:vivo互联网服务器团队-Zhang Peng一、MyBatis 完整示例这里,我将以一个入门级的示例来演示 My...

2022-10-29 11:27:50查看全文 >>

mybatis详细讲解(mybatis操作步骤)

mybatis详细讲解(mybatis操作步骤)

废话不多说,直接进入文章。我们在使用Mybatis的时候,会在xml中编写SQL语句。如图:那么,MyBatis底层是如...

2022-10-29 11:57:34查看全文 >>

mybatis面试题(java面试必背八股文)

mybatis面试题(java面试必背八股文)

点击上方"java全栈技术"关注,每天学习一个java知识点1. #{}和${}的区别是什么?#{}是预编译处理,${}...

2022-10-29 11:56:17查看全文 >>

mybatis简介(mybatis的详细讲解)

mybatis简介(mybatis的详细讲解)

一. mybatisMyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache so...

2022-10-29 11:28:39查看全文 >>

mybatis工作原理分析(mybatis工作原理及项目操作配置)

mybatis工作原理分析(mybatis工作原理及项目操作配置)

前言:mybatis是最近几年比较流行的操作数据库框架了,平时都只知道怎么去配置,怎么去用它,那你们知道它是如何实现的吗...

2022-10-29 12:11:32查看全文 >>

mybatis作用及特点(mybatis优点有哪些)

mybatis作用及特点(mybatis优点有哪些)

a、MyBatis 把 sql 语句从 Java 源程序中独立出来,放在单独的 XML 文件中编写,给程序的维护带来了很...

2022-10-29 11:45:02查看全文 >>

文档排行