一、Mybatis-generator-gui

下载地址:https://github.com/LittlePageProgram/mybatis-generator-gui.git

使用方法:填写相关项,点击生成

注意项:

1.有关EntityExample,需要拖进mapper层

2.有关修改XML配置信息,相应的example也需要进行调整到mapper层

案例:

service层

package com.littlepage.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import com.littlepage.entity.User;
import com.littlepage.mapper.UserExample;
import com.littlepage.mapper.UserMapper; @Service
public class UserService { @Autowired
UserMapper userMapper; public List<User> selectAll() { UserExample example=new UserExample();
example.createCriteria(); return userMapper.selectByExample(example); } public void add() {
UserExample example=new UserExample();
userMapper.deleteByExample(example);
} public boolean selectByLoginNameAndPassword(String name,String password) {
UserExample example=new UserExample();
System.out.println(name);
System.out.println(password);
example.createCriteria().andNameEqualTo(name).andPasswordEqualTo(password);
List<User> li=userMapper.selectByExample(example);
System.out.println(li);
return li.size()!=0 ;
}
}

二、PageHelper 一个好用的分页插件

public List<User> selectAll(int pageNum,int pageSize) {
PageHelper.startPage(pageNum, pageSize);
UserExample example=new UserExample();
example.createCriteria(); return userMapper.selectByExample(example); }

快速传值分页,这个原理运用了AOP编程

三、前后端分离

理论:

后端仅仅提供接口,前端进行获取数据和进行跳转。

优点:

1、对服务器的压力减小到最小

2、后台错误不会直接反映到前台,错误接秒较为友好

3、前后台各尽其职可以最大程度的减少开发难度。

实现:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<link rel="stylesheet" href="/css/bootstrap.min.css" />
<script src="/js/jquery.min.js"></script>
<script src="/js/bootstrap.min.js"></script>
<script>
$(function (){
$("#login_btn").click(function (){
var loginName=$('#loginName').val();
var password=$('#password').val();
if(loginName==''||password==''){
$('#tip').html('用户名密码不能为空');
$('#tip').css('color','red');
return false;
}else{
var url='/account/validateAccount';
var args={loginName:loginName,password:password}; $.post(url,args,function(data){
if(data=='success'){
window.location.href='/account/success';
}else{
$('#tip').html('密码错误');
$('#tip').css('color','red');
}
console.log(data);
})
return false;
}
})
})
</script>
<body>
<div align="middle">
<br />
<br />
<hr/>
<br />
<div align="middle">
<h3>登录界面</h3>
</div>
<br />
<br />
<form action="/account/validateAccount" method="post">
<input type="text" placeholder="用户名" id="loginName" /><br /><br />
<input type="password" placeholder="密码" id="password" /><br /><br />
<div><span id="tip"></span></div><br />
<button id="login_btn" type="submit" >登录</button>
</form>
</div>
</body>
</html>

HTML页面

package com.littlepage.controller;

import java.util.List;

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.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody; import com.littlepage.entity.User;
import com.littlepage.service.UserService; @Controller
@RequestMapping("/account")
public class AccountController { @Autowired
UserService userService; @RequestMapping("/login")
public String loginPage() {
return "login";
} @RequestMapping("/validateAccount")
@ResponseBody
public String list(@RequestParam("loginName")String loginName,@RequestParam("password")String password) {
if(userService.selectByLoginNameAndPassword(loginName, password)) {
return "success";
}else {
return "false";
} } @RequestMapping("/success")
public String successPage() {
return "account/success";
} @RequestMapping("/list")
@ResponseBody
public List<User> list() {
return userService.selectAll(2, 2);
}
}

控制器

四、权限实现

package com.littlepage.filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Component; @WebFilter(urlPatterns = "/*")
@Component
public class AccountFilter implements Filter { private final String[] IGNORE_URI= {"index","css","js"}; @Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest httpReq=(HttpServletRequest)request;
HttpServletResponse httpRes=(HttpServletResponse)response; //1.从session找Account对象
//找到就全部放行
//找不到就执行2 //1.判断URI是不是在Ignore列表里,在就放行
String uri=httpReq.getRequestURI(); for (String string : IGNORE_URI) {
if(uri.contains(string)) {
System.out.println("contains");
chain.doFilter(request, response);
}
}
} @Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("启动权限filter");
}
}

