Mybatis+SpringMVC的简单学生管理系统(提供数据库设计)|登录、验证、用户等级不同功能不同、留言、增删改查等
2020-03-28 10:58
471 查看
学生管理系统
功能介绍
- 登录验证,(同时ajax的异步验证)
- 老师和学生登录后有不同的界面
- 学生可以给老师留言,并查看自己留言的状态
- 老师可以对学生进行增删改查,对留言进行处理
一、包结构
导入的架包
后台各个层的功能
- User:用户类、Message:留言信息类、MessageVo:过度类为实现特定功能单另的类
- BaseDao: Mybatis特性抽取的封装类
- UserDao: dao层的接口类;MessageDao:dao层的接口类
- UserMapper.xml 和 MessageMapper.xml是sql语句的配置类
- UserService和MessageService 是service层的接口类;UserServiceImpl 和 MessageServiceImpl是service的实现类
- mybatis-config.xml Mybatis的配置文件;springmvc.xml springmvc的配置文件
前端页面的功能
- Login.jsp登录页面
- addUser.jsp 添加学生页面
- doUpdate.jsp学生信息的修改页面
- userInfo.jsp老师登录进去的页面
- student.jsp学生信息显示页面
- doMessage.jsp 老师页面的留言区
- leaveMsg.jsp学生留言页面
- error.jsp错误页面,当发生输入错误时,自动跳到错误页面
二、代码区
后台代码
一、entity包
- user.java
package entity; public class User { private int id; private String name; private int age; private String address; private int tele; private String password; private int level; public int getLevel() { return level; } public void setLevel(int level) { this.level = level; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public int getTele() { return tele; } public void setTele(int tele) { this.tele = tele; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
- Message.java
package entity; import java.util.Date; public class Message { private int mid,sidFrom,status; private String content; private Date createdTime,updateTime; public int getMid() { return mid; } public void setMid(int mid) { this.mid = mid; } public int getSidFrom() { return sidFrom; } public void setSidFrom(int sidFrom) { this.sidFrom = sidFrom; } public int getStatus() { return status; } public void setStatus(int status) { this.status = status; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public Date getCreatedTime() { return createdTime; } public void setCreatedTime(Date createdTime) { this.createdTime = createdTime; } public Date getUpdateTime() { return updateTime; } public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; } }
- MessageVo.java
package entity; public class MessageVo { private int mid; private String sname,content,ctime,utime; public int getMid() { return mid; } public void setMid(int mid) { this.mid = mid; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public String getCtime() { return ctime; } public void setCtime(String ctime) { this.ctime = ctime; } public String getUtime() { return utime; } public void setUtime(String utime) { this.utime = utime; } }
二、dao包
- BaseDao.java
package dao; import java.io.IOException; import java.io.InputStream; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; //增删改需要自动提交,查询不需要 public class BaseDao { public static SqlSessionFactory factory=null; public static void getFactory() { //mybatis的配置文件的路径 String resource = "mybatis-config.xml"; InputStream inputStream; try { inputStream = Resources.getResourceAsStream(resource); factory=new SqlSessionFactoryBuilder().build(inputStream); } catch (IOException e) { e.printStackTrace(); } } public static SqlSession getSession() { if (factory==null) { getFactory(); } SqlSession session=factory.openSession(); return session; } public static SqlSession getSession(boolean isAutoCommit) { if (factory==null) { getFactory(); } SqlSession session=factory.openSession(isAutoCommit); return session; } }
- UesrDao.java
package dao; import java.util.List; import org.apache.ibatis.annotations.Param; import entity.User; public interface UserDao { //获取所有学生信息 List<User> getUser(); //根据id获取个人用户信息 User getUserById(int id); //修改学生信息 int modify( @Param("id")String id, @Param("name")String name, @Param("age")String age, @Param("address")String address, @Param("tele")String tele); //添加学生 int addUser(User user); //删除学生 int delUserById(int id); }
- MessageDao.java
package dao; import java.util.List; import org.apache.ibatis.annotations.Param; import entity.Message; public interface MessageDao { //将留言传到数据库 int sendMsg(@Param("id")int sidFrom,@Param("content")String content); //根据status来获取留言信息 List<Message> getMessage(Integer[] statuses); //根据mid处理留言状态 int deal(@Param("mid")int mid,@Param("status")int status); //获取所有留言信息 List<Message> getAllMessage(); //读留言 int readMessage(); //学生获取自己的留言信息 List<Message> getMessageById(int id); }
- UserMapper.xml
<?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="dao.UserDao"> <!-- 根据id获取个人信息 --> <select id="getUserById" resultMap="user"> select * from user where id = #{id} </select> <!--获取所有人的信息 --> <select id="getUser" resultMap="user"> select * from user </select> <!--修改 --> <update id="modify"> update user <trim prefix="set" suffixOverrides="," suffix="where id = #{id}"> <if test="name != null and name != ''" > name=#{name}, </if> <if test="age != null and age != ''"> age = #{age}, </if> <if test="address != null and address != ''"> address = #{address}, </if> <if test="tele != null and tele != ''"> tele =#{tele}, </if> </trim> </update> <!--删除 --> <delete id="delUserById"> delete from user where id =#{id} </delete> <!--添加 --> <insert id="addUser"> insert into user(name,age,address,tele,password) values(#{name},#{age},#{address},#{tele},#{password}) </insert> <resultMap type="entity.User" id="user"> <result property="id" column="id"/> <result property="name" column="name"/> <result property="age" column="age"/> <result property="address" column="address"/> <result property="tele" column="tele"/> <result property="level" column="levle"/> </resultMap> </mapper>
- MessageMapper.xml
<?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="dao.MessageDao"> <select id="getMessageById" resultMap="message"> select * from user u left join message m on u.id = m.sid_from where id = #{id} </select> <!-- 获取所有留言信息 --> <select id="getAllMessage" resultMap="message"> select * from message </select> <!--将留言传到数据库 --> <insert id="sendMsg"> insert into message(sid_from,content) values(#{id},#{content}) </insert> <!--获取留言信息(通过不同留言状态) --> <select id="getMessage" resultMap="message"> select * from message where `status` in <foreach collection="array" open="(" close=")" separator="," item="status"> #{status} </foreach> order by created_Time desc </select> <!--对留言信息的处理 --> <update id="deal"> update message set `status`=#{status},updated_time=SYSDATE() where mid=#{mid} </update> <!--已读信息 --> <update id="readMessage"> update message set `status` = 1 where `status` = 0 </update> <resultMap type="entity.Message" id="message"> <result property="mid" column="mid"/> <result property="sidFrom" column="sid_from"/> <result property="content" column="content"/> <result property="createdTime" column="created_Time"/> <result property="updateTime" column="updated_Time"/> <result property="status" column="status"/> </resultMap> </mapper>
三、service包
- UserService.java
package service; import java.util.List; import entity.User; public interface UserService { List<User> getUser(); User getUserById(int id); boolean modify(String id,String name,String age,String address,String tele); boolean addUser(String name,int age,String address,int tele,String password); boolean delUserById(int id); }
- UserServiceImpl.java
package service.impl; import java.util.List; import dao.BaseDao; import dao.UserDao; import entity.User; import service.UserService; public class UserServiceImpl implements UserService{ @Override public List<User> getUser() { // TODO Auto-generated method stub return BaseDao.getSession().getMapper(UserDao.class).getUser(); } @Override public User getUserById(int id) { // TODO Auto-generated method stub return BaseDao.getSession().getMapper(UserDao.class).getUserById(id); } @Override public boolean modify(String id,String name, String age, String address, String tele) { if (BaseDao.getSession(true).getMapper(UserDao.class).modify(id,name, age, address, tele)>0) { return true; } return false; } @Override public boolean addUser(String name, int age, String address, int tele,String password) { User user = new User(); user.setAge(age); user.setName(name); user.setAddress(address); user.setTele(tele); user.setPassword(password); if (BaseDao.getSession(true).getMapper(UserDao.class).addUser(user)>0) { return true; } return false; } @Override public boolean delUserById(int id) { if (BaseDao.getSession(true).getMapper(UserDao.class).delUserById(id)>0) { return true; } return false; } }
- MessageService.java
package service; import java.util.List; import entity.Message; import entity.MessageVo; public interface MessageService { boolean sendMsg(int sidFrom,String content); List<Message> getUnReadMsg(); List<MessageVo> getUnDealedMsg(); List<Message> getAgreeMsg(); List<Message> getRefMsg(); boolean deal(int mid,String type); List<Message> getAllMessage(); //学生获取自己的留言信息 List<Message> getMessageById(int id); //是否撤回 boolean feedBack(int mid); //是否已读 boolean readMessage(); }
- MessageServiceImpl.java
package service.impl; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import dao.BaseDao; import dao.MessageDao; import dao.UserDao; import entity.Message; import entity.MessageVo; import entity.User; import service.MessageService; public class MessageServiceImpl implements MessageService{ @Override public boolean sendMsg(int sidFrom, String content) { if (BaseDao.getSession(true).getMapper(MessageDao.class).sendMsg(sidFrom, content)>0) { return true; } return false; } @Override public List<Message> getUnReadMsg() { // TODO Auto-generated method stub Integer[] status = {0}; return BaseDao.getSession().getMapper(MessageDao.class).getMessage(status); } @Override public List<Message> getAgreeMsg() { // TODO Auto-generated method stub Integer[] status = {2}; return BaseDao.getSession().getMapper(MessageDao.class).getMessage(status); } @Override public List<Message> getRefMsg() { // TODO Auto-generated method stub Integer[] status = {3}; return BaseDao.getSession().getMapper(MessageDao.class).getMessage(status); } @Override public boolean deal(int mid, String type) { // TODO Auto-generated method stub int status = 0; if (type.equals("agree")) { status = 2; }else if(type.equals("disagree")) { status = 3; } if (BaseDao.getSession(true).getMapper(MessageDao.class).deal(mid, status)>0) { return true; } return false; } @Override public List<MessageVo> getUnDealedMsg() { Integer[] status = {0,1}; List<Message> mlist = BaseDao.getSession().getMapper(MessageDao.class).getMessage(status); System.out.println(mlist); List<MessageVo> mvList=new ArrayList<MessageVo>(); for (Message message : mlist) { mvList.add(changeMsgVo(message)); } return mvList; } @Override public List<Message> getMessageById(int id) { // TODO Auto-generated method stub return BaseDao.getSession().getMapper(MessageDao.class).getMessageById(id); } @Override public List<Message> getAllMessage() { // TODO Auto-generated method stub return BaseDao.getSession().getMapper(MessageDao.class).getAllMessage(); } private MessageVo changeMsgVo(Message msg) { MessageVo vo=new MessageVo(); vo.setMid(msg.getMid()); vo.setContent(msg.getContent()); System.out.println(msg.getSidFrom()); User user = BaseDao.getSession().getMapper(UserDao.class).getUserById(msg.getSidFrom()); vo.setSname(user.getName()); SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); vo.setCtime(sdf.format(msg.getCreatedTime())); if (msg.getUpdateTime() == null) { vo.setUtime("2020-01-01 00:00:00");; }else { vo.setUtime(sdf.format(msg.getUpdateTime())); } System.out.println(vo); return vo; } @Override public boolean feedBack(int mid) { int status = 4; if (BaseDao.getSession(true).getMapper(MessageDao.class).deal(mid, status)>0) { return true; } return false; } @Override public boolean readMessage() { BaseDao.getSession(true).getMapper(MessageDao.class).readMessage(); return true; } }
配置文件
- Mybatis
<?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> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <!-- <property name="url" value="jdbc:mysql://localhost:3306/bd13?useUnicode=true&characterEncoding=UTF-8"/>--> <property name="url" value="jdbc:mysql://localhost:3306/数据库名"/> <property name="username" value="数据库用户名"/> <property name="password" value="密码"/> </dataSource> </environment> </environments> <!--mapper的路径 --> <mappers> <mapper resource="dao/UserMapper.xml"/> <mapper resource="dao/MessageMapper.xml"/> </mappers> </configuration>
- SpringMVC
<?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/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <mvc:annotation-driven /> <context:component-scan base-package="controller"></context:component-scan> <context:annotation-config /> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/" /> <property name="suffix" value=".jsp" /> </bean> </beans>
四、controller包
- UserController.java
package controller; import java.io.IOException; import java.io.PrintWriter; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import entity.Message; import entity.MessageVo; import entity.User; import service.MessageService; import service.UserService; import service.impl.MessageServiceImpl; import service.impl.UserServiceImpl; @Controller public class UserController { UserService service = new UserServiceImpl(); MessageService mservice = new MessageServiceImpl(); @RequestMapping("/doLogin") public String doLogin(@RequestParam(value="id") int id, @RequestParam(value="pwd")String password, HttpServletRequest request, HttpSession session) { User user = service.getUserById(id); if (user.getPassword().equals(password)) { session.setAttribute("user", user); if (user.getLevel()>3) { return "redirect:/initTeacher.action"; }else { return "redirect:/initStudent.action"; } }else { return "error"; } } @RequestMapping("/checkId") public void check(HttpServletResponse response,@RequestParam("id")int id) { User user =service.getUserById(id); System.out.println(user); String answer = ""; if (user==null) { answer = "没有这个学号"; }else { answer = "请继续输入密码"; } try { response.setCharacterEncoding("utf-8"); PrintWriter writer = response.getWriter(); writer.write(answer); writer.flush(); writer.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @RequestMapping("/doUpdateId") public String doUpdateId(@RequestParam(value="id") String id, HttpServletRequest request, HttpSession session) { int i = new Integer(id); User user = service.getUserById(i); request.setAttribute("user", user); return "doUpdate"; } @RequestMapping("/doUpdate") public String doUpdate( @RequestParam(value="id") String id, @RequestParam(value="name") String name, @RequestParam(value="age")String age, @RequestParam(value="address")String address, @RequestParam(value="tele")String tele, HttpServletRequest request ) { boolean flag = service.modify(id,name, age, address, tele); return "redirect:/initTeacher.action"; } @RequestMapping("/delUser") public String delUser(@RequestParam(value="id",required = false) int id, HttpServletRequest request, HttpSession session){ service.delUserById(id); return "redirect:/initTeacher.action"; } @RequestMapping("/addUser") public String addUser( @RequestParam(value="name")String name, @RequestParam(value="pwd")String password, @RequestParam(value="address")String address, @RequestParam(value="age")int age, @RequestParam(value="tele")int tele, HttpServletRequest request, HttpSession session) { service.addUser(name, age, address, tele,password); return "redirect:/initTeacher.action"; } @RequestMapping("/initTeacher") public String initTeacher(HttpServletRequest request,HttpSession session) { List<User> uList = service.getUser(); List<MessageVo> unDeal=mservice.getUnDealedMsg(); List<Message> agree=mservice.getAgreeMsg(); List<Message> disagree=mservice.getRefMsg(); request.setAttribute("ulist", uList); request.setAttribute("unDeal", unDeal); request.setAttribute("agree", agree); request.setAttribute("disagree", disagree); return "userInfo"; } @RequestMapping("/initStudent") public String initStudent(HttpServletRequest request,HttpSession session) { boolean flag = false; User user = (User) session.getAttribute("user"); List<Message> slist = mservice.getMessageById(user.getId()); List<Message> mlist = mservice.getAllMessage(); for (Message message : mlist) { if (user.getId()==message.getSidFrom()) { request.setAttribute("slist", slist); flag=true; } } if (flag) { return "student"; }else { return "leaveMsg"; } } }
- MessageController.java
package controller; import java.io.IOException; import java.io.PrintWriter; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import entity.Message; import entity.MessageVo; import entity.User; import service.MessageService; import service.UserService; import service.impl.MessageServiceImpl; import service.impl.UserServiceImpl; @Controller public class UserController { UserService service = new UserServiceImpl(); MessageService mservice = new MessageServiceImpl(); @RequestMapping("/doLogin") public String doLogin(@RequestParam(value="id") int id, @RequestParam(value="pwd")String password, HttpServletRequest request, HttpSession session) { User user = service.getUserById(id); if (user.getPassword().equals(password)) { session.setAttribute("user", user); if (user.getLevel()>3) { return "redirect:/initTeacher.action"; }else { return "redirect:/initStudent.action"; } }else { return "error"; } } @RequestMapping("/checkId") public void check(HttpServletResponse response,@RequestParam("id")int id) { User user =service.getUserById(id); System.out.println(user); String answer = ""; if (user==null) { answer = "没有这个学号"; }else { answer = "请继续输入密码"; } try { response.setCharacterEncoding("utf-8"); PrintWriter writer = response.getWriter(); writer.write(answer); writer.flush(); writer.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @RequestMapping("/doUpdateId") public String doUpdateId(@RequestParam(value="id") String id, HttpServletRequest request, HttpSession session) { int i = new Integer(id); User user = service.getUserById(i); request.setAttribute("user", user); return "doUpdate"; } @RequestMapping("/doUpdate") public String doUpdate( @RequestParam(value="id") String id, @RequestParam(value="name") String name, @RequestParam(value="age")String age, @RequestParam(value="address")String address, @RequestParam(value="tele")String tele, HttpServletRequest request ) { boolean flag = service.modify(id,name, age, address, tele); return "redirect:/initTeacher.action"; } @RequestMapping("/delUser") public String delUser(@RequestParam(value="id",required = false) int id, HttpServletRequest request, HttpSession session){ service.delUserById(id); return "redirect:/initTeacher.action"; } @RequestMapping("/addUser") public String addUser( @RequestParam(value="name")String name, @RequestParam(value="pwd")String password, @RequestParam(value="address")String address, @RequestParam(value="age")int age, @RequestParam(value="tele")int tele, HttpServletRequest request, HttpSession session) { service.addUser(name, age, address, tele,password); return "redirect:/initTeacher.action"; } @RequestMapping("/initTeacher") public String initTeacher(HttpServletRequest request,HttpSession session) { List<User> uList = service.getUser(); List<MessageVo> unDeal=mservice.getUnDealedMsg(); List<Message> agree=mservice.getAgreeMsg(); List<Message> disagree=mservice.getRefMsg(); request.setAttribute("ulist", uList); request.setAttribute("unDeal", unDeal); request.setAttribute("agree", agree); request.setAttribute("disagree", disagree); return "userInfo"; } @RequestMapping("/initStudent") public String initStudent(HttpServletRequest request,HttpSession session) { boolean flag = false; User user = (User) session.getAttribute("user"); List<Message> slist = mservice.getMessageById(user.getId()); List<Message> mlist = mservice.getAllMessage(); for (Message message : mlist) { if (user.getId()==message.getSidFrom()) { request.setAttribute("slist", slist); flag=true; } } if (flag) { return "student"; }else { return "leaveMsg"; } } }
前端页面
- Login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <script type="text/javascript" src="jquery-1.8.3.js"></script> <script type="text/javascript"> function check() { var id = $("#id").val(); if (id==null||id=="") { alert("学号不能为空"); return; }else{ $.post("checkId.action",{"id":id},function(data){ $("#msg").text(data); }); } } </script> </head> <body> <h2 align="center">登录页面</h2> <form action="doLogin.action" > 学号:<input id="id" type="text" name="id" onblur="check()"/><br> 密码:<input type="password" name="pwd"><br> <input type="submit" value="登录"> </form> <p id = "msg"></p> </body> </html>
- userInfo.jsp
<%@page import="java.util.ArrayList"%> <%@page import="java.lang.reflect.Array"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="entity.*,java.util.*"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <style type="text/css"> .wtd{ width: 150px; } </style> <script type="text/javascript" src="jquery-1.8.3.js"></script> <script type="text/javascript"> $(document).ready(function() { $("#unDealTitle").click(function() { $("#unDeal").slideToggle(3000); $.post("readMessage.action"); }); $("#disagreeTitle").click(function() { $("#disagree").slideToggle(3000); }); $("#agreeTitle").click(function() { $("#agree").slideToggle(3000); }); }); </script> </head> <body> <% Object userObj = request.getAttribute("ulist"); List<User> ulist = new ArrayList<User>(); if (userObj != null) { ulist = (List<User>) userObj; } %> <div align="center"> <h2>欢迎${user.name }</h2><br> <a href="Login.jsp">重新登录</a> </div> <table align="center" border="1" color="black"> <tr align="center"> <td> <button ><a href="addUser.jsp">添加用户</a></button> </td> </tr> <tr align="center"> <td>学号</td> <td>姓名</td> <td>年龄</td> <td>地址</td> <td>电话</td> <td colspan="2">操作</td> </tr> <% for (User u : ulist) { %> <tr> <td><%=u.getId()%></td> <td><%=u.getName()%></td> <td><%=u.getAge()%></td> <td><%=u.getAddress()%></td> <td><%=u.getTele()%></td> <td><a href="doUpdateId.action?id=<%=u.getId()%>">修改</a></td> <td><a href="delUser.action?id=<%=u.getId()%>">删除</a></td> </tr> <% } %> </table> <% List<MessageVo> unDeal = (List<MessageVo>) request.getAttribute("unDeal"); List<Message> disagree = (List<Message>) request.getAttribute("disagree"); List<Message> agree = (List<Message>) request.getAttribute("agree"); %> <div align="center" name="message"> <h4 id="unDealTitle" align="center"> 您有 <%=unDeal.size()%>条未处理消息 </h4> <div id="unDeal" style="display: none;"> <table align="center"> <tr> <th>发送人</th> <th class="wtd">留言内容</th> <th>发送时间</th> <th colspan="2">操作</th> </tr> <% for (MessageVo mvo : unDeal) { %> <tr> <td><%=mvo.getSname()%></td> <td class="wtd"><%=mvo.getContent()%></td> <td><%=mvo.getCtime()%></td> <td><a href="msg/agree/deal.action?mid=<%=mvo.getMid()%>">同意</a> <a href="msg/disagree/deal.action?mid=<%=mvo.getMid()%>">驳回</a></td> </tr> <% } %> </table> </div> <br> <h4 id="disagreeTitle" align="center"> 您总共有<%=disagree.size()%>条已驳回的消息 </h4> <div id="disagree" style="display: none;"> <table align="center"> <tr> <th>发送人</th> <th class="wtd">留言内容</th> <th>发送时间</th> <th>操作</th> </tr> <% for (Message mess : disagree) { %> <tr> <td><%=mess.getSidFrom()%></td> <td class="wtd"><%=mess.getContent()%></td> <td><%=mess.getCreatedTime()%></td> <td><a href="msg/agree/deal.action?mid=<%=mess.getMid()%>">同意</a></td> </tr> <% } %> </table> </div> <br> <h4 id="agreeTitle" align="center"> 您总共有<%=agree.size()%>条已同意的消息 </h4> <div id="agree" style="display: none;"> <table align="center"> <tr> <th>发送人</th> <th class="wtd">留言内容</th> <th>发送时间</th> <th>审批时间</th> </tr> <% for (Message mess : agree) { %> <tr> <td><%=mess.getSidFrom()%></td> <td class="wtd"><%=mess.getContent()%></td> <td><%=mess.getCreatedTime()%></td> <td><%=mess.getUpdateTime()%></td> </tr> <% } %> </table> </div> </body> </html>
- addUser.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <form action="addUser.action"> 姓名:<input type="text" name = "name" > 年龄:<input type="text" name = "age" > 地址:<input type="text" name = "address" > 电话:<input type="text" name = "tele" > 密码:<input type="text" name = "pwd" > <input type="submit" value="提交"> </form> </body> </html>
- doMessage.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.util.*,entity.*" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <h2 align="center"> 班主任页面${user.name }</h2> <% Object userObj = request.getAttribute("mlist"); List<Message> mlist = new ArrayList<Message>(); if(userObj != null){ mlist = (List<Message>)userObj; } %> <table> <tr> <td>发送人</td> <td>内容</td> <td>留言时间</td> <td colspan="2">状态</td> </tr> <% for(Message m : mlist){ %> <tr> <td><%=m.getSidFrom() %></td> <td><%=m.getContent() %></td> <td><%=m.getCreatedTime() %></td> <td> <a href="msg/agree/deal.action?mid = <%=m.getMid()%>">同意</a> <a href="msg/disagree/deal.action?mid = <%=m.getMid()%>">驳回</a> </td> </tr> <% } %> </table> </body> </html>
- doUpdata.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="entity.User" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <form action="doUpdate.action"> <h2 align="center">${user.name}</h2> <input type="hidden" name ="id" value="${user.id}"> 姓名:<input type="text" name="name"/> 年龄:<input type="text" name="age"/> 地址:<input type="text" name="address"/> 电话:<input type="text" name="tele"/> <input type="submit" value = "确定"/> </form> </body> </html>
- leaveMsg.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <h2 align="center">欢迎学员${user.name }</h2> <center> <form action="leaveMsg.action"> <input type="hidden" name="sidFrom" value="${user.id }"> <p align="center">书写留言</p> <textarea rows="10" cols="30" name="content"> </textarea><br> <input type="submit" value="确定留言" > </form> </center> </body> </html>
- student.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.util.*,entity.*" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <% Object userObj = request.getAttribute("slist"); List<Message> slist = new ArrayList<Message>(); if(userObj != null){ slist = (List<Message>)userObj; } %> <h2 align = "center"> 欢迎 ${user.name }</h2> <h2 align = "center"> ${info}</h2> <div align="center"> <p>${info }</p> <button><a href="leaveMsg.jsp">写留言</a></button> <button><a href="Login.jsp">重新登录</a></button> </div> <table align="center"> <tr> <td>留言号</td> <td>内容</td> <td>创建时间</td> <td>处理时间</td> <td>状态</td> <td>操作</td> </tr> <% for(Message m : slist){ %> <tr> <td><%=m.getMid() %></td> <td><%=m.getContent() %></td> <td><%=m.getCreatedTime() %></td> <td><%=m.getUpdateTime() %></td> <td><% int i = m.getStatus(); if(i==0){ out.println("未处理"); 4000 } if(i==1){out.println("已查看");} if(i==2){out.println("同意");} if(i==3){out.println("驳回");} if(i==4){out.println("已撤回");} %></td> <td> <% if(m.getStatus()==0){%> <a href="feedBack.action?mid=<%=m.getMid()%>">撤回</a> <% } %> </td> </tr> <% } %> </table> </body> </html>
数据库设计
/* SQLyog Ultimate v13.1.1 (64 bit) MySQL - 5.5.36 : Database - trainning ********************************************************************* */ /*!40101 SET NAMES utf8 */; /*!40101 SET SQL_MODE=''*/; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; CREATE DATABASE /*!32312 IF NOT EXISTS*/`trainning` /*!40100 DEFAULT CHARACTER SET utf8 */; USE `trainning`; /*Table structure for table `message` */ DROP TABLE IF EXISTS `message`; CREATE TABLE `message` ( `mid` int(5) NOT NULL AUTO_INCREMENT, `sid_from` int(5) DEFAULT NULL, `content` char(100) DEFAULT NULL COMMENT '留言', `created_Time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_Time` timestamp NULL DEFAULT NULL, `status` int(5) DEFAULT '0' COMMENT '0:未处理,1:已处理,2:同意,3:驳回', PRIMARY KEY (`mid`) ) ENGINE=InnoDB AUTO_INCREMENT=126 DEFAULT CHARSET=utf8; /*Data for the table `message` */ insert into `message`(`mid`,`sid_from`,`content`,`created_Time`,`updated_Time`,`status`) values (121,2,'天气真好','2020-03-27 09:41:12','2020-03-27 10:09:24',4), (123,2,'我很棒','2020-03-27 13:38:37','2020-03-27 13:41:12',2), (124,2,'hello','2020-03-27 13:39:29','2020-03-27 13:39:32',4), (125,16,'你好','2020-03-27 13:43:16','2020-03-27 13:44:13',2); /*Table structure for table `user` */ DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `id` int(5) NOT NULL AUTO_INCREMENT, `name` char(10) NOT NULL, `age` int(10) DEFAULT NULL, `address` char(20) DEFAULT NULL, `tele` int(11) DEFAULT NULL, `password` char(20) NOT NULL, `level` int(5) DEFAULT '1' COMMENT '用户等级', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8; /*Data for the table `user` */ insert into `user`(`id`,`name`,`age`,`address`,`tele`,`password`,`level`) values (2,'marry',23,'河北',12312,'1234',1), (11,'peng',22,'北京',232,'1234',4), (13,'jack',22,'天津',1234,'111111',1), (14,'tom',11,'北京',1234,'111111',1), (16,'liiiiii',22,'天津',12312,'111111',1); /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; 20000 /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
三、总结
- 设计之初,把握自己的逻辑,前后端交互的项目设计,首先要设计好自己的页面需要的信息,之后再书写自己的逻辑层,把我好自己的需要实现的功能(controller包)
- 过程中注意把控细节,sql语句的细节,配置文件的路径,方法名和配置文件中的id一致
- 增删改需要自动提交事务,所以BaseDao中的SQLsession中提供两种一种自动提交,一种不提交
下载资源链接地址:
https://download.csdn.net/download/wenquan19960602/12277108
相关文章推荐
- SpringMvc+Mybatis实现一个简单人事管理系统(一)
- 一个简单的实现不同权限的用户登录后看到不同的菜单设计的数据库表清单
- springmvc+mybatis+sql server实现简单登录功能【转】
- 基于Spring+Mybatis+jsp+servlet的用户登录注册功能(数据库查找和插入用户),jsp写的前端(css+javascript),使用IDEA
- 菜鸟级springmvc+spring+mybatis整合开发用户登录功能(上)
- 菜鸟学SSM框架搭建----Spring+SpringMVC+MyBatis整合,实现简单的登录功能
- 一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之完成登录功能
- 使用数据库和ssm框架(spring + springmvc + mybatis )写一个简单的书籍管理网站之二——详细解释各种调用层次,以及注解,便于学习理解(附源码)
- 菜鸟级springmvc+spring+mybatis整合开发用户登录功能(下)
- springmvc+mybatis+sql server实现简单登录功能【转】
- SSM学生管理系统SpringMVC+MyBatis
- 一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之完成登录功能
- php简单学生成绩 管理系统 用户登录,查,增,删,
- ssm框架(Spring+SpringMVC+MyBatis)实现管理系统注册功能
- 导入即可SpingMVC+MyBatis简单权限管理系统,带数据库
- 一个简单的实现不同权限的用户登录后看到不同的菜单设计的数据库表清单
- 导入即可SpingMVC+MyBatis简单权限管理系统,带数据库
- springmvc+mybatis+sql server实现简单登录功能
- springmvc+spring+mybatis实现用户登录功能(上)
- SpringMVC(14):使用springmvc+spring+jdbc 优化订单管理系统的示例(多条件查询用户列表功能实现)