当前位置:   article > 正文

ssm框架+Layui整合案例_ssh+layui完整实例

ssh+layui完整实例

业余写得整合案例 想学习的可以来参考 初来乍到

准备工作

Layui+tomcat+mysql

目录

1 实现的效果图

 2 实现代码

2.0 前端代码

 2.1 登录页面login.jsp

2.2 登录后跳转的主页面 main.jap

web.xml 这里面主要是加载tomcat的时候被加载的配置文件

4 pom.xml jar包和依赖

2.3 后端代码 

2.3.1 resources中的代码

2.3.1.1 接口的映射文件 mapper文件里的

2.3.1.2 spring 和springmvc 映射文件

2.3.2 java代码

1 controller层代码

2 dao层

3 entity 实现类层

​ 

4service 业务层 (业务层是一个接口 所有有一个实现类)

5 util (这里面主要是用来渲染页面的时候一些规范)

6 interceptor 拦截器


1 实现的效果图

 

 

 

 

 

 

 

 

 2 实现代码

2.0 前端代码

 2.1 登录页面login.jsp

  1. <%--
  2. Created by IntelliJ IDEA.
  3. User: 旧巷的常青藤
  4. Date: 2021/12/10
  5. Time: 14:57
  6. To change this template use File | Settings | File Templates.
  7. --%>
  8. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  9. <html>
  10. <head>
  11. <title>登录页面</title>
  12. <%-- 引入外部jar包--%>
  13. <link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/layui/css/layui.css"/>
  14. <script type="text/javascript" src="${pageContext.request.contextPath}/layui/layui.js"></script>
  15. <style>
  16. #top{
  17. background: url("img/4.png") no-repeat;
  18. background-size: cover;
  19. }
  20. </style>
  21. </head>
  22. <body id="top">
  23. <div style="width: 400px;height: 300px ;margin: auto;margin-top: 15%;">
  24. <form class="layui-form" action="">
  25. <div class="layui-form-item">
  26. <label class="layui-form-label"><strong>账号</strong></label>
  27. <div class="layui-input-block">
  28. <input type="text" name="username" lay-verify="required" autocomplete="off" placeholder="请输入账号" class="layui-input">
  29. </div>
  30. </div>
  31. <div class="layui-form-item">
  32. <label class="layui-form-label"><strong>密码</strong></label>
  33. <div class="layui-input-block">
  34. <input type="password" name="password" lay-verify="pass" placeholder="请输入密码" autocomplete="off" class="layui-input">
  35. </div>
  36. </div>
  37. <div class="layui-form-item">
  38. <div class="layui-input-block">
  39. <button type="button" class="layui-btn" lay-submit="" lay-filter="demo1">登录</button>
  40. <button type="button" class="layui-btn layui-btn-primary">重置</button>
  41. </div>
  42. </div>
  43. </form>
  44. </div>
  45. </body>
  46. <script>
  47. layui.use(['form'], function(){
  48. var form = layui.form
  49. ,layer = layui.layer
  50. ,$=layui.jquery;
  51. //自定义验证规则
  52. form.verify({
  53. pass: [
  54. /^[\S]{6,12}$/
  55. ,'密码必须6到12位,且不能出现空格'
  56. ]
  57. });
  58. //监听提交
  59. form.on('submit(demo1)', function(data){
  60. $.ajax({
  61. url:"${pageContext.request.contextPath}/login/login"
  62. ,type:"post"
  63. ,data:data.field
  64. ,success:function (result) {
  65. if(result.code===2000){
  66. layer.msg(result.msg,{icon:1})
  67. location.href="${pageContext.request.contextPath}/main/main"
  68. }else {
  69. layer.msg(result.msg,{icon:5})
  70. }
  71. }
  72. ,dataType:"json"
  73. })
  74. return false;
  75. });
  76. });
  77. </script>
  78. </html>

