一.环境搭建
jdk安装与配置
Tomcat安装与配置
Maven安装与配置
Intellij IDEA安装
lombok插件安装
具体方法自行百度,以下只给出推荐
JDK1.8下载与安装完整教程_java1.8下载_小曾同学.com的博客-CSDN博客
【Tomcat】史上最全下载、安装配置及使用教程,(2022最新..建议收藏,教学)附Tomcat常见报错解决方法_tomcat安装及配置教程_神兽汤姆猫的博客-CSDN博客
maven的下载与安装教程(超详细)_格子衫111的博客-CSDN博客
二.测试环境 1.创建项目目录 1.创建一个Maven项目。
2.在main目录中创建java目录
com.inspur.bean
com.inspur.controller
com.inspur.mapper
com.inspur.service
3.在resourses下创建
applicationContext.xml
dp.properties
mybatis-config.xml
springMVC.xml
log4j.properties
/mappers目录(如果不使用注解的话)
4.在webapp目录下创建以下目录
/css目录
/js目录
/images目录
/pages目录
2.配置文件 1.修改pom.xml文件,导入下列依赖。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 <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/maven-v4_0_0.xsd" > <modelVersion > 4.0.0</modelVersion > <groupId > com.inpure</groupId > <artifactId > ZyyMms</artifactId > <packaging > war</packaging > <version > 1.0-SNAPSHOT</version > <name > ZyyMms Maven Webapp</name > <url > http://maven.apache.org</url > <properties > <project.build.sourceEncoding > UTF-8</project.build.sourceEncoding > <maven.compiler.source > 1.8</maven.compiler.source > <maven.compiler.target > 1.8</maven.compiler.target > <spring.version > 5.2.11.RELEASE</spring.version > <logback.version > 1.2.3</logback.version > </properties > <dependencies > <dependency > <groupId > junit</groupId > <artifactId > junit</artifactId > <version > 3.8.1</version > <scope > test</scope > </dependency > <dependency > <groupId > org.springframework</groupId > <artifactId > spring-core</artifactId > <version > ${spring.version}</version > </dependency > <dependency > <groupId > org.springframework</groupId > <artifactId > spring-webmvc</artifactId > <version > ${spring.version}</version > </dependency > <dependency > <groupId > org.springframework</groupId > <artifactId > spring-web</artifactId > <version > ${spring.version}</version > </dependency > <dependency > <groupId > org.springframework</groupId > <artifactId > spring-context</artifactId > <version > ${spring.version}</version > </dependency > <dependency > <groupId > org.springframework</groupId > <artifactId > spring-aop</artifactId > <version > ${spring.version}</version > </dependency > <dependency > <groupId > org.springframework</groupId > <artifactId > spring-beans</artifactId > <version > ${spring.version}</version > </dependency > <dependency > <groupId > org.springframework</groupId > <artifactId > spring-tx</artifactId > <version > ${spring.version}</version > </dependency > <dependency > <groupId > org.springframework</groupId > <artifactId > spring-aspects</artifactId > <version > ${spring.version}</version > </dependency > <dependency > <groupId > org.aspectj</groupId > <artifactId > aspectjweaver</artifactId > <version > 1.9.6</version > </dependency > <dependency > <groupId > org.springframework</groupId > <artifactId > spring-jdbc</artifactId > <version > ${spring.version}</version > </dependency > <dependency > <groupId > org.springframework</groupId > <artifactId > spring-test</artifactId > <version > ${spring.version}</version > <scope > test</scope > </dependency > <dependency > <groupId > org.mybatis</groupId > <artifactId > mybatis</artifactId > <version > 3.5.5</version > </dependency > <dependency > <groupId > org.mybatis</groupId > <artifactId > mybatis-spring</artifactId > <version > 2.0.5</version > </dependency > <dependency > <groupId > ch.qos.logback</groupId > <artifactId > logback-core</artifactId > <version > ${logback.version}</version > </dependency > <dependency > <groupId > ch.qos.logback</groupId > <artifactId > logback-classic</artifactId > <version > ${logback.version}</version > </dependency > <dependency > <groupId > ch.qos.logback</groupId > <artifactId > logback-access</artifactId > <version > ${logback.version}</version > </dependency > <dependency > <groupId > org.slf4j</groupId > <artifactId > slf4j-api</artifactId > <version > 1.7.30</version > </dependency > <dependency > <groupId > com.alibaba</groupId > <artifactId > fastjson</artifactId > <version > 1.2.75</version > </dependency > <dependency > <groupId > com.alibaba</groupId > <artifactId > druid</artifactId > <version > 1.2.4</version > </dependency > <dependency > <groupId > mysql</groupId > <artifactId > mysql-connector-java</artifactId > <version > 5.1.1</version > </dependency > <dependency > <groupId > org.apache.commons</groupId > <artifactId > commons-lang3</artifactId > <version > 3.10</version > </dependency > <dependency > <groupId > org.projectlombok</groupId > <artifactId > lombok</artifactId > <version > 1.18.12</version > <scope > provided</scope > </dependency > <dependency > <groupId > javax.servlet</groupId > <artifactId > javax.servlet-api</artifactId > <version > 4.0.1</version > <scope > provided</scope > </dependency > <dependency > <groupId > javax.servlet</groupId > <artifactId > jstl</artifactId > <version > 1.2</version > </dependency > <dependency > <groupId > junit</groupId > <artifactId > junit</artifactId > <version > 4.12</version > </dependency > <dependency > <groupId > commons-io</groupId > <artifactId > commons-io</artifactId > <version > 2.8.0</version > </dependency > <dependency > <groupId > commons-fileupload</groupId > <artifactId > commons-fileupload</artifactId > <version > 1.4</version > </dependency > <dependency > <groupId > org.springframework</groupId > <artifactId > spring-webmvc</artifactId > <version > ${spring.version}</version > </dependency > <dependency > <groupId > com.github.pagehelper</groupId > <artifactId > pagehelper</artifactId > <version > 5.3.0</version > </dependency > <dependency > <groupId > joda-time</groupId > <artifactId > joda-time</artifactId > <version > 2.10.1</version > </dependency > </dependencies > <build > <finalName > ZyyMms</finalName > <pluginManagement > <plugins > <plugin > <artifactId > maven-clean-plugin</artifactId > <version > 3.1.0</version > </plugin > <plugin > <artifactId > maven-resources-plugin</artifactId > <version > 3.0.2</version > </plugin > <plugin > <artifactId > maven-compiler-plugin</artifactId > <version > 3.8.0</version > </plugin > <plugin > <artifactId > maven-surefire-plugin</artifactId > <version > 2.22.1</version > </plugin > <plugin > <artifactId > maven-war-plugin</artifactId > <version > 3.2.2</version > </plugin > <plugin > <artifactId > maven-install-plugin</artifactId > <version > 2.5.2</version > </plugin > <plugin > <artifactId > maven-deploy-plugin</artifactId > <version > 2.8.2</version > </plugin > </plugins > </pluginManagement > </build > </project >
2.配置web.xml文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app > <display-name > Archetype Created Web Application</display-name > <context-param > <param-name > contextConfigLocation</param-name > <param-value > classpath:applicationContext.xml</param-value > </context-param > <filter > <filter-name > encodingFilter</filter-name > <filter-class > org.springframework.web.filter.CharacterEncodingFilter</filter-class > <init-param > <param-name > encoding</param-name > <param-value > UTF-8</param-value > </init-param > </filter > <filter-mapping > <filter-name > encodingFilter</filter-name > <url-pattern > /*</url-pattern > </filter-mapping > <listener > <listener-class > org.springframework.web.context.ContextLoaderListener</listener-class > </listener > <servlet > <servlet-name > dispatcherServlet</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 > dispatcherServlet</servlet-name > <url-pattern > /</url-pattern > </servlet-mapping > </web-app >
3.配置dp.properties
1 2 3 4 jdbc.driver =com.mysql.cj.jdbc.Driver jdbc.url =jdbc:mysql://localhost:3306/his?serverTimezone=UTC jdbc.username =root jdbc.password =root
4.配置applicationContext.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 <?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:tx ="http://www.springframework.org/schema/tx" xsi:schemaLocation ="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd" > <context:component-scan base-package ="com.inspur" > <context:exclude-filter type ="annotation" expression ="org.springframework.stereotype.Controller" /> </context:component-scan > <context:property-placeholder location ="classpath:db.properties" > </context:property-placeholder > <bean id ="dataSource" class ="com.alibaba.druid.pool.DruidDataSource" > <property name ="driverClassName" value ="${jdbc.driver}" /> <property name ="url" value ="${jdbc.url}" /> <property name ="username" value ="${jdbc.username}" /> <property name ="password" value ="${jdbc.password}" /> <property name ="maxActive" value ="100" /> <property name ="minIdle" value ="10" /> </bean > <bean id ="sqlSessionFactory" class ="org.mybatis.spring.SqlSessionFactoryBean" > <property name ="dataSource" ref ="dataSource" > </property > <property name ="configLocation" value ="classpath:mybatis-config.xml" > </property > <property name ="typeAliasesPackage" value ="com.inspur.bean" > </property > <property name ="plugins" > <list > <bean class ="com.github.pagehelper.PageInterceptor" > <property name ="properties" > <value > helperDialect=mysql </value > </property > </bean > </list > </property > </bean > <bean class ="org.mybatis.spring.mapper.MapperScannerConfigurer" > <property name ="basePackage" value ="com.inspur.mapper" > </property > <property name ="sqlSessionFactoryBeanName" value ="sqlSessionFactory" > </property > </bean > <bean id ="transactionManager" class ="org.springframework.jdbc.datasource.DataSourceTransactionManager" > <property name ="dataSource" ref ="dataSource" > </property > </bean > <tx:annotation-driven transaction-manager ="transactionManager" > </tx:annotation-driven > </beans >
5.mybatis-config.xml
1 2 3 4 5 6 7 8 9 10 11 12 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd" > <configuration > <settings > <setting name ="mapUnderscoreToCamelCase" value ="true" /> </settings > <mappers > <package name ="com.inspur.mapper" /> </mappers > </configuration >
6.springMVC.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 <?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 http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd" > <context:component-scan base-package ="com.inspur.controller" > </context:component-scan > <mvc:resources location ="/js/" mapping ="/js/**" > </mvc:resources > <mvc:resources location ="/css/" mapping ="/css/**" > </mvc:resources > <mvc:resources location ="/images/" mapping ="/images/**" > </mvc:resources > <mvc:resources location ="/pages/" mapping ="/pages/**" > </mvc:resources > <mvc:annotation-driven > </mvc:annotation-driven > <bean class ="org.springframework.web.servlet.view.InternalResourceViewResolver" > <property name ="viewClass" value ="org.springframework.web.servlet.view.JstlView" /> <property name ="prefix" value ="/pages/" > </property > <property name ="suffix" value =".jsp" > </property > </bean > </beans >
7.log4j.properties
1 2 3 4 5 6 7 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 =%d{ABSOLUTE} %5p [%t] %c{1}:%L - %m%n log4j.rootLogger =DEBUG, stdout
3.测试环境 1.在bean目录下创建User类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 package com.inspur.bean;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;@Data @NoArgsConstructor @AllArgsConstructor public class User { private Integer id; private String username; private String password; }
2.在mapper目录下创建UserMapper接口
1 2 3 4 5 6 7 8 9 10 11 12 package com.inspur.mapper;import com.inspur.bean.User;import org.apache.ibatis.annotations.Insert;import org.apache.ibatis.annotations.Mapper;@Mapper public interface UserMapper { @Insert("insert into user(username,password) values (#{username},#{password})") int save (User user) ; }
3.在service目录下创建UserService接口
1 2 3 4 5 6 7 8 package com.inspur.service;import com.inspur.bean.User;public interface UserService { public boolean save (User user) ; }
4.在service目录下创建impl目录并在该目录下创建UserServiceImpl类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 package com.inspur.service.impl;import com.inspur.bean.User;import com.inspur.mapper.UserMapper;import com.inspur.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import org.springframework.transaction.annotation.Transactional;@Service @Transactional public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public boolean save (User user) { System.out.println(user); return userMapper.save(user)>0 ; } }
5.修改index.jsp文件,创建一个表单
1 2 3 4 5 6 7 8 9 10 11 12 13 <%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %> <html> <body> <h2>Hello World!</h2> <form action="${pageContext.request.contextPath}/user/save" method="post" > 用户名<input type="text" name="username" ><br> 密码<input type="password" name="password" ><br> <input type="submit" value="注册" > </form> </body> </html>
6.在webapp/pages目录下创建success.jsp
1 2 3 4 5 6 7 8 9 <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> success </body> </html>
7.创建his数据库,并创建user表
1 2 3 4 5 6 create database hisCREATE TABLE user ( id int (11 ) , username varchar (30 ) , password varchar (30 ) ) DEFAULT CHARSET= utf8;
8.运行项目,插入数据成功即可。
三.项目开发 登录功能 1.创建一个扩展类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 @Data @AllArgsConstructor @NoArgsConstructor public class QueryExtends { private String id; private String name; private String password; private String role; }
创建一个mapper,查看是哪种用户并获取它的id,name,role
1 2 3 4 5 6 7 8 9 @Mapper public interface QueryExtendsMapper { @Select(" SELECT id, username, role, password FROM users WHERE username=#{name} AND PASSWORD =#{password} " + " UNION " + " SELECT id, name, role, password FROM member WHERE name=#{name} AND PASSWORD =#{password} " + " UNION " + " SELECT id, name, role, password FROM doctor WHERE name=#{name} AND PASSWORD =#{password} ") QueryExtends login (@Param(value = "name") String name, @Param(value = "password") String password) ; }
service层创建接口与实现类
1 2 3 4 public interface QueryExtendsService { QueryExtends login (String name,String password) ; }
1 2 3 4 5 6 7 8 9 10 @Service @Transactional public class QueryExtendsServiceImpl implements QueryExtendsService { @Autowired private QueryExtendsMapper queryExtendsMapper; @Override public QueryExtends login (String name, String password) { return queryExtendsMapper.login(name,password); } }
控制层
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 @Controller @RequestMapping("/") public class QueryExtendsController { @Autowired private QueryExtendsService queryExtendsService; @Autowired private UsersService usersService; @Autowired private MemberService memberService; @Autowired private DoctorService doctorService; @RequestMapping("login") public String login (String name, String password, HttpSession session) { QueryExtends queryExtends = queryExtendsService.login(name, password); if (queryExtends!=null ){ session.setAttribute("users" ,queryExtends); return "index" ; }else { return "login" ; } } @RequestMapping("/logout") public String logout (HttpSession session) { session.removeAttribute("users" ); return "login" ; } @PostMapping("updatepwd") public String updatepwd (String password1, String password2, String password3, HttpServletRequest request) { QueryExtends users = (QueryExtends) request.getSession().getAttribute("users" ); String message = "" ; if (password2.equals(password3)) { if (password1.equals(users.getPassword())) { if (Objects.equals(users.getRole(), "1" )) { usersService.updatePassword(users.getId(), password3); } else if (Objects.equals(users.getRole(), "2" )) { doctorService.updatePassword(users.getId(), password3); } else { memberService.updatePassword(users.getId(), password3); } } else { message = "原密码输入错误!" ; request.getSession().setAttribute("message" , message); return "userpwdupdate" ; } } else { message = "两次输入的密码不一致!" ; request.getSession().setAttribute("message" , message); return "userpwdupdate" ; } return "index" ; } }
创建过滤器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 public class LoginCheckFilter implements Filter { @Override public void init (FilterConfig filterConfig) throws ServletException { } @Override public void doFilter (ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request= (HttpServletRequest) servletRequest; HttpSession session= request.getSession(); Object users = session.getAttribute("users" ); if (users!= null ){ filterChain.doFilter(servletRequest,servletResponse); }else { String requestURI = request.getRequestURI(); if (requestURI.contains("login" )){ filterChain.doFilter(servletRequest,servletResponse); }else { request.getRequestDispatcher("/pages/login.jsp" ).forward(servletRequest,servletResponse); } } } }
在web.xml中配置过滤器
1 2 3 4 5 6 7 8 <filter > <filter-name > loginFilter</filter-name > <filter-class > com.inspur.filter.LoginCheckFilter</filter-class > </filter > <filter-mapping > <filter-name > loginFilter</filter-name > <url-pattern > /pages/*</url-pattern > </filter-mapping >
增删改查功能 以增删改查会员为例
创建实体类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 @Data public class Member { private String id; private String name; private String password; private String role; private String realname; private String credit; private String sex; private Integer age; private String tel; private Integer balance; private String anaphylaxis; private String createTime; }
创建mapper
注解方式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 @Mapper public interface MemberMapper { @Insert("insert into member (id, name, password, role, realname, credit, sex, age, tel, balance, anaphylaxis, create_time) values (#{id}, #{name}, #{password}, #{role}, #{realname}, #{credit}, #{sex}, #{age}, #{tel}, #{balance}, #{anaphylaxis}, #{createTime})") int save (Member members) ; @Update("update member set name = #{name}, credit = #{credit}, tel = #{tel}, balance = #{balance} where id = #{id}") int update (Member members) ; List<Member> findMemberByCondition (Member member) ; @Delete("delete from member where id = #{id}") boolean deleteByMemberId (String id) ; @Select("select * from member where id = #{id}") Member findMemberById (String id) ; @Update("update member set password=#{password} where id = #{id}") void updatePassword (@Param(value = "id") String id, @Param(value = "password") String password) ; }
映射文件方式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 <?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 ="com.inspur.mapper.MemberMapper" > <select id ="findMemberByCondition" resultType ="com.inspur.entity.Member" > select * from member <where > <if test ="id!=null and id!=''" > and id= #{id} </if > <if test ="name!=null and name!=''" > and name like '%${name}%' </if > <if test ="credit!=null and credit!=''" > and credit like '%${credit}%' </if > <if test ="tel!=null and tel!=''" > and tel like '%${tel}%' </if > </where > </select > </mapper >
业务层创建接口与实现类
1 2 3 4 5 6 7 8 9 10 11 12 13 public interface MemberService { boolean saveOrUpdateMember (Member member) ; PageInfo<Member> getMemberByCondition (Member member, Integer pageNum, Integer pageSize) ; boolean deleteByMemberId (String id) ; Member findMemberById (String id) ; List<Member> getAllMember () ; void updatePassword (String id, String password) ; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 @Service public class MemberServiceImpl implements MemberService { @Autowired private MemberMapper membersMapper; @Override public boolean saveOrUpdateMember (Member member) { String membersId = member.getId(); if (membersId == null || membersId.equals("" )) { return save(member); } else { return update(member); } } boolean save (Member members) { String id = new DateTime ().toString("yyyyMMddHHmmss" ); members.setId(id); members.setRole("3" ); SimpleDateFormat simpleDateFormat=new SimpleDateFormat ("yyyy-MM-dd" ); members.setCreateTime(simpleDateFormat.format(new Date ())); return membersMapper.save(members) > 0 ; } boolean update (Member members) { return membersMapper.update(members) > 0 ; } @Override public PageInfo<Member> getMemberByCondition (Member member, Integer pageNum, Integer pageSize) { PageHelper.startPage(pageNum, pageSize); List<Member> membersList = membersMapper.findMemberByCondition(member); PageInfo<Member> pageInfo = new PageInfo <>(membersList); return pageInfo; } @Override public boolean deleteByMemberId (String id) { boolean b = membersMapper.deleteByMemberId(id); return b; } @Override public Member findMemberById (String id) { Member members = membersMapper.findMemberById(id); return members; } @Override public List<Member> getAllMember () { return membersMapper.findMemberByCondition(new Member ()); } @Override public void updatePassword (String id, String password) { membersMapper.updatePassword(id, password); } }
控制层
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 @Controller @RequestMapping("/member") public class MemberController { @Autowired private MemberService memberService; @Autowired private CostSettleDetailService costSettleDetailService; @Autowired private PaymentDetailService paymentDetailService; @PostMapping("save") public String save (Member member, HttpServletRequest request) { Member updateMember = (Member) request.getAttribute("member" ); if (updateMember != null ) { member.setId(updateMember.getId()); } boolean flag = memberService.saveOrUpdateMember(member); return "redirect:/member/list" ; } @GetMapping("list") public String getMemberByCondition (Member member, HttpServletRequest request, @RequestParam(defaultValue = "1") Integer pageNum, @RequestParam(defaultValue = "5") Integer pageSize) { PageInfo<Member> pageInfo = memberService.getMemberByCondition(member, pageNum, pageSize); request.setAttribute("pageInfo" , pageInfo); return "memberlist" ; } @GetMapping("deleteByMemberId") public String deleteByMemberId (String id) { boolean flag = memberService.deleteByMemberId(id); return "redirect:/member/list" ; } @GetMapping("findMemberById") public String findMemberById (String id, HttpServletRequest request) { Member member = memberService.findMemberById(id); request.setAttribute("member" , member); return "membermodify" ; } @GetMapping("increase") public String increase (String id, HttpServletRequest request) { Member member = memberService.findMemberById(id); request.getSession().setAttribute("czMember" , member); return "membercz" ; } @PostMapping("saveIncrease") public String saveIncrease (Integer money, String rechargeMethod, HttpServletRequest request) { Member member = (Member) request.getSession().getAttribute("czMember" ); member.setBalance(member.getBalance() + money); PaymentDetail paymentDetail = new PaymentDetail (); SimpleDateFormat formatId = new SimpleDateFormat ("yyyyMMddHHmmss" ); paymentDetail.setId(formatId.format(new Date ())); paymentDetail.setRechargeMethod(rechargeMethod); paymentDetail.setRechargeAmount(money); paymentDetail.setMemberId(member.getId()); paymentDetail.setBalance(member.getBalance()); SimpleDateFormat simpleDateFormat = new SimpleDateFormat ("yyyy-MM-dd" ); paymentDetail.setCreateTime(simpleDateFormat.format(new Date ())); paymentDetailService.save(paymentDetail); boolean b = memberService.saveOrUpdateMember(member); return "redirect:/member/list" ; } @GetMapping("payById") public String payById (Integer money, String costSettleDetailId, HttpServletRequest request) { QueryExtends queryExtends = (QueryExtends) request.getSession().getAttribute("users" ); Member member = memberService.findMemberById(queryExtends.getId()); member.setBalance(member.getBalance() - money); memberService.saveOrUpdateMember(member); costSettleDetailService.finishBySettleId(costSettleDetailId); PaymentDetail paymentDetail = new PaymentDetail (); paymentDetail.setMemberId(member.getId()); SimpleDateFormat simpleDateFormat = new SimpleDateFormat ("yyyyMMddHHmmss" ); SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat ("yyyy-MM-dd" ); paymentDetail.setId(simpleDateFormat.format(new Date ())); paymentDetail.setRechargeAmount(money); paymentDetail.setBalance(member.getBalance()); paymentDetail.setCreateTime(simpleDateFormat2.format(new Date ())); paymentDetail.setRechargeMethod("微信支付" ); CostSettleDetail costSettleDetail = costSettleDetailService.getCostSettleById(costSettleDetailId); paymentDetail.setUserId(costSettleDetail.getUserId()); paymentDetailService.save(paymentDetail); return "redirect:/costSettleDetail/listByMemberId" ; } }
其他关键技术 前端开启el表达式与c标签库
1 2 <%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
使用for-each遍历集合,其中pageInfo.list 为固定写法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <c:forEach items="${pageInfo.list}" var ="doctorAdvice" > <tr> <td>${doctorAdvice.id}</td> <td>${doctorAdvice.memberId}</td> <td> <c:forEach items="${doctorList}" var ="doctor" > <c:if test="${doctor.id == doctorAdvice.doctorId}" >${doctor.name}</c:if > </c:forEach> </td> <td>${doctorAdvice.createTime}</td> <td>${doctorAdvice.prescription}</td> <%-- <td>西药治疗:皮炎平</td>--%> <td><a onclick="deletes(${doctorAdvice.id})" ><img src="../images/icon/del.png" width="16" height="16" /></a></td> <td><a onclick="ky(${doctorAdvice.registerOrderId}, ${doctorAdvice.id})" ><img src="../images/icon/edit2.png" width="16" height="16" /></a></td> </tr> </c:forEach>
c-if进行页面选择
1 2 3 4 5 6 7 8 <c:if test="${sessionScope.users.role==2}" > <ul> <li><a href="${pageContext.request.contextPath}/prescribe/sendList" target="right" >药品发放</a></li> <li><a href="${pageContext.request.contextPath}/registerorder/list" target="right" >挂号管理</a></li> <li><a href="${pageContext.request.contextPath}/doctorduty/list" target="right" >医生值班管理</a></li> <li><a href="${pageContext.request.contextPath}/doctorAdvice/list" target="right" >医生诊断管理</a></li> </ul> </c:if >
for-each加c-if进行判断选中
1 2 3 <c:forEach items="${doctorList}" var ="doctor" > <c:if test="${payment.userId == doctor.id}" >${doctor.name}</c:if > </c:forEach>
导航栏效果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 <div id="pagination" style="align:right;margin-top:-10px;" > <div id='project_pagination' class="pagination pagination-centered" > <div class="pagination" > <ul> <li class="disabled" ><a href="${pageContext.request.contextPath}/doctorAdvice/list?pageNum=${pageInfo.isFirstPage?1:pageInfo.prePage}&pageSize=${pageInfo.pageSize}®isterOrderId=${doctorAdvice.registerOrderId}&memberId=${doctorAdvice.memberId}&createTime=${doctorAdvice.createTime}" >«</a> </li> <c:forEach items="${pageInfo.navigatepageNums}" var ="nav" > <li class="${pageInfo.pageNum==nav?'active':''}" ><a href="${pageContext.request.contextPath}/doctorAdvice/list?pageNum=${nav}&pageSize=${pageInfo.pageSize}®isterOrderId=${doctorAdvice.registerOrderId}&memberId=${doctorAdvice.memberId}&createTime=${doctorAdvice.createTime}" >${nav}</a> </li> </c:forEach> <li> <a href="${pageContext.request.contextPath}/doctorAdvice/list?pageNum=${pageInfo.isLastPage?pageInfo.pages:pageInfo.nextPage}&pageSize=${pageInfo.pageSize}®isterOrderId=${doctorAdvice.registerOrderId}&memberId=${doctorAdvice.memberId}&createTime=${doctorAdvice.createTime}" >»</a> </li> </ul> <ul> <li><span>(${pageInfo.startRow}-${pageInfo.endRow}/${pageInfo.total})</span></li> <li><span>显示条数 :${pageInfo.size}</span></li> </ul> <ul> <li class="${pageInfo.pageSize==5?'active':''}" ><a href="${pageContext.request.contextPath}/doctorAdvice/list?pageSize=5®isterOrderId=${doctorAdvice.registerOrderId}&memberId=${doctorAdvice.memberId}&createTime=${doctorAdvice.createTime}" >5 </a> </li> <li class="${pageInfo.pageSize==10 ?'active':''}" ><a href="${pageContext.request.contextPath}/doctorAdvice/list?pageSize=10®isterOrderId=${doctorAdvice.registerOrderId}&memberId=${doctorAdvice.memberId}&createTime=${doctorAdvice.createTime}" >10 </a> </li> <li class="${pageInfo.pageSize==15 ?'active':''}" ><a href="${pageContext.request.contextPath}/doctorAdvice/list?pageSize=15®isterOrderId=${doctorAdvice.registerOrderId}&memberId=${doctorAdvice.memberId}&createTime=${doctorAdvice.createTime}" >15 </a> </li> <li class="${pageInfo.pageSize==20 ?'active':''}" ><a href="${pageContext.request.contextPath}/doctorAdvice/list?pageSize=20®isterOrderId=${doctorAdvice.registerOrderId}&memberId=${doctorAdvice.memberId}&createTime=${doctorAdvice.createTime}" >20 </a> </li> </ul> </div> </div> </div>