日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

MyBatis 三表外關聯查詢的實現(用戶、角色、權限)

瀏覽:231日期:2023-10-23 12:20:45

一、數據庫結構

MyBatis 三表外關聯查詢的實現(用戶、角色、權限)

二、查詢所有數據記錄(SQL語句)

MyBatis 三表外關聯查詢的實現(用戶、角色、權限)

SQL語句:

SELECT u.*, r.*, a.* FROM( ( ( user u INNER JOIN user_role ur ON ur.user_id = u.user_id ) INNER JOIN role r ON r.role_id = ur.role_id ) INNER JOIN role_authority ra ON ra.role_id = r.role_id)INNER JOIN authority a ON ra.authority_id = a.authority_id

三、詳細代碼(第一中方式)

1、實體類entity

package cn.lemon.demo.entity;import lombok.Data;import java.io.Serializable;@Datapublic class AuthorityEntity implements Serializable { private Integer authorityId; private String authorityName; private String authorityDescription;}

package cn.lemon.demo.entity;import lombok.Data;import java.io.Serializable;@Datapublic class RoleEntity implements Serializable { private Integer roleId; private String roleName; private String roleDescription;}

package cn.lemon.demo.entity;import lombok.Data;import java.io.Serializable;import java.util.Date;import java.util.List;@Datapublic class UserEntity implements Serializable { private Integer userId; private String userName; private String userSex; private Date userBirthday; private String userAddress; private List<RoleEntity> roleEntityList; private List<AuthorityEntity> authorityEntityList;}

2、數據訪問層dao、Mapper

package cn.lemon.demo.dao;import cn.lemon.demo.entity.UserEntity;import org.springframework.stereotype.Repository;import java.util.List;@Repositorypublic interface IUserDao { /** * 查詢所有關聯的數據 * * @return */ List<UserEntity> selectAllUserRoleAuthority();}

<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE mapper PUBLIC '-//mybatis.org//DTD Mapper 3.0//EN' 'http://mybatis.org/dtd/mybatis-3-mapper.dtd'><mapper namespace='cn.lemon.demo.dao.IUserDao'> <select resultMap='userMap'> SELECT u.*, r.*, a.* FROM ( (( user u INNER JOIN user_role ur ON ur.user_id = u.user_id )INNER JOIN role r ON r.role_id = ur.role_id ) INNER JOIN role_authority ra ON ra.role_id = r.role_id ) INNER JOIN authority a ON ra.authority_id = a.authority_id </select> <resultMap type='cn.lemon.demo.entity.UserEntity'> <id property='userId' column='user_id'/> <result property='userName' column='user_name'/> <result property='userSex' column='user_sex'/> <result property='userBirthday' column='user_birthday'/> <result property='userAddress' column='user_address'/> <collection property='roleEntityList' ofType='cn.lemon.demo.entity.RoleEntity' resultMap='roleMap'/> <collection property='authorityEntityList' ofType='cn.lemon.demo.entity.AuthorityEntity' resultMap='authorityMap'/> </resultMap> <resultMap type='cn.lemon.demo.entity.RoleEntity'> <id property='roleId' column='role_id'/> <result property='roleName' column='role_name'/> <result property='roleDescription' column='role_description'/> </resultMap> <resultMap type='cn.lemon.demo.entity.AuthorityEntity'> <id property='authorityId' column='authority_id'/> <result property='authorityName' column='authority_name'/> <result property='authorityDescription' column='authority_description'/> </resultMap></mapper>

3、業務層service

package cn.lemon.demo.service;import cn.lemon.demo.entity.UserEntity;import org.springframework.stereotype.Service;import java.util.List;@Servicepublic interface IUserService { List<UserEntity> selectAllUserRoleAuthority();}

package cn.lemon.demo.service.impl;import cn.lemon.demo.dao.IUserDao;import cn.lemon.demo.entity.UserEntity;import cn.lemon.demo.service.IUserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import java.util.List;@Servicepublic class UserServiceImpl implements IUserService { @Autowired private IUserDao userDao; @Override public List<UserEntity> selectAllUserRoleAuthority() { return userDao.selectAllUserRoleAuthority(); }}