2.2 登录后跳转的主页面 main.jap

  1. <%--
  2. Created by IntelliJ IDEA.
  3. User: 旧巷的常青藤
  4. Date: 2021/12/10
  5. Time: 15:53
  6. To change this template use File | Settings | File Templates.
  7. --%>
  8. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  9. <html>
  10. <head>
  11. <title>Title</title>
  12. <link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/layui/css/layui.css"/>
  13. <script type="text/javascript" src="${pageContext.request.contextPath}/layui/layui.js"></script>
  14. </head>
  15. <form class="layui-form" action="">
  16. <div class="layui-form-item">
  17. <div class="layui-inline">
  18. <div class="layui-input-inline">
  19. <input type="text" name="loginName" placeholder="请输入员工姓名" autocomplete="off" class="layui-input">
  20. </div>
  21. </div>
  22. <div class="layui-inline">
  23. <div class="layui-input-inline">
  24. <input type="text" name="longinPass" placeholder="请输入密码" autocomplete="off" class="layui-input">
  25. </div>
  26. </div>
  27. <div class="layui-inline">
  28. <div class="layui-input-inline">
  29. <button type="button" class="layui-btn" lay-submit="" lay-filter="search">搜索</button>
  30. </div>
  31. </div>
  32. </div>
  33. </form>
  34. <body>
  35. <table class="layui-hide" id="test" lay-filter="test"></table>
  36. <script type="text/html" id="toolbarDemo">
  37. <div class="layui-btn-container">
  38. <button class="layui-btn layui-btn-sm" lay-event="add">添加</button>
  39. <button class="layui-btn layui-btn-sm" lay-event="deleteAll">批量删除</button>
  40. <button class="layui-btn layui-btn-sm" lay-event="isAll">验证是否全选</button>
  41. </div>
  42. </script>
  43. <script type="text/html" id="barDemo">
  44. <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
  45. <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
  46. </script>
  47. <form class="layui-form" style="display: none" action="" id="uid" lay-filter="userform">
  48. <input type="text" style="display: none" name="userid"/>
  49. <div class="layui-form-item">
  50. <label class="layui-form-label">账号</label>
  51. <div class="layui-input-block">
  52. <input type="text" name="loginname" lay-verify="title" autocomplete="off" placeholder="请输入标题" class="layui-input">
  53. </div>
  54. </div>
  55. <div class="layui-form-item">
  56. <label class="layui-form-label">密码</label>
  57. <div class="layui-input-block">
  58. <input type="text" name="longinpass" lay-verify="title" autocomplete="off" placeholder="请输入标题" class="layui-input">
  59. </div>
  60. </div>
  61. <div class="layui-form-item">
  62. <label class="layui-form-label">手机号</label>
  63. <div class="layui-input-block">
  64. <input type="text" name="phone" lay-verify="required" placeholder="请输入" autocomplete="off" class="layui-input">
  65. </div>
  66. </div>
  67. <div class="layui-form-item">
  68. <label class="layui-form-label">职位</label>
  69. <div class="layui-input-block">
  70. <input type="text" name="realname" lay-verify="title" autocomplete="off" placeholder="请输入标题" class="layui-input">
  71. </div>
  72. </div>
  73. <div class="layui-form-item">
  74. <div class="layui-input-block">
  75. <button type="button" class="layui-btn" lay-submit="" lay-filter="demo1">提交修改</button>
  76. <button type="reset" class="layui-btn layui-btn-primary">重置</button>
  77. </div>
  78. </div>
  79. </form>
  80. <script>
  81. layui.use('table', function(){
  82. var form = layui.form;
  83. var table = layui.table;
  84. var $ =layui.jquery;
  85. //添加表单的搜索监听事件
  86. form.on('submit(search)',function(data){
  87. //表格数据重新渲染。
  88. table.reload('test',{
  89. page: {
  90. curr: 1 //重新从第 1 页开始
  91. },
  92. where: { //按照什么进行查找
  93. "loginName": data.field.loginName,
  94. "longinPass": data.field.longinPass
  95. }
  96. })
  97. });
  98. table.render({
  99. elem: '#test'
  100. ,url:'${pageContext.request.contextPath}/userInfo/list'
  101. ,toolbar: '#toolbarDemo' //开启头部工具栏,并为其绑定左侧模板
  102. ,title: '书籍数据表'
  103. ,cols: [[
  104. {type: 'checkbox', fixed: 'left'}
  105. ,{field:'userid', title:'用户编号', sort: true}
  106. ,{field:'loginname', title:'用户名', edit: 'text'}
  107. ,{field:'longinpass', title:'密码',edit: 'text', sort: true}
  108. ,{field:'phone', title:'手机号', width:100}
  109. ,{field:'realname', title:'职位'}
  110. ,{fixed: 'right', title:'操作', toolbar: '#barDemo', width:150}
  111. ]]
  112. ,page: true
  113. ,limit:5
  114. ,limits:[2,5,10,15]
  115. });
  116. //监听行工具事件
  117. table.on('tool(test)', function(obj){
  118. var data = obj.data;
  119. //console.log(obj)
  120. if(obj.event === 'del'){
  121. layer.confirm('真的删除行么', function(index){
  122. $.ajax({
  123. url:"${pageContext.request.contextPath}/userInfo/delete",
  124. data:{"userid":data.userid},
  125. type: "post",
  126. success:function (rel) {
  127. if (rel.code===2000){
  128. layer.closeAll()
  129. layer.msg(rel.msg,{icon:1})
  130. table.reload("test")
  131. }
  132. },
  133. dataType:"json"
  134. })
  135. });
  136. } else if(obj.event === 'edit') {
  137. layer.open({
  138. type: 1
  139. , id: 'layerDemo'//防止重复弹出
  140. , content: $("#uid")
  141. , shade: 0 //不显示遮罩
  142. });
  143. }
  144. form.val("userform",data)
  145. });
  146. //监听提交
  147. form.on('submit(demo1)', function(data){
  148. $.ajax({
  149. url:"${pageContext.request.contextPath}/userInfo/update",
  150. data:data.field,
  151. type:"post",
  152. success:function (rel) {
  153. layer.closeAll()
  154. layer.msg(rel.msg,{icon: 1})
  155. table.reload("test")
  156. },
  157. dataType: "json"
  158. })
  159. });
  160. //头工具栏事件
  161. table.on('toolbar(test)', function(obj){
  162. var checkStatus = table.checkStatus(obj.config.id);
  163. var event = obj.event;
  164. $("#uid")[0].reset();
  165. if (event==="add"){
  166. layer.open({
  167. type: 1
  168. ,content:$("#uid")
  169. ,shade: 0 //不显示遮罩
  170. });
  171. }else if (event==="deleteAll"){
  172. var data = checkStatus.data;
  173. if (data.length<=0){
  174. layer.msg("请选择你要删除的行")
  175. }else {
  176. var str =""
  177. for (var i=0;i<data.length;i++){
  178. str=str+","+data[i].userid
  179. }
  180. str=str.substring(1,str.length)
  181. let strings = str.split(",");
  182. console.log(strings)
  183. $.ajax({
  184. url:"${pageContext.request.contextPath}/userInfo/deleteAll"
  185. ,data:{"userid":str}
  186. ,success:function (rel) {
  187. if (rel.code===2000){
  188. layer.closeAll()
  189. layer.msg(rel.msg,{icon:1})
  190. table.reload("test")
  191. }
  192. },
  193. dataType: "json"
  194. })
  195. }
  196. }
  197. });
  198. })
  199. </script>
  200. </body>
  201. </html>

