根据用户类型跳转页面(基于mybatis)

本文介绍了一种基于MyBatis、SpringBoot和MySQL的技术方案,通过数据库查询来判断用户角色并实现不同页面间的跳转。具体包括表设计、Mapper、Service及Controller层的实现细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于mybatis,springboot,mysql实现根据用户类型进行跳转

通过获取id的方式匹配角色名称实现跳转
注:这个功能使用spring-security或shiro其实更加容易实现

- 数据库
设计两个表,约束role表id为外键,即account表的role_id
account表:
account表
role表:
role表

  • mapper层
@Repository
@Mapper
@Component
public interface AccountMapper {
    @Select("select role from role where id=#{id}")
    public String getAccountRoleById(@Param("id") Integer id);
;
}
  • service层
@Service
public class AccountService {

    @Autowired
    public AccountMapper accountMapper;
    public String getUserRoleById(Integer id){
        return accountMapper.getAccountRoleById(id);
    }
}
  • controller层
    这里的pagejump是登录页面跳转的操作,若实现需在实际的login(登录)的controller内加上 return “pagejump”.
    此外这块代码实际上在我之前的登录检测写过,附上loginController
@Controller
public class LoginController {
    @Autowired
    public LoginService loginService;
    @RequestMapping(value = "login",method = {RequestMethod.POST,RequestMethod.GET})
    public String login(){
        return "login";
    }
    @RequestMapping(value = "/loginPage",method = {RequestMethod.POST,RequestMethod.GET})
    public String login(HttpServletRequest request, HttpSession session,Map<String,Object> map,Model model)
    {
        String name = request.getParameter("name");
        String password = request.getParameter("password");
        Account tname = loginService.login(name, password);
        session.setAttribute("tname", tname);
        if (tname == null) {
            map.put("msg", "请输入正确的账号和密码");
            return "login";
        } else
        return "redirect:/pagejump";
    }

    }
@Controller

public class PageJumpController {
    @Autowired
   AccountService accountService;
    @RequestMapping(value = "/pagejump", method = {RequestMethod.POST,RequestMethod.GET})
    public String pagejump(HttpServletRequest request,HttpSession session){
        Account object = (Account) session.getAttribute("tname");
        Account loginUser = object;
        Integer id = loginUser.getRole_id();
        String role = accountService.getUserRoleById(id);
        {
            if (role.equals("sysmanager")) {
                return "redirect:/system";
            }
            if (role.equals("newsmanager")) {
                return "redirect:/news";
            }
            return "redirect:/index";
        }
    }

}
  • 实体层就不进行赘述了,生成相应getter,setter方法即可

写在最后:对于登录验证,权限管理这些使用spring-security还是较为实用的,当然此方法也可以实现简单的role角色判断进入不同页面,作为初学者的手写思考。有什么不对的地方希望大佬多多指点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值