4、測試類

package cn.lemon.demo.service.impl;import cn.lemon.demo.entity.UserEntity;import cn.lemon.demo.service.IUserService;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringRunner;import java.util.List;@SpringBootTest@RunWith(SpringRunner.class)public class UserServiceImplTest { @Autowired private IUserService userService; @Test public void selectAllUserRoleAuthority() { List<UserEntity> userEntities = userService.selectAllUserRoleAuthority(); for (UserEntity userEntity : userEntities) { System.out.println( '用戶姓名:' + userEntity.getUserName() + '用戶地址:' + userEntity.getUserAddress() + '權限列表:' + userEntity.getAuthorityEntityList() + '角色列表:' + userEntity.getRoleEntityList()); System.out.println('--------------------------------------'); } }}

四、詳細代碼(第二中方式)

1、實體類entity (實體類可以省略不寫)

package cn.lemon.demo.entity;import lombok.Data;import java.io.Serializable;import java.util.Date;@Datapublic class UserEntity implements Serializable { private Long userId; private String userName; private String userSex; private Date userBirthday; private String userAddress;}

package cn.lemon.demo.entity;import lombok.Data;import java.io.Serializable;@Datapublic class RoleEntity implements Serializable { private Long roleId; private String roleName; private String roleDescription;}

package cn.lemon.demo.entity;import lombok.Data;import java.io.Serializable;@Datapublic class AuthorityEntity implements Serializable { private Long authorityId; private String authorityName; private String authorityDescription;}

2、數據訪問層dao、Mapper

package cn.lemon.demo.dao;import java.util.List;import java.util.Map;public interface IUserDao { List<Map> selectAllUserRoleAuthority();}

<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE mapper PUBLIC '-//mybatis.org//DTD Mapper 3.0//EN' 'http://mybatis.org/dtd/mybatis-3-mapper.dtd'><mapper namespace='cn.lemon.demo.dao.IUserDao'> <!--查詢 用戶信息,角色信息,權限信息--> <select resultType='java.util.Map'> SELECT u.user_id userId, u.user_name userName, u.user_sex userSex, u.user_birthday userBirthday, u.user_address userAddress, r.role_name roleName, r.role_description roleDescription, a.authority_name authorityName, a.authority_description authorityDescription FROM (( ( USER u INNER JOIN user_role ur ON u.user_id = ur.user_id ) INNER JOIN role r ON r.role_id = ur.role_id)INNER JOIN role_authority ra ON ra.role_id = r.role_id ) INNER JOIN authority a ON a.authority_id = ra.authority_id </select></mapper>

3、業務層service (接口及實現類)

package cn.lemon.demo.service;import java.util.List;import java.util.Map;public interface IUserService { List<Map> selectAllUserRoleAuthority();}

package cn.lemon.demo.service.impl;import cn.lemon.demo.dao.IUserDao;import cn.lemon.demo.service.IUserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import java.util.List;import java.util.Map;@Servicepublic class UserServiceImpl implements IUserService { @Autowired private IUserDao userDao; @Override public List<Map> selectAllUserRoleAuthority() { return userDao.selectAllUserRoleAuthority(); }}

4、控制層controller

package cn.lemon.demo.controller;import cn.lemon.demo.service.IUserService;import com.alibaba.fastjson.JSONObject;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.ResponseBody;import java.util.List;import java.util.Map;@Controller@RequestMapping(value = '/')public class SystemController { @Autowired private IUserService userService; /** * 跳轉頁面 * * @return */ @RequestMapping(value = 'index') public String index() { return 'index'; } /** * 查詢所有關聯的數據 用戶信息,角色信息,權限信息 * @return */ @RequestMapping(value = 'selectAll',method = RequestMethod.POST) @ResponseBody public String selectAll(){ List<Map> mapList = userService.selectAllUserRoleAuthority(); JSONObject json = new JSONObject(); json.put('mapList',mapList); System.out.println(json.toJSONString()); return json.toJSONString(); }}