web.xml 这里面主要是加载tomcat的时候被加载的配置文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
  5. version="4.0">
  6. <servlet>
  7. <servlet-name>springmvc</servlet-name>
  8. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  9. <init-param>
  10. <param-name>contextConfigLocation</param-name>
  11. <param-value>classpath:springmvc.xml</param-value>
  12. </init-param>
  13. </servlet>
  14. <servlet-mapping>
  15. <servlet-name>springmvc</servlet-name>
  16. <url-pattern>/</url-pattern>
  17. </servlet-mapping>
  18. <listener>
  19. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  20. </listener>
  21. <context-param>
  22. <param-name>contextConfigLocation</param-name>
  23. <param-value>classpath:spring.xml</param-value>
  24. </context-param>
  25. </web-app>

4 pom.xml jar包和依赖

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <groupId>com.lc</groupId>
  6. <artifactId>12-10ssm</artifactId>
  7. <version>1.0-SNAPSHOT</version>
  8. <packaging>war</packaging>
  9. <dependencies>
  10. <!--分页-->
  11. <dependency>
  12. <groupId>com.github.pagehelper</groupId>
  13. <artifactId>pagehelper</artifactId>
  14. <version>5.1.11</version>
  15. </dependency>
  16. <dependency>
  17. <groupId>junit</groupId>
  18. <artifactId>junit</artifactId>
  19. <version>4.13.2</version>
  20. </dependency>
  21. <dependency>
  22. <groupId>org.springframework</groupId>
  23. <artifactId>spring-tx</artifactId>
  24. <version>5.2.9.RELEASE</version>
  25. </dependency>
  26. <dependency>
  27. <groupId>org.springframework</groupId>
  28. <artifactId>spring-jdbc</artifactId>
  29. <version>5.2.9.RELEASE</version>
  30. </dependency>
  31. <!--spring和mybatis整合的依赖-->
  32. <dependency>
  33. <groupId>org.mybatis</groupId>
  34. <artifactId>mybatis-spring</artifactId>
  35. <version>2.0.6</version>
  36. </dependency>
  37. <!--druid连接池-->
  38. <dependency>
  39. <groupId>com.alibaba</groupId>
  40. <artifactId>druid</artifactId>
  41. <version>1.2.4</version>
  42. </dependency>
  43. <!--springmvc-->
  44. <dependency>
  45. <groupId>org.springframework</groupId>
  46. <artifactId>spring-webmvc</artifactId>
  47. <version>5.2.9.RELEASE</version>
  48. </dependency>
  49. <!--mybatis的依赖-->
  50. <dependency>
  51. <groupId>org.mybatis</groupId>
  52. <artifactId>mybatis</artifactId>
  53. <version>3.5.6</version>
  54. </dependency>
  55. <!--mysql的依赖-->
  56. <dependency>
  57. <groupId>mysql</groupId>
  58. <artifactId>mysql-connector-java</artifactId>
  59. <version>8.0.26</version>
  60. </dependency>
  61. <!--lombok-->
  62. <dependency>
  63. <groupId>org.projectlombok</groupId>
  64. <artifactId>lombok</artifactId>
  65. <version>1.18.22</version>
  66. </dependency>
  67. <!--jackson-->
  68. <dependency>
  69. <groupId>com.fasterxml.jackson.core</groupId>
  70. <artifactId>jackson-databind</artifactId>
  71. <version>2.12.4</version>
  72. </dependency>
  73. <!--servlet和jsp-->
  74. <dependency>
  75. <groupId>javax.servlet</groupId>
  76. <artifactId>servlet-api</artifactId>
  77. <version>2.5</version>
  78. </dependency>
  79. <dependency>
  80. <groupId>javax.servlet.jsp</groupId>
  81. <artifactId>jsp-api</artifactId>
  82. <version>2.2</version>
  83. </dependency>
  84. <!--log4j-->
  85. <dependency>
  86. <groupId>log4j</groupId>
  87. <artifactId>log4j</artifactId>
  88. <version>1.2.17</version>
  89. </dependency>
  90. <dependency>
  91. <groupId>org.slf4j</groupId>
  92. <artifactId>slf4j-log4j12</artifactId>
  93. <version>1.7.30</version>
  94. </dependency>
  95. </dependencies>
  96. </project>

 