SpringBootMybatis02 mybatis-generator-gui|pageHelper|前后端分离|Filter权限实现的更多相关文章

  1. vue项目实践-前后端分离关于权限的思路

    前后端分离后权限的思路 最近看到许多关于权限的思路,但好像都是使用动态加载路由的方式,现在也分享下我在项目中使用的解决方案. 前后端分离关于权限的处理每个人都不一样,根据项目选择制定合适的方案就好 我 ...

  2. 基于spring security 实现前后端分离项目权限控制

    前后端分离的项目,前端有菜单(menu),后端有API(backendApi),一个menu对应的页面有N个API接口来支持,本文介绍如何基于spring security实现前后端的同步权限控制. ...

  3. Springboot + Vue + shiro 实现前后端分离、权限控制

    本文总结自实习中对项目对重构.原先项目采用Springboot+freemarker模版,开发过程中觉得前端逻辑写的实在恶心,后端Controller层还必须返回Freemarker模版的ModelA ...

  4. Spring Boot + Vue + Shiro 实现前后端分离、权限控制

    本文总结自实习中对项目的重构.原先项目采用Springboot+freemarker模版,开发过程中觉得前端逻辑写的实在恶心,后端Controller层还必须返回Freemarker模版的ModelA ...

  5. 基于 Spring Security 的前后端分离的权限控制系统

    话不多说,入正题.一个简单的权限控制系统需要考虑的问题如下: 权限如何加载 权限匹配规则 登录 1.  引入maven依赖 1 <?xml version="1.0" enc ...

  6. Kitty基于Spring Boot、Spring Cloud、Vue.js、Element实现前后端分离的权限管理系统

    源码地址:https://gitee.com/liuge1988/kitty 软件架构 后端架构 开发环境 IDE : eclipse 4.x JDK : JDK1.8.x Maven : Maven ...

  7. 前后端分离djangorestframework——权限组件

    权限permissions 权限验证必须要在认证之后验证 权限组件也不用多说,读了源码你就很清楚了,跟认证组件很类似 具体的源码就不展示,自己去读吧,都在这里: 局部权限 设置model表,其中的ty ...

  8. 前后端分离进行权限管理之后端API返回菜单及权限信息(三)

    一.动态菜单API的生成 1.API #菜单信息 url(r'^menus$', views.MenuModelView.as_view({"get": "list&qu ...

  9. 从壹开始前后端分离[.NetCore] 37 ║JWT完美实现权限与接口的动态分配

    缘起 本文已经有了对应的管理后台,地址:https://github.com/anjoy8/Blog.Admin 哈喽大家好呀!又过去一周啦,这些天小伙伴们有没有学习呀,已经有一周没有更新文章了,不过 ...

随机推荐

  1. mysql 5.7安装方法

    yum方式安装rpm包形式,安装mysql的方法: 方法一: 使用yum方式,下载后离线安装mysql的安装包 安装前,先使用命令查看,确定系统未安装mysql安装包.彻底清除之前安装的mysql安装 ...

  2. Retrofitting Analysis

    Retrofitting Analysis To figure out the process of retrofitting[1] objective updating, we do the fol ...

  3. linux_Ubuntu相对路径和绝对路径

    绝对路径 从/目录开始描述的路径为绝对路径,如: cd /home ls /usr 相对路径 从当前位置开始描述的路径为相对路径,如: cd ../../ ls abc/def .和.. 每个目录下都 ...

  4. demo-website配置记录

    demo-website环境配置, 主要是下载flask相关的模块: 1. python安装的是2.7版本. 2. pip install flask pip install flask-httpau ...

  5. JavaScript中二进制与10进制互相转换

    webpack打包生成的代码中涉及了一些二进制位与的操作, 所以今天来学习一下JavaScript中的二进制与十进制转换操作吧 十进制转二进制: var num = 100 num.toString( ...

  6. 运行上次失败用例(--lf 和 --ff)

    前言 “80%的bug集中在20%的模块,越是容易出现bug的模块,bug是越改越多“平常我们做手工测试的时候,比如用100个用例需要执行,其中10个用例失败了,当开发修复完bug后,我们一般是重点测 ...

  7. simple vimrc for python

    "显示行数,设置软回车和缩进还有语法set numberset expandtabset tabstop=8set shiftwidth=4set softtabstop=4set auto ...

  8. 安装mangodb

    1.配置yum源 [root@www ~]# cat /etc/yum.repos.d/mongodb-org-3.4.repo [mongodb-org-3.4] name=MongoDB Repo ...

  9. k8s中使用harbor

    参考地址:https://www.cnblogs.com/wayneiscoming/p/7716238.html .在harbor的ui界面上注册一个账号 姓名:zihao 全名:zhuzihao ...

  10. java:Mybatis框架3(二级缓存,延时和积极加载,SSI(Ibatis)集成,SSM集成)

    1.二级缓存: 需要导入二级缓存jar包: mybatis03: ehcache.xml: <ehcache xmlns:xsi="http://www.w3.org/2001/XML ...