5、前端頁面 index.html

<!DOCTYPE html><html lang='en' xmlns:th='http://www.thymeleaf.org'><head> <meta charset='UTF-8'> <title>首頁</title> <script type='text/javascript' th:src='http://m.b3g6.com/bcjs/@{/static/js/jquery-1.11.3.min.js}'></script></head><body><div id='head'> <table border='2px' cellspacing='2px'> <thead> <tr> <th>用戶編號</th> <th>用戶姓名</th> <th>用戶性別</th> <th>用戶生日</th> <th>用戶地址</th> <th>角色名稱</th> <th>角色描述</th> <th>權限名稱</th> <th>權限描述</th> </tr> </thead> <tbody id='tbody'> </tbody> </table></div><script type='text/javascript'> $(function () { $.ajax({ type: 'post', url: ’/selectAll’, contentType: 'application/json;charset=utf-8', dataType: ’json’, //async: false,/*表示請求為同步方式*/ success: function (data) {//在<tbody>中追加數據for (var i = 0; i < data.mapList.length; i++) { $('#tbody').append('<tr><td>' + data.mapList[i].userId + '</td>' + '<td>' + data.mapList[i].userName + '</td>' + '<td>' + data.mapList[i].userSex + '</td>' + '<td>' + data.mapList[i].userBirthday + '</td>' + '<td>' + data.mapList[i].userAddress + '</td>' + '<td>' + data.mapList[i].roleName + '</td>' + '<td>' + data.mapList[i].roleDescription + '</td>' + '<td>' + data.mapList[i].authorityName + '</td>' + '<td>' + data.mapList[i].authorityDescription + '</td>' + '</tr>');} }, error: function () {window.alert('查詢失敗'); } }); });</script></body></html>

運行 localhost:8080 顯示:

MyBatis 三表外關聯查詢的實現(用戶、角色、權限)

到此這篇關于MyBatis 三表外關聯查詢的實現(用戶、角色、權限)的文章就介紹到這了,更多相關MyBatis 外關聯查詢內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Mybatis 數據庫
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
av综合电影网站| 久久青草久久| 久久亚洲色图| 午夜在线精品| 色综合视频一区二区三区日韩 | 日韩一区二区三区在线免费观看| 精品久久久网| 国产精品成人a在线观看| 国产在线一区不卡| 国产成人精品一区二区免费看京| 国产成人77亚洲精品www| 欧美丰满日韩| 久久国产日本精品| 欧美日韩国产探花| 亚洲tv在线| 国产精品任我爽爆在线播放 | 日韩三区免费| 激情综合自拍| 一本综合精品| 日韩1区2区日韩1区2区| 久久精品资源| 一区二区小说| 亚洲精品乱码| 国产精品2区| 日韩不卡视频在线观看| 日韩亚洲在线| 国产伦精品一区二区三区千人斩 | 国产精品久久久久av电视剧| 欧美特黄一级| 亚洲精品乱码久久久久久蜜桃麻豆| 欧美日韩在线精品一区二区三区激情综合| 国产亚洲观看| 日韩亚洲一区在线| 男女男精品网站| 国产精品啊v在线| 欧美午夜精彩| 欧美日韩午夜电影网| 在线人成日本视频| 亚洲深夜福利| 久久超级碰碰| 欧美日韩在线观看首页| 国产亚洲永久域名| 久久av日韩| 欧美特黄a级高清免费大片a级| 日韩av中文字幕一区二区三区| 久久久久久久欧美精品| 天海翼精品一区二区三区| 欧美黄色一区| 激情久久中文字幕| 欧美日一区二区三区在线观看国产免 | 免费久久久久久久久| 综合视频一区| 国产成人精品一区二区免费看京| 一区在线免费观看| 国产精品美女午夜爽爽| 免费精品国产| 美女视频黄免费的久久| 99pao成人国产永久免费视频| 久久99久久人婷婷精品综合| 欧美一级精品| 国产精品欧美大片| 国产视频一区三区| 国产不卡av一区二区| 美女国产精品| 欧美成人a交片免费看| 蜜桃久久久久久| 欧美日韩尤物久久| 欧美交a欧美精品喷水| 老牛国产精品一区的观看方式| 国产成人精品一区二区免费看京| 免费精品视频在线| 日韩在线不卡| 国产精品一区二区三区av| 中文精品在线| 都市激情国产精品| 国产亚洲观看| 喷白浆一区二区| 99tv成人| 精品国产不卡| 日本久久一区| 久久xxxx精品视频| 91精品国产调教在线观看| 美腿丝袜在线亚洲一区| 麻豆91精品| 欧美午夜精品一区二区三区电影| 久久97久久97精品免视看秋霞| 日韩一区二区三区高清在线观看| 激情欧美日韩一区| 日韩在线高清| 精品美女视频| 日本不卡在线视频| 老牛国产精品一区的观看方式| 99视频精品全国免费| 国产伊人久久| 欧美国产先锋| 欧美日一区二区三区在线观看国产免 | 麻豆国产精品777777在线| 婷婷久久免费视频| 99热免费精品| 99久久精品费精品国产| 日本不卡免费高清视频在线| 精品免费视频| 美女高潮久久久| 国产精品v日韩精品v欧美精品网站| 一本综合精品| 视频一区免费在线观看| 99在线精品免费视频九九视| 亚洲成av在线| 亚洲日本网址| 少妇精品导航| 久久精品国产亚洲夜色av网站 | 桃色一区二区| 福利在线免费视频| 日韩成人免费| av综合电影网站| 日韩一区二区三区免费播放| 水蜜桃久久夜色精品一区| 精品入口麻豆88视频| 久久尤物视频| 精品国产18久久久久久二百| 国产一区二区三区四区| 激情中国色综合| 福利视频一区| av一区在线| 五月婷婷亚洲| 国产一区导航| 亚洲综合丁香| 天堂av在线一区| 在线一区二区三区视频| 亚洲91网站| 欧美日韩va| 精品视频国产| 日韩欧美看国产| 激情六月综合| 久久国产精品久久久久久电车| 日韩影院在线观看| 亚洲+小说+欧美+激情+另类| 久久精品72免费观看| 另类综合日韩欧美亚洲| 久久毛片亚洲| 女人av一区| 手机精品视频在线观看| 亚洲精品乱码| 久久中文在线| 久久久久99| 亚洲一区av| 久久激情五月婷婷| 国际精品欧美精品| 久久中文字幕av一区二区不卡| 亚洲综合欧美| 国产精品一区二区免费福利视频 | 国产中文欧美日韩在线| 四虎国产精品免费观看| 秋霞影视一区二区三区| 免费国产自久久久久三四区久久 | 日本vs亚洲vs韩国一区三区二区| 国产日韩欧美| 亚洲成人不卡| 免费看精品久久片| 美女高潮久久久| 欧美日韩国产在线观看网站 | 日本特黄久久久高潮| 精品国产午夜| 日韩视频一区| 国产亚洲精品美女久久 | 亚洲二区三区不卡| 日韩av一二三| 欧美精品资源| 日韩精品亚洲aⅴ在线影院| 国产一区国产二区国产三区| 99成人超碰| 午夜久久av | 国产一区二区中文| 日韩av在线免费观看不卡| 欧美国产一级| 蜜桃一区二区三区在线| 韩国一区二区三区视频| 欧美精品一区二区三区精品| 日韩高清电影一区| 成人国产精品久久| 蜜桃91丨九色丨蝌蚪91桃色| 精品欧美视频| 亚洲一二av| 性欧美videohd高精| 日本不卡视频在线| 尤物tv在线精品| 久久av资源| 日韩在线一二三区| av高清一区| 国产精品视频一区视频二区| 伊人久久亚洲影院| 国产91在线精品| 中文字幕一区二区三区四区久久| 91欧美在线| 日韩av午夜在线观看| 蜜臀久久99精品久久一区二区 | 蜜桃视频欧美| 国产一区二区三区不卡av| 日韩精品一二三区| 欧洲亚洲一区二区三区|