2.3 后端代码 

这里我主要用的是ssm框架  不会的 可以去看一下我的博客 里面详细的介绍的有

2.3.1 resources中的代码

这里面主要是接口方法的映射文件

2.3.1.1 接口的映射文件 mapper文件里的

这个可以自动生成 不懂得 可以去看我之前的博客  这里我就不多说了 

2.3.1.2 spring 和springmvc 映射文件

 spring.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. 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">
  6. <!--包扫描:业务层service:-->
  7. <context:component-scan base-package="com.lc.service"/>
  8. <!--定义数据源:
  9. https://blog.csdn.net/qq_35038153/article/details/77353689
  10. DBCP:
  11. C3P0:
  12. Proxool:
  13. BoneCP:
  14. DRUID: 现在企业用的比较多
  15. driverClassName = com.mysql.cj.jdbc.Driver
  16. driver=com.mysql.cj.jdbc.Driver
  17. url=jdbc:mysql:///student?serverTimezone=GMT&useSSL=false
  18. username=root
  19. password=密码
  20. #初始化连接数量#
  21. initialSize = 5
  22. #最大连接数量
  23. maxACtive = 10
  24. #等待时间 3秒
  25. maxWait = 3000
  26. -->
  27. <bean id="ds" class="com.alibaba.druid.pool.DruidDataSource">
  28. <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
  29. <property name="url" value="jdbc:mysql://localhost:3306/jdbc?serverTimezone=Asia/Shanghai"/>
  30. <property name="username" value="root"/>
  31. <property name="password" value="2001"/>
  32. <!--初始化链接数量 根据你的项目评估-->
  33. <property name="initialSize" value="5"/>
  34. <!-- 最大连接数-->
  35. <property name="maxActive" value="10"/>
  36. <!-- 等待时间 毫秒数-->
  37. <property name="maxWait" value="5000"/>
  38. </bean>
  39. <!--spring把mybatis配置文件的内容封装到SqlSessionFactorybean类中。-->
  40. <bean id="session" class="org.mybatis.spring.SqlSessionFactoryBean">
  41. <property name="dataSource" ref="ds"/>
  42. <property name="mapperLocations" value="classpath:mapper/*.xml"/>
  43. <property name="plugins">
  44. <array>
  45. <bean class="com.github.pagehelper.PageInterceptor">
  46. <property name="properties">
  47. <!--使用下面的方式配置参数,一行配置一个 -->
  48. <value>
  49. params=value1
  50. </value>
  51. </property>
  52. </bean>
  53. </array>
  54. </property>
  55. </bean>
  56. <!--为指定dao接口生成代理实现类。交于spring容器来管理dao接口的代理实现类对象。-->
  57. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  58. <!--basePackage:为那些包下的dao接口生成代理实现类。-->
  59. <property name="basePackage" value="com.lc.dao"/>
  60. </bean>
  61. </beans>

