From e5e783256f4d9f4a3f298a227378ed2d65d42626 Mon Sep 17 00:00:00 2001 From: "fjy8018@qq.com" <27894869fjy> Date: Fri, 6 Jul 2018 09:52:17 +0800 Subject: [PATCH] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=95=B0=E6=8D=AE=E5=BA=93?= =?UTF-8?q?=E3=80=81=E7=BC=96=E5=86=99SQL=E8=AF=AD=E5=8F=A5=E5=92=8C?= =?UTF-8?q?=E5=9F=BA=E7=A1=80=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 7 +- sql.sql | 71 +++++++++++++++++++ .../fjy8018/shiro/dataobject/Permission.java | 17 +++++ .../top/fjy8018/shiro/dataobject/Role.java | 18 +++++ .../top/fjy8018/shiro/dataobject/User.java | 17 +++++ .../top/fjy8018/shiro/mapper/UserMapper.java | 13 ++++ .../shiro/service/Impl/UserServiceImpl.java | 24 +++++++ .../fjy8018/shiro/service/UserService.java | 12 ++++ src/main/resources/application.properties | 0 src/main/resources/application.yml | 7 ++ src/main/resources/mapper/UserMapper.xml | 23 ++++++ 11 files changed, 208 insertions(+), 1 deletion(-) create mode 100644 sql.sql create mode 100644 src/main/java/top/fjy8018/shiro/dataobject/Permission.java create mode 100644 src/main/java/top/fjy8018/shiro/dataobject/Role.java create mode 100644 src/main/java/top/fjy8018/shiro/dataobject/User.java create mode 100644 src/main/java/top/fjy8018/shiro/mapper/UserMapper.java create mode 100644 src/main/java/top/fjy8018/shiro/service/Impl/UserServiceImpl.java create mode 100644 src/main/java/top/fjy8018/shiro/service/UserService.java delete mode 100644 src/main/resources/application.properties create mode 100644 src/main/resources/application.yml create mode 100644 src/main/resources/mapper/UserMapper.xml diff --git a/pom.xml b/pom.xml index 06c4cbb..228c7a8 100644 --- a/pom.xml +++ b/pom.xml @@ -72,6 +72,7 @@ org.apache.tomcat tomcat-jasper + 9.0.10 @@ -83,7 +84,11 @@ javax.servlet jstl - + + org.projectlombok + lombok + true + diff --git a/sql.sql b/sql.sql new file mode 100644 index 0000000..11243da --- /dev/null +++ b/sql.sql @@ -0,0 +1,71 @@ +DROP DATABASE db_shiroTest; +GRANT ALL ON db_shiroTest.* TO trs@localhost IDENTIFIED BY 'shiro'; +flush privileges; +CREATE DATABASE IF NOT EXISTS db_shiroTest DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci; +USE db_shiroTest; +-- 权限表 -- +CREATE TABLE permission ( + pid INT(11) NOT NULL AUTO_INCREMENT, + name VARCHAR(255) NOT NULL DEFAULT '', + url VARCHAR(255) DEFAULT '', + PRIMARY KEY (pid) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4; + +-- 用户表 -- +CREATE TABLE user ( + uid INT(11) NOT NULL AUTO_INCREMENT, + username VARCHAR(255) NOT NULL DEFAULT '', + password VARCHAR(255) NOT NULL DEFAULT '', + PRIMARY KEY (uid) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4; + +-- 角色表 -- +CREATE TABLE role ( + rid INT(11) NOT NULL AUTO_INCREMENT, + rname VARCHAR(255) NOT NULL DEFAULT '', + PRIMARY KEY (rid) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4; + +-- 权限角色关系表 -- +CREATE TABLE permission_role ( + rid INT(11) NOT NULL, + pid INT(11) NOT NULL, + CONSTRAINT FK_prid FOREIGN KEY (rid) REFERENCES role (rid), + CONSTRAINT FK_pid FOREIGN KEY (pid) REFERENCES permission (pid) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4; + +-- 用户角色关系表 -- +CREATE TABLE user_role ( + rid INT(11) NOT NULL, + uid INT(11) NOT NULL, + CONSTRAINT FK_urid FOREIGN KEY (rid) REFERENCES role (rid), + CONSTRAINT FK_uid FOREIGN KEY (uid) REFERENCES user (uid) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4; + +-- 初始化数据 -- +INSERT INTO permission (pid,name, url) VALUE ('1','add',''); +INSERT INTO permission (pid,name, url) VALUE ('2','delete',''); +INSERT INTO permission (pid,name, url) VALUE ('3','edit',''); +INSERT INTO permission (pid,name, url) VALUE ('4','query',''); + +INSERT INTO user (uid,username, password) VALUE ('1','admin','0000'); +INSERT INTO user (uid,username, password) VALUE ('2','trs','trs'); + +INSERT INTO role (rid,rname) VALUE ('1','admin'); +INSERT INTO role (rid,rname) VALUE ('2','customer'); +INSERT INTO role (rid,rname) VALUE ('3','guest'); + +INSERT INTO permission_role (rid, pid) VALUE ('1','1'); +INSERT INTO permission_role (rid, pid) VALUE ('1','2'); +INSERT INTO permission_role (rid, pid) VALUE ('1','3'); +INSERT INTO permission_role (rid, pid) VALUE ('1','4'); + +INSERT INTO permission_role (rid, pid) VALUE ('2','1'); +INSERT INTO permission_role (rid, pid) VALUE ('1','3'); +INSERT INTO permission_role (rid, pid) VALUE ('1','4'); +INSERT INTO permission_role (rid, pid) VALUE ('3','4'); + +INSERT INTO user_role (rid, uid) VALUE ('1','1'); +INSERT INTO user_role (rid, uid) VALUE ('2','2'); + + diff --git a/src/main/java/top/fjy8018/shiro/dataobject/Permission.java b/src/main/java/top/fjy8018/shiro/dataobject/Permission.java new file mode 100644 index 0000000..1aeff10 --- /dev/null +++ b/src/main/java/top/fjy8018/shiro/dataobject/Permission.java @@ -0,0 +1,17 @@ +package top.fjy8018.shiro.dataobject; + +import lombok.Data; + +/** + * @author F嘉阳 + * @date 2018/7/5 21:14 + */ +@Data +public class Permission { + + private Integer pid; + + private String name; + + private String url; +} diff --git a/src/main/java/top/fjy8018/shiro/dataobject/Role.java b/src/main/java/top/fjy8018/shiro/dataobject/Role.java new file mode 100644 index 0000000..212c700 --- /dev/null +++ b/src/main/java/top/fjy8018/shiro/dataobject/Role.java @@ -0,0 +1,18 @@ +package top.fjy8018.shiro.dataobject; + +import lombok.Data; + +import java.util.HashSet; +import java.util.Set; + +@Data +public class Role { + + private Integer rid; + + private String name; + + private Set permissions = new HashSet<>(); + + private Set users = new HashSet<>(); +} diff --git a/src/main/java/top/fjy8018/shiro/dataobject/User.java b/src/main/java/top/fjy8018/shiro/dataobject/User.java new file mode 100644 index 0000000..6b41415 --- /dev/null +++ b/src/main/java/top/fjy8018/shiro/dataobject/User.java @@ -0,0 +1,17 @@ +package top.fjy8018.shiro.dataobject; + +import lombok.Data; + +import java.util.HashSet; +import java.util.Set; + +@Data +public class User { + + private Integer uid; + + private String password; + + private Set roles = new HashSet<>(); + +} diff --git a/src/main/java/top/fjy8018/shiro/mapper/UserMapper.java b/src/main/java/top/fjy8018/shiro/mapper/UserMapper.java new file mode 100644 index 0000000..147534d --- /dev/null +++ b/src/main/java/top/fjy8018/shiro/mapper/UserMapper.java @@ -0,0 +1,13 @@ +package top.fjy8018.shiro.mapper; + +import org.apache.ibatis.annotations.Param; +import top.fjy8018.shiro.dataobject.User; + +/** + * @author F嘉阳 + * @date 2018/7/5 21:24 + */ +public interface UserMapper { + + User findByUsername(@Param("username") String username); +} diff --git a/src/main/java/top/fjy8018/shiro/service/Impl/UserServiceImpl.java b/src/main/java/top/fjy8018/shiro/service/Impl/UserServiceImpl.java new file mode 100644 index 0000000..7cb1104 --- /dev/null +++ b/src/main/java/top/fjy8018/shiro/service/Impl/UserServiceImpl.java @@ -0,0 +1,24 @@ +package top.fjy8018.shiro.service.Impl; + +import org.springframework.stereotype.Service; +import top.fjy8018.shiro.dataobject.User; +import top.fjy8018.shiro.mapper.UserMapper; +import top.fjy8018.shiro.service.UserService; + +import javax.annotation.Resource; + +/** + * @author F嘉阳 + * @date 2018/7/5 21:29 + */ +@Service +public class UserServiceImpl implements UserService { + + @Resource + private UserMapper userMapper; + + @Override + public User findByUsername(String username) { + return userMapper.findByUsername(username); + } +} diff --git a/src/main/java/top/fjy8018/shiro/service/UserService.java b/src/main/java/top/fjy8018/shiro/service/UserService.java new file mode 100644 index 0000000..ca2c7c8 --- /dev/null +++ b/src/main/java/top/fjy8018/shiro/service/UserService.java @@ -0,0 +1,12 @@ +package top.fjy8018.shiro.service; + +import top.fjy8018.shiro.dataobject.User; + +/** + * @author F嘉阳 + * @date 2018/7/5 21:27 + */ +public interface UserService { + + User findByUsername(String username); +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties deleted file mode 100644 index e69de29..0000000 diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml new file mode 100644 index 0000000..34ce7e4 --- /dev/null +++ b/src/main/resources/application.yml @@ -0,0 +1,7 @@ +spring: + datasource: + type: com.alibaba.druid.pool.DruidDataSource + driver-class-name: com.mysql.jdbc.Driver + url: jdbc:mysql://localhost:3306/db_imis2?useUnicode=true&characterEncoding=utf-8&useSSL=true + username: trs + password: shiro \ No newline at end of file diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml new file mode 100644 index 0000000..e3ea228 --- /dev/null +++ b/src/main/resources/mapper/UserMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file