业余写得整合案例 想学习的可以来参考 初来乍到
准备工作
Layui+tomcat+mysql
目录
web.xml 这里面主要是加载tomcat的时候被加载的配置文件
2.3.1.2 spring 和springmvc 映射文件
4service 业务层 (业务层是一个接口 所有有一个实现类)
1 实现的效果图
2 实现代码
2.0 前端代码
2.1 登录页面login.jsp
<%--
Created by IntelliJ IDEA.
User: 旧巷的常青藤
Date: 2021/12/10
Time: 14:57
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>登录页面</title>
<%-- 引入外部jar包--%>
<link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/layui/css/layui.css"/>
<script type="text/javascript" src="${pageContext.request.contextPath}/layui/layui.js"></script>
<style>
#top{
background: url("img/4.png") no-repeat;
background-size: cover;
}
</style>
</head>
<body id="top">
<div style="width: 400px;height: 300px ;margin: auto;margin-top: 15%;">
<form class="layui-form" action="">
<div class="layui-form-item">
<label class="layui-form-label"><strong>账号</strong></label>
<div class="layui-input-block">
<input type="text" name="username" lay-verify="required" autocomplete="off" placeholder="请输入账号" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><strong>密码</strong></label>
<div class="layui-input-block">
<input type="password" name="password" lay-verify="pass" placeholder="请输入密码" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button type="button" class="layui-btn" lay-submit="" lay-filter="demo1">登录</button>
<button type="button" class="layui-btn layui-btn-primary">重置</button>
</div>
</div>
</form>
</div>
</body>
<script>
layui.use(['form'], function(){
var form = layui.form
,layer = layui.layer
,$=layui.jquery;
//自定义验证规则
form.verify({
pass: [
/^[\S]{6,12}$/
,'密码必须6到12位,且不能出现空格'
]
});
//监听提交
form.on('submit(demo1)', function(data){
$.ajax({
url:"${pageContext.request.contextPath}/login/login"
,type:"post"
,data:data.field
,success:function (result) {
if(result.code===2000){
layer.msg(result.msg,{icon:1})
location.href="${pageContext.request.contextPath}/main/main"
}else {
layer.msg(result.msg,{icon:5})
}
}
,dataType:"json"
})
return false;
});
});
</script>
</html>
2.2 登录后跳转的主页面 main.jap
<%--
Created by IntelliJ IDEA.
User: 旧巷的常青藤
Date: 2021/12/10
Time: 15:53
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/layui/css/layui.css"/>
<script type="text/javascript" src="${pageContext.request.contextPath}/layui/layui.js"></script>
</head>
<form class="layui-form" action="">
<div class="layui-form-item">
<div class="layui-inline">
<div class="layui-input-inline">
<input type="text" name="loginName" placeholder="请输入员工姓名" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<div class="layui-input-inline">
<input type="text" name="longinPass" placeholder="请输入密码" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<div class="layui-input-inline">
<button type="button" class="layui-btn" lay-submit="" lay-filter="search">搜索</button>
</div>
</div>
</div>
</form>
<body>
<table class="layui-hide" id="test" lay-filter="test"></table>
<script type="text/html" id="toolbarDemo">
<div class="layui-btn-container">
<button class="layui-btn layui-btn-sm" lay-event="add">添加</button>
<button class="layui-btn layui-btn-sm" lay-event="deleteAll">批量删除</button>
<button class="layui-btn layui-btn-sm" lay-event="isAll">验证是否全选</button>
</div>
</script>
<script type="text/html" id="barDemo">
<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
</script>
<form class="layui-form" style="display: none" action="" id="uid" lay-filter="userform">
<input type="text" style="display: none" name="userid"/>
<div class="layui-form-item">
<label class="layui-form-label">账号</label>
<div class="layui-input-block">
<input type="text" name="loginname" lay-verify="title" autocomplete="off" placeholder="请输入标题" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">密码</label>
<div class="layui-input-block">
<input type="text" name="longinpass" lay-verify="title" autocomplete="off" placeholder="请输入标题" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">手机号</label>
<div class="layui-input-block">
<input type="text" name="phone" lay-verify="required" placeholder="请输入" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">职位</label>
<div class="layui-input-block">
<input type="text" name="realname" lay-verify="title" autocomplete="off" placeholder="请输入标题" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button type="button" class="layui-btn" lay-submit="" lay-filter="demo1">提交修改</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</div>
</form>
<script>
layui.use('table', function(){
var form = layui.form;
var table = layui.table;
var $ =layui.jquery;
//添加表单的搜索监听事件
form.on('submit(search)',function(data){
//表格数据重新渲染。
table.reload('test',{
page: {
curr: 1 //重新从第 1 页开始
},
where: { //按照什么进行查找
"loginName": data.field.loginName,
"longinPass": data.field.longinPass
}
})
});
table.render({
elem: '#test'
,url:'${pageContext.request.contextPath}/userInfo/list'
,toolbar: '#toolbarDemo' //开启头部工具栏,并为其绑定左侧模板
,title: '书籍数据表'
,cols: [[
{type: 'checkbox', fixed: 'left'}
,{field:'userid', title:'用户编号', sort: true}
,{field:'loginname', title:'用户名', edit: 'text'}
,{field:'longinpass', title:'密码',edit: 'text', sort: true}
,{field:'phone', title:'手机号', width:100}
,{field:'realname', title:'职位'}
,{fixed: 'right', title:'操作', toolbar: '#barDemo', width:150}
]]
,page: true
,limit:5
,limits:[2,5,10,15]
});
//监听行工具事件
table.on('tool(test)', function(obj){
var data = obj.data;
//console.log(obj)
if(obj.event === 'del'){
layer.confirm('真的删除行么', function(index){
$.ajax({
url:"${pageContext.request.contextPath}/userInfo/delete",
data:{"userid":data.userid},
type: "post",
success:function (rel) {
if (rel.code===2000){
layer.closeAll()
layer.msg(rel.msg,{icon:1})
table.reload("test")
}
},
dataType:"json"
})
});
} else if(obj.event === 'edit') {
layer.open({
type: 1
, id: 'layerDemo'//防止重复弹出
, content: $("#uid")
, shade: 0 //不显示遮罩
});
}
form.val("userform",data)
});
//监听提交
form.on('submit(demo1)', function(data){
$.ajax({
url:"${pageContext.request.contextPath}/userInfo/update",
data:data.field,
type:"post",
success:function (rel) {
layer.closeAll()
layer.msg(rel.msg,{icon: 1})
table.reload("test")
},
dataType: "json"
})
});
//头工具栏事件
table.on('toolbar(test)', function(obj){
var checkStatus = table.checkStatus(obj.config.id);
var event = obj.event;
$("#uid")[0].reset();
if (event==="add"){
layer.open({
type: 1
,content:$("#uid")
,shade: 0 //不显示遮罩
});
}else if (event==="deleteAll"){
var data = checkStatus.data;
if (data.length<=0){
layer.msg("请选择你要删除的行")
}else {
var str =""
for (var i=0;i<data.length;i++){
str=str+","+data[i].userid
}
str=str.substring(1,str.length)
let strings = str.split(",");
console.log(strings)
$.ajax({
url:"${pageContext.request.contextPath}/userInfo/deleteAll"
,data:{"userid":str}
,success:function (rel) {
if (rel.code===2000){
layer.closeAll()
layer.msg(rel.msg,{icon:1})
table.reload("test")
}
},
dataType: "json"
})
}
}
});
})
</script>
</body>
</html>
web.xml 这里面主要是加载tomcat的时候被加载的配置文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring.xml</param-value>
</context-param>
</web-app>
4 pom.xml jar包和依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.lc</groupId>
<artifactId>12-10ssm</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<!--分页-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.11</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.2.9.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.9.RELEASE</version>
</dependency>
<!--spring和mybatis整合的依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.6</version>
</dependency>
<!--druid连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.4</version>
</dependency>
<!--springmvc-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.9.RELEASE</version>
</dependency>
<!--mybatis的依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>
<!--mysql的依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
</dependency>
<!--jackson-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.4</version>
</dependency>
<!--servlet和jsp-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
</dependency>
<!--log4j-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.30</version>
</dependency>
</dependencies>
</project>
2.3 后端代码
这里我主要用的是ssm框架 不会的 可以去看一下我的博客 里面详细的介绍的有
2.3.1 resources中的代码
这里面主要是接口方法的映射文件
2.3.1.1 接口的映射文件 mapper文件里的
这个可以自动生成 不懂得 可以去看我之前的博客 这里我就不多说了
2.3.1.2 spring 和springmvc 映射文件
spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
<!--包扫描:业务层service:-->
<context:component-scan base-package="com.lc.service"/>
<!--定义数据源:
https://blog.csdn.net/qq_35038153/article/details/77353689
DBCP:
C3P0:
Proxool:
BoneCP:
DRUID: 现在企业用的比较多
driverClassName = com.mysql.cj.jdbc.Driver
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql:///student?serverTimezone=GMT&useSSL=false
username=root
password=密码
#初始化连接数量#
initialSize = 5
#最大连接数量
maxACtive = 10
#等待时间 3秒
maxWait = 3000
-->
<bean id="ds" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/jdbc?serverTimezone=Asia/Shanghai"/>
<property name="username" value="root"/>
<property name="password" value="2001"/>
<!--初始化链接数量 根据你的项目评估-->
<property name="initialSize" value="5"/>
<!-- 最大连接数-->
<property name="maxActive" value="10"/>
<!-- 等待时间 毫秒数-->
<property name="maxWait" value="5000"/>
</bean>
<!--spring把mybatis配置文件的内容封装到SqlSessionFactorybean类中。-->
<bean id="session" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="ds"/>
<property name="mapperLocations" value="classpath:mapper/*.xml"/>
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<!--使用下面的方式配置参数,一行配置一个 -->
<value>
params=value1
</value>
</property>
</bean>
</array>
</property>
</bean>
<!--为指定dao接口生成代理实现类。交于spring容器来管理dao接口的代理实现类对象。-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!--basePackage:为那些包下的dao接口生成代理实现类。-->
<property name="basePackage" value="com.lc.dao"/>
</bean>
</beans>
springmvc.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!--包扫描-->
<context:component-scan base-package="com.lc.controller"/>
<!--特殊注解-->
<mvc:annotation-driven/>
<!--静态资源放行-->
<mvc:default-servlet-handler/>
<!--视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
<!--声明拦截器-->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<mvc:exclude-mapping path="/login/login"/>
<mvc:exclude-mapping path="/img/4.png"/>
<bean class="com.lc.interceptor.Myinterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
</beans>
日志文件
### 设置###
log4j.rootLogger = debug,stdout,D,E
### 输出信息到控制抬 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
### 输出DEBUG 级别以上的日志到=E://logs/error.log ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = F://logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
### 输出ERROR 级别以上的日志到=E://logs/error.log ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =F://logs/error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
2.3.2 java代码
1 controller层代码
pagecontroller
package com.lc.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* @program: 12-10ssm
* @description:
* @author: IX亿少女的梦
* @create: 2021-12-10 15:52
**/
@Controller
@RequestMapping("main")
public class PageController {
@RequestMapping("main")
public String main(){
return "mian";
}
}
UserController
package com.lc.controller;
import com.lc.service.UserService;
import com.lc.util.CommonResult;
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.ResponseBody;
/**
* @program: 12-10ssm
* @description:
* @author: IX亿少女的梦
* @create: 2021-12-10 15:46
**/
@Controller
@RequestMapping("login")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("login")
@ResponseBody
public CommonResult login(String username,String password){
CommonResult nameAndPass = userService.findNameAndPass(username, password);
return nameAndPass;
}
}
UserinfoController
package com.lc.controller;
import com.lc.entity.User;
import com.lc.entity.Userinfo;
import com.lc.service.UserInfoService;
import com.lc.util.CommonResult;
import com.lc.util.TableYaui;
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.ResponseBody;
/**
* @program: 12-10ssm
* @description:
* @author: IX亿少女的梦
* @create: 2021-12-10 18:45
**/
@Controller
@RequestMapping("userInfo")
public class UserInfoController {
@Autowired
private UserInfoService userInfoService;
@RequestMapping("list")
@ResponseBody
public TableYaui list(int page,int limit,String loginName,String longinPass){
TableYaui byName = userInfoService.findByName(page, limit, loginName, longinPass);
return byName;
}
@RequestMapping("delete")
@ResponseBody
public CommonResult delete(int userid){
CommonResult delete = userInfoService.delete(userid);
return delete;
}
@RequestMapping("update")
@ResponseBody
public CommonResult update(Userinfo userinfo){
if (userinfo.getUserid()!=null){
CommonResult update = userInfoService.update(userinfo);
return update;
}else {
CommonResult insert = userInfoService.insert(userinfo);
return insert;
}
}
@RequestMapping("deleteAll")
@ResponseBody
public CommonResult delete(String userid){
CommonResult commonResult = userInfoService.deleteByPrimaryKey(userid);
return commonResult;
}
}
2 dao层
这里面自动生成出来的 但是我在里面新添加了方法注意看
userdao
package com.lc.dao;
import com.lc.entity.User;
import org.apache.ibatis.annotations.Param;
public interface UserDao {
int deleteByPrimaryKey(Integer id);
int insert(User record);
int insertSelective(User record);
User selectByPrimaryKey(Integer id);
int updateByPrimaryKeySelective(User record);
int updateByPrimaryKey(User record);
User findNameAndPass(@Param("username") String username, @Param("password") String password);
}
userinfodao
package com.lc.dao;
import com.lc.entity.Userinfo;
import com.lc.util.CommonResult;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface UserinfoDao {
int deleteByPrimaryKey(Integer userid);
int insert(Userinfo record);
int insertSelective(Userinfo record);
Userinfo selectByPrimaryKey(Integer userid);
int updateByPrimaryKeySelective(Userinfo record);
int updateByPrimaryKey(Userinfo record);
List<Userinfo> findByName(@Param("loginName") String loginName, @Param("longinPass") String longinPass);
}
3 entity 实现类层
user
package com.lc.entity;
import lombok.Data;
import java.io.Serializable;
/**
* user
* @author
*/
@Data
public class User implements Serializable {
/**
* 鐢ㄦ埛id
*/
private Integer id;
/**
* 鐧诲綍鍚?
*/
private String username;
private String password;
/**
* 真实姓名
*/
private String realname;
private Integer status;
private static final long serialVersionUID = 1L;
}
userinfo
package com.lc.entity;
import lombok.Data;
import java.io.Serializable;
/**
* userinfo
* @author
*/
@Data
public class Userinfo implements Serializable {
/**
* 用户id
*/
private Integer userid;
/**
* 登录名
*/
private String loginname;
/**
* 登录密码
*/
private String longinpass;
/**
* 手机号
*/
private String phone;
/**
* 真实姓名
*/
private String realname;
private static final long serialVersionUID = 1L;
}
4service 业务层 (业务层是一个接口 所有有一个实现类)
UserService
package com.lc.service;
import com.lc.util.CommonResult;
/**
* @program: 12-10ssm
* @description:
* @author: IX亿少女的梦
* @create: 2021-12-10 15:10
**/
public interface UserService {
public CommonResult findNameAndPass(String username, String password);
}
UserInfoService
package com.lc.service;
import com.lc.entity.Userinfo;
import com.lc.util.CommonResult;
import com.lc.util.TableYaui;
/**
* @program: 12-10ssm
* @description:
* @author: IX亿少女的梦
* @create: 2021-12-10 18:40
**/
public interface UserInfoService {
public TableYaui findByName(int page, int limit, String loginName, String longinPass);
public CommonResult delete(int userid);
public CommonResult update(Userinfo userinfo);
public CommonResult insert(Userinfo userinfo);
public CommonResult deleteByPrimaryKey(String userid);
}
UserServiceImpl
package com.lc.service.userserviceimpl;
import com.lc.dao.UserDao;
import com.lc.entity.User;
import com.lc.service.UserService;
import com.lc.util.CommonResult;
import com.lc.util.WebUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @program: 12-10ssm
* @description:
* @author: IX亿少女的梦
* @create: 2021-12-10 15:28
**/
@Service("userService")
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
public CommonResult findNameAndPass(String username, String password) {
User user = userDao.findNameAndPass(username, password);
if (user==null){
return new CommonResult(5000,"账号或密码错误",null);
}
if (user.getStatus()==2){
return new CommonResult(5000,"该账户已经被限制",null);
}
WebUtil.getSession().setAttribute("user",user);
return new CommonResult(2000,"登录成功",null);
}
}
UserInfoServiceImpl
package com.lc.service.userserviceimpl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.lc.dao.UserinfoDao;
import com.lc.entity.Userinfo;
import com.lc.service.UserInfoService;
import com.lc.util.CommonResult;
import com.lc.util.TableYaui;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @program: 12-10ssm
* @description:
* @author: IX亿少女的梦
* @create: 2021-12-10 18:42
**/
@Service("userInfoService")
public class UserInfoServiceImpl implements UserInfoService {
@Autowired
private UserinfoDao userinfoDao;
public TableYaui findByName(int page, int limit, String loginName, String longinPass) {
PageHelper.startPage(page,limit); // 开启分页
List<Userinfo> byName = userinfoDao.findByName(loginName, longinPass);
PageInfo<Userinfo> userinfoPageInfo = new PageInfo<Userinfo>(byName);
return new TableYaui(0,"",userinfoPageInfo.getTotal(),userinfoPageInfo.getList());
}
public CommonResult delete(int id) {
int delete = userinfoDao.deleteByPrimaryKey(id);
if (delete>-2){
return new CommonResult(2000,"删除成功",null);
}else {
return new CommonResult(5000,"删除失败",null);
}
}
public CommonResult update(Userinfo userinfo) {
int i = userinfoDao.updateByPrimaryKey(userinfo);
if (i>-2){
return new CommonResult(2000,"修改成功",null);
}else {
return new CommonResult(5000,"修改失败",null);
}
}
public CommonResult insert(Userinfo userinfo) {
int insert = userinfoDao.insert(userinfo);
if (insert>-2){
return new CommonResult(2000,"添加成功",null);
}else {
return new CommonResult(5000,"添加失败",null);
}
}
public CommonResult deleteByPrimaryKey(String userid) {
String[] split = userid.split(",");
int i=0;
for (String s : split) {
i = userinfoDao.deleteByPrimaryKey(Integer.parseInt(s));
}
if (i>-2){
return new CommonResult(2000,"批量删除成功",null);
}else {
return new CommonResult(5000,"批量删除失败",null);
}
}
}
5 util (这里面主要是用来渲染页面的时候一些规范)
WebUtil
package com.lc.util;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
/**
* @program: 12-10ssm1
* @description:
* @author: IX亿少女的梦
* @create: 2021-12-11 09:10
**/
public class WebUtil {
/***
* 根据request获取session
* @return
*/
public static HttpSession getSession(){
HttpSession session = getRequest().getSession();
return session;
}
/***
* 获取request
* @return
*/
public static HttpServletRequest getRequest(){
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
return request;
}
}
TableYaui
package com.lc.util;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @program: 12-10ssm
* @description:
* @author: IX亿少女的梦
* @create: 2021-12-10 16:26
**/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class TableYaui {
private int code;
private String msg;
private long count;
private Object data;
}
CommonResult
package com.lc.util;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @program: 12-10ssm
* @description:
* @author: IX亿少女的梦
* @create: 2021-12-10 15:35
**/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class CommonResult {
private int code;
private String msg;
private Object data;
}
6 interceptor 拦截器
package com.lc.interceptor;
import org.springframework.web.servlet.HandlerInterceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* @program: 12-10ssm1
* @description:
* @author: IX亿少女的梦
* @create: 2021-12-11 09:09
* 定义一个拦截器 实现HandlerInterceptor 从写 preHandle方法
*
**/
public class Myinterceptor implements HandlerInterceptor {
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
Object user = request.getSession().getAttribute("user");
if (user!=null){
return true;
}else {
response.sendRedirect(request.getContextPath()+"/login.jsp");
return false;
}
}
}