springmvc.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:mvc="http://www.springframework.org/schema/mvc"
  6. 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">
  7. <!--包扫描-->
  8. <context:component-scan base-package="com.lc.controller"/>
  9. <!--特殊注解-->
  10. <mvc:annotation-driven/>
  11. <!--静态资源放行-->
  12. <mvc:default-servlet-handler/>
  13. <!--视图解析器-->
  14. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  15. <property name="prefix" value="/WEB-INF/views/"/>
  16. <property name="suffix" value=".jsp"/>
  17. </bean>
  18. <!--声明拦截器-->
  19. <mvc:interceptors>
  20. <mvc:interceptor>
  21. <mvc:mapping path="/**"/>
  22. <mvc:exclude-mapping path="/login/login"/>
  23. <mvc:exclude-mapping path="/img/4.png"/>
  24. <bean class="com.lc.interceptor.Myinterceptor"></bean>
  25. </mvc:interceptor>
  26. </mvc:interceptors>
  27. </beans>

日志文件 

  1. ### 设置###
  2. log4j.rootLogger = debug,stdout,D,E
  3. ### 输出信息到控制抬 ###
  4. log4j.appender.stdout = org.apache.log4j.ConsoleAppender
  5. log4j.appender.stdout.Target = System.out
  6. log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
  7. log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
  8. ### 输出DEBUG 级别以上的日志到=E://logs/error.log ###
  9. log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
  10. log4j.appender.D.File = F://logs/log.log
  11. log4j.appender.D.Append = true
  12. log4j.appender.D.Threshold = DEBUG
  13. log4j.appender.D.layout = org.apache.log4j.PatternLayout
  14. log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
  15. ### 输出ERROR 级别以上的日志到=E://logs/error.log ###
  16. log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
  17. log4j.appender.E.File =F://logs/error.log
  18. log4j.appender.E.Append = true
  19. log4j.appender.E.Threshold = ERROR
  20. log4j.appender.E.layout = org.apache.log4j.PatternLayout
  21. log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

2.3.2 java代码

1 controller层代码

 pagecontroller

  1. package com.lc.controller;
  2. import org.springframework.stereotype.Controller;
  3. import org.springframework.web.bind.annotation.RequestMapping;
  4. /**
  5. * @program: 12-10ssm
  6. * @description:
  7. * @author: IX亿少女的梦
  8. * @create: 2021-12-10 15:52
  9. **/
  10. @Controller
  11. @RequestMapping("main")
  12. public class PageController {
  13. @RequestMapping("main")
  14. public String main(){
  15. return "mian";
  16. }
  17. }

UserController

  1. package com.lc.controller;
  2. import com.lc.service.UserService;
  3. import com.lc.util.CommonResult;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.stereotype.Controller;
  6. import org.springframework.web.bind.annotation.RequestMapping;
  7. import org.springframework.web.bind.annotation.ResponseBody;
  8. /**
  9. * @program: 12-10ssm
  10. * @description:
  11. * @author: IX亿少女的梦
  12. * @create: 2021-12-10 15:46
  13. **/
  14. @Controller
  15. @RequestMapping("login")
  16. public class UserController {
  17. @Autowired
  18. private UserService userService;
  19. @RequestMapping("login")
  20. @ResponseBody
  21. public CommonResult login(String username,String password){
  22. CommonResult nameAndPass = userService.findNameAndPass(username, password);
  23. return nameAndPass;
  24. }
  25. }

UserinfoController

  1. package com.lc.controller;
  2. import com.lc.entity.User;
  3. import com.lc.entity.Userinfo;
  4. import com.lc.service.UserInfoService;
  5. import com.lc.util.CommonResult;
  6. import com.lc.util.TableYaui;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.stereotype.Controller;
  9. import org.springframework.web.bind.annotation.RequestMapping;
  10. import org.springframework.web.bind.annotation.ResponseBody;
  11. /**
  12. * @program: 12-10ssm
  13. * @description:
  14. * @author: IX亿少女的梦
  15. * @create: 2021-12-10 18:45
  16. **/
  17. @Controller
  18. @RequestMapping("userInfo")
  19. public class UserInfoController {
  20. @Autowired
  21. private UserInfoService userInfoService;
  22. @RequestMapping("list")
  23. @ResponseBody
  24. public TableYaui list(int page,int limit,String loginName,String longinPass){
  25. TableYaui byName = userInfoService.findByName(page, limit, loginName, longinPass);
  26. return byName;
  27. }
  28. @RequestMapping("delete")
  29. @ResponseBody
  30. public CommonResult delete(int userid){
  31. CommonResult delete = userInfoService.delete(userid);
  32. return delete;
  33. }
  34. @RequestMapping("update")
  35. @ResponseBody
  36. public CommonResult update(Userinfo userinfo){
  37. if (userinfo.getUserid()!=null){
  38. CommonResult update = userInfoService.update(userinfo);
  39. return update;
  40. }else {
  41. CommonResult insert = userInfoService.insert(userinfo);
  42. return insert;
  43. }
  44. }
  45. @RequestMapping("deleteAll")
  46. @ResponseBody
  47. public CommonResult delete(String userid){
  48. CommonResult commonResult = userInfoService.deleteByPrimaryKey(userid);
  49. return commonResult;
  50. }
  51. }

2 dao层

这里面自动生成出来的  但是我在里面新添加了方法注意看

userdao

  1. package com.lc.dao;
  2. import com.lc.entity.User;
  3. import org.apache.ibatis.annotations.Param;
  4. public interface UserDao {
  5. int deleteByPrimaryKey(Integer id);
  6. int insert(User record);
  7. int insertSelective(User record);
  8. User selectByPrimaryKey(Integer id);
  9. int updateByPrimaryKeySelective(User record);
  10. int updateByPrimaryKey(User record);
  11. User findNameAndPass(@Param("username") String username, @Param("password") String password);
  12. }

 userinfodao

  1. package com.lc.dao;
  2. import com.lc.entity.Userinfo;
  3. import com.lc.util.CommonResult;
  4. import org.apache.ibatis.annotations.Param;
  5. import java.util.List;
  6. public interface UserinfoDao {
  7. int deleteByPrimaryKey(Integer userid);
  8. int insert(Userinfo record);
  9. int insertSelective(Userinfo record);
  10. Userinfo selectByPrimaryKey(Integer userid);
  11. int updateByPrimaryKeySelective(Userinfo record);
  12. int updateByPrimaryKey(Userinfo record);
  13. List<Userinfo> findByName(@Param("loginName") String loginName, @Param("longinPass") String longinPass);
  14. }

3 entity 实现类层

 

user

  1. package com.lc.entity;
  2. import lombok.Data;
  3. import java.io.Serializable;
  4. /**
  5. * user
  6. * @author
  7. */
  8. @Data
  9. public class User implements Serializable {
  10. /**
  11. * 鐢ㄦ埛id
  12. */
  13. private Integer id;
  14. /**
  15. * 鐧诲綍鍚?
  16. */
  17. private String username;
  18. private String password;
  19. /**
  20. * 真实姓名
  21. */
  22. private String realname;
  23. private Integer status;
  24. private static final long serialVersionUID = 1L;
  25. }

 userinfo

  1. package com.lc.entity;
  2. import lombok.Data;
  3. import java.io.Serializable;
  4. /**
  5. * userinfo
  6. * @author
  7. */
  8. @Data
  9. public class Userinfo implements Serializable {
  10. /**
  11. * 用户id
  12. */
  13. private Integer userid;
  14. /**
  15. * 登录名
  16. */
  17. private String loginname;
  18. /**
  19. * 登录密码
  20. */
  21. private String longinpass;
  22. /**
  23. * 手机号
  24. */
  25. private String phone;
  26. /**
  27. * 真实姓名
  28. */
  29. private String realname;
  30. private static final long serialVersionUID = 1L;
  31. }

4service 业务层 (业务层是一个接口 所有有一个实现类)

UserService
  1. package com.lc.service;
  2. import com.lc.util.CommonResult;
  3. /**
  4. * @program: 12-10ssm
  5. * @description:
  6. * @author: IX亿少女的梦
  7. * @create: 2021-12-10 15:10
  8. **/
  9. public interface UserService {
  10. public CommonResult findNameAndPass(String username, String password);
  11. }
UserInfoService
  1. package com.lc.service;
  2. import com.lc.entity.Userinfo;
  3. import com.lc.util.CommonResult;
  4. import com.lc.util.TableYaui;
  5. /**
  6. * @program: 12-10ssm
  7. * @description:
  8. * @author: IX亿少女的梦
  9. * @create: 2021-12-10 18:40
  10. **/
  11. public interface UserInfoService {
  12. public TableYaui findByName(int page, int limit, String loginName, String longinPass);
  13. public CommonResult delete(int userid);
  14. public CommonResult update(Userinfo userinfo);
  15. public CommonResult insert(Userinfo userinfo);
  16. public CommonResult deleteByPrimaryKey(String userid);
  17. }
UserServiceImpl
  1. package com.lc.service.userserviceimpl;
  2. import com.lc.dao.UserDao;
  3. import com.lc.entity.User;
  4. import com.lc.service.UserService;
  5. import com.lc.util.CommonResult;
  6. import com.lc.util.WebUtil;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.stereotype.Service;
  9. /**
  10. * @program: 12-10ssm
  11. * @description:
  12. * @author: IX亿少女的梦
  13. * @create: 2021-12-10 15:28
  14. **/
  15. @Service("userService")
  16. public class UserServiceImpl implements UserService {
  17. @Autowired
  18. private UserDao userDao;
  19. public CommonResult findNameAndPass(String username, String password) {
  20. User user = userDao.findNameAndPass(username, password);
  21. if (user==null){
  22. return new CommonResult(5000,"账号或密码错误",null);
  23. }
  24. if (user.getStatus()==2){
  25. return new CommonResult(5000,"该账户已经被限制",null);
  26. }
  27. WebUtil.getSession().setAttribute("user",user);
  28. return new CommonResult(2000,"登录成功",null);
  29. }
  30. }
UserInfoServiceImpl
  1. package com.lc.service.userserviceimpl;
  2. import com.github.pagehelper.PageHelper;
  3. import com.github.pagehelper.PageInfo;
  4. import com.lc.dao.UserinfoDao;
  5. import com.lc.entity.Userinfo;
  6. import com.lc.service.UserInfoService;
  7. import com.lc.util.CommonResult;
  8. import com.lc.util.TableYaui;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.stereotype.Service;
  11. import java.util.List;
  12. /**
  13. * @program: 12-10ssm
  14. * @description:
  15. * @author: IX亿少女的梦
  16. * @create: 2021-12-10 18:42
  17. **/
  18. @Service("userInfoService")
  19. public class UserInfoServiceImpl implements UserInfoService {
  20. @Autowired
  21. private UserinfoDao userinfoDao;
  22. public TableYaui findByName(int page, int limit, String loginName, String longinPass) {
  23. PageHelper.startPage(page,limit); // 开启分页
  24. List<Userinfo> byName = userinfoDao.findByName(loginName, longinPass);
  25. PageInfo<Userinfo> userinfoPageInfo = new PageInfo<Userinfo>(byName);
  26. return new TableYaui(0,"",userinfoPageInfo.getTotal(),userinfoPageInfo.getList());
  27. }
  28. public CommonResult delete(int id) {
  29. int delete = userinfoDao.deleteByPrimaryKey(id);
  30. if (delete>-2){
  31. return new CommonResult(2000,"删除成功",null);
  32. }else {
  33. return new CommonResult(5000,"删除失败",null);
  34. }
  35. }
  36. public CommonResult update(Userinfo userinfo) {
  37. int i = userinfoDao.updateByPrimaryKey(userinfo);
  38. if (i>-2){
  39. return new CommonResult(2000,"修改成功",null);
  40. }else {
  41. return new CommonResult(5000,"修改失败",null);
  42. }
  43. }
  44. public CommonResult insert(Userinfo userinfo) {
  45. int insert = userinfoDao.insert(userinfo);
  46. if (insert>-2){
  47. return new CommonResult(2000,"添加成功",null);
  48. }else {
  49. return new CommonResult(5000,"添加失败",null);
  50. }
  51. }
  52. public CommonResult deleteByPrimaryKey(String userid) {
  53. String[] split = userid.split(",");
  54. int i=0;
  55. for (String s : split) {
  56. i = userinfoDao.deleteByPrimaryKey(Integer.parseInt(s));
  57. }
  58. if (i>-2){
  59. return new CommonResult(2000,"批量删除成功",null);
  60. }else {
  61. return new CommonResult(5000,"批量删除失败",null);
  62. }
  63. }
  64. }

5 util (这里面主要是用来渲染页面的时候一些规范)

WebUtil
  1. package com.lc.util;
  2. import org.springframework.web.context.request.RequestContextHolder;
  3. import org.springframework.web.context.request.ServletRequestAttributes;
  4. import javax.servlet.http.HttpServletRequest;
  5. import javax.servlet.http.HttpSession;
  6. /**
  7. * @program: 12-10ssm1
  8. * @description:
  9. * @author: IX亿少女的梦
  10. * @create: 2021-12-11 09:10
  11. **/
  12. public class WebUtil {
  13. /***
  14. * 根据request获取session
  15. * @return
  16. */
  17. public static HttpSession getSession(){
  18. HttpSession session = getRequest().getSession();
  19. return session;
  20. }
  21. /***
  22. * 获取request
  23. * @return
  24. */
  25. public static HttpServletRequest getRequest(){
  26. HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
  27. return request;
  28. }
  29. }
TableYaui
  1. package com.lc.util;
  2. import lombok.AllArgsConstructor;
  3. import lombok.Data;
  4. import lombok.NoArgsConstructor;
  5. /**
  6. * @program: 12-10ssm
  7. * @description:
  8. * @author: IX亿少女的梦
  9. * @create: 2021-12-10 16:26
  10. **/
  11. @Data
  12. @NoArgsConstructor
  13. @AllArgsConstructor
  14. public class TableYaui {
  15. private int code;
  16. private String msg;
  17. private long count;
  18. private Object data;
  19. }
CommonResult
  1. package com.lc.util;
  2. import lombok.AllArgsConstructor;
  3. import lombok.Data;
  4. import lombok.NoArgsConstructor;
  5. /**
  6. * @program: 12-10ssm
  7. * @description:
  8. * @author: IX亿少女的梦
  9. * @create: 2021-12-10 15:35
  10. **/
  11. @Data
  12. @NoArgsConstructor
  13. @AllArgsConstructor
  14. public class CommonResult {
  15. private int code;
  16. private String msg;
  17. private Object data;
  18. }

6 interceptor 拦截器

  1. package com.lc.interceptor;
  2. import org.springframework.web.servlet.HandlerInterceptor;
  3. import javax.servlet.http.HttpServletRequest;
  4. import javax.servlet.http.HttpServletResponse;
  5. /**
  6. * @program: 12-10ssm1
  7. * @description:
  8. * @author: IX亿少女的梦
  9. * @create: 2021-12-11 09:09
  10. * 定义一个拦截器 实现HandlerInterceptor 从写 preHandle方法
  11. *
  12. **/
  13. public class Myinterceptor implements HandlerInterceptor {
  14. public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
  15. Object user = request.getSession().getAttribute("user");
  16. if (user!=null){
  17. return true;
  18. }else {
  19. response.sendRedirect(request.getContextPath()+"/login.jsp");
  20. return false;
  21. }
  22. }
  23. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/476512
推荐阅读
  

闽ICP备14008679号