`

增删改查(管理系统)

 
阅读更多

增加对用户的增删改查,这样我们这个用户登录系统就改造成了一个用户管理系统(MVC模式)

1,增加(注册)用户

(1)main.jsp

	<body bgcolor="#FFFFFF">
		<img src="img/logo.png">
		<center>
		<h2>请选择操作</h2>
		<hr>
		<a href="UserServlet?flag=fy&pageNow=1">管理用户</a><br>
		<a href="addUser.jsp">注册用户</a><br>
		<a href="#">注销用户</a><br>
		<a href="selectUser.jsp">查找用户</a><br>
		<hr>
		</center>
	</body>
</html>

 (2)addUser.jsp

	<body bgcolor="#FFFFFF">
		<img src="img/logo.png">
		<center>
		<h2>请输入用户信息</h2>
		<hr>
		<form action="UserServlet?flag=add" method="post">
			用户名:
			<input type="text" name="id" />
			<br>
			密&nbsp;&nbsp;码:
			<input type="password" name="passw" />
			<br>
			年&nbsp;&nbsp;龄:
			<input type="text" name="age" />
			<br>
			性&nbsp;&nbsp;别:
			<input type="text" name="sex" />
			<br>
			<input type="submit" value="注册" />
			<input type="reset" value="重置" />
			<hr>
		</form>
		</center>
	</body>
</html>

 (3)UserServlet.java

package com.dtg.controller;
/*
 * 这个控制器,控制分页,增删改查等功能
 * */
import java.io.IOException;
import java.util.ArrayList;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.dtg.model.User;
import com.dtg.model.UserCl;

public class UserServlet extends HttpServlet {

	private static final long serialVersionUID = 1L;


	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		/*
		 * 得到用户希望显示的pageNow
		 * */
//		System.out.println("分页也用的是Servlet控制器");
		String s_pageNow = request.getParameter("pageNow"); //从login_success.jsp传过来
		String flag =  request.getParameter("flag");//获取标记位
		if("fy".equals(flag)){
			try {
				int pageNow = Integer.parseInt(s_pageNow);
				UserCl userCl = new UserCl();
				ArrayList<User> al =  userCl.getUserByPage(pageNow);
				int pageCount = userCl.getPageCount();
				request.setAttribute("result", al);
				request.setAttribute("pageCount", pageCount+"");
				request.setAttribute("pageNow", pageNow+"");
				
				request.getRequestDispatcher("login_success.jsp").forward(request,
						response);
				
			} catch (Exception e) {
				// TODO: handle exception
				e.printStackTrace();
			}
		}else if("del".equals(flag)){
			
			String userId = request.getParameter("userId");
			try {
				UserCl userCl = new UserCl();
				
				if(userCl.delUser(userId)){
					//删除成功
					request.getRequestDispatcher("success.jsp").forward(request, response);
					System.out.println("进入成功分支");
				}else{
					//删除失败
					request.getRequestDispatcher("failure.jsp").forward(request, response);
					System.out.println("进入失败分支");
				}
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
		}else if("update".equals(flag)){
			String userId = request.getParameter("userId");
			String passw = request.getParameter("passw");
			String s_age =  request.getParameter("age");
			int age = Integer.parseInt(s_age);
			String sex = request.getParameter("sex");
			try {
				
				UserCl userCl = new UserCl();
				User user = new User();
				user.setPassword(passw);
				user.setAge(age);
				user.setSex(sex);
				if(userCl.updateUser(user,userId)){
					request.getRequestDispatcher("success.jsp").forward(request, response);
				}else{
					request.getRequestDispatcher("failure.jsp").forward(request, response);
				}
			} catch (Exception e) {
				e.printStackTrace();
				// TODO: handle exception
			}
			
		}else if("add".equals(flag)){
			try {
				String id = request.getParameter("id");
				String passw = request.getParameter("passw");
				String s_age =  request.getParameter("age");
				int age = Integer.parseInt(s_age);
				String sex = request.getParameter("sex");
				User user = new User();
				user.setId(id);
				user.setPassword(passw);
				user.setAge(age);
				user.setSex(sex);
				UserCl userCl = new UserCl();
				
				if(userCl.addUser(user)){
					request.getRequestDispatcher("success.jsp").forward(request, response);
				}else{
					request.getRequestDispatcher("failure.jsp").forward(request, response);
				}
				
			} catch (Exception e) {
				e.printStackTrace();
				// TODO: handle exception
			}
			
		}else if("select".equals(flag)){
			try {
				String id = request.getParameter("id");
				String passw = request.getParameter("passw");
				UserCl userCl = new UserCl();
				User user = userCl.selectUser(id, passw);
				if(user!=null){
					request.setAttribute("user", user);
					request.getRequestDispatcher("display.jsp").forward(request, response);
					
				}else{
					request.getRequestDispatcher("failure.jsp").forward(request, response);
				}
			} catch (Exception e) {
				e.printStackTrace();
				// TODO: handle exception
			}
			
		}
		
	}

	
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		
		this.doGet(request, response);

	}

}

 (4)UserCl.java

package com.dtg.model;
 
import java.sql.*;
import java.util.ArrayList;
public class UserCl {
	
	Connection conn = null;
	Statement sm = null; //prepareStatement,预处理
	ResultSet rs = null;
	boolean flag = false;
	
	int pageSize = 3; // 页面大小
	int pageNow = 1;//默认显示第一页
	int rowCount = 0;//总记录数,从数据库中查询
	int pageCount = 0; //页数,(rowCount/pageSize)+1
	
	//关闭连接
	public void closeConn() throws SQLException{
		try {
			if(rs != null){
				rs.close();
				rs = null;
			}
			if(sm!=null){
				sm.close();
				sm = null;
			}
			if(conn!=null){
				conn.close();
				conn = null;
			}
		} catch (Exception e) {
			
			e.printStackTrace();
			// TODO: handle exception
		}
		
	}
	public boolean checkUser(String id, String passw){
		
		try {
			
			ConnDB conndb =new ConnDB();
			conn = conndb.getConn();
			sm = conn.createStatement();
	    	rs = sm
	    			.executeQuery("select password from user2 where id ='" + id
	    					+ "'");
	    	if (rs.next()) {
	    		//确保用户名id是存在的
	    		if (rs.getString(1).equals(passw)) {
	    			//密码正确,用户合法
	    			flag = true;
	    		} else {
	    			//密码不正确,用户不合法
	    			flag = false;
	    		}
	    	} else {
	    		//用户不存在
	    		flag = false;
	    	}
			
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}finally{
			try {
				this.closeConn();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
		return flag;
	}
	
	/**
	 * 得到分页的页数
	 * @return
	 */
	public int getPageCount(){
		try {
			conn = new ConnDB().getConn();
			sm = conn.createStatement();
			rs = sm.executeQuery("select count(*) from user2");
			if (rs.next()) {
				rowCount = rs.getInt(1);
			}

			// 计算pageCount
			if (rowCount % pageSize == 0) {
				pageCount = rowCount / pageSize;
			} else {
				pageCount = rowCount / pageSize + 1;
			}
		} catch (Exception e) {
			// TODO: handle exception
		}finally{
			try {
				this.closeConn();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
		return pageCount;
	}
	
	/**
	 * 取要分页显示的数据
	 */
	public ArrayList<User> getUserByPage(int pageNow){
		ArrayList<User> al =  new ArrayList<User>();
		try {
			conn = new ConnDB().getConn();
			sm = conn.createStatement();
			rs = sm.executeQuery("select top "+ pageSize+ " * from user2 where userId not in (select top "+ pageSize*(pageNow-1)+" userId from user2 order by userId) order by userId");
			while(rs.next()){
				User user = new User();
				user.setUserId(rs.getInt(1));
				user.setId(rs.getString(2));
				user.setPassword(rs.getString(3));
				user.setAge(rs.getInt(4));
				user.setSex(rs.getString(5));
				
				//添加user到动态数组中
				al.add(user);
			}
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}finally{
			try {
				this.closeConn();
			} catch (Exception e2) {
				e2.printStackTrace();
				// TODO: handle exception
			}
		}
		return al;
	}
	
	/**
	 * 删除用户
	 */
	public boolean delUser(String userId){
		boolean b = false;
		try {
			conn = new ConnDB().getConn();
			sm = conn.createStatement();
//			删除或更新几条,返回数字几
			int a = sm.executeUpdate("delete from user2 where userId = '"+userId+"'");
			if(a==1){
				b = true;//删除成功
			}
		} catch (Exception e) {
			e.printStackTrace();
			// TODO: handle exception
		}finally{
			try {
				this.closeConn();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		return b;
	}
	
	/**
	 * 修改用户信心
	 */
	public boolean updateUser(User user,String userId){
		
		boolean b = false;
		try {
			conn = new ConnDB().getConn();
			sm = conn.createStatement();
			int a = sm.executeUpdate("update user2 set password ='"+user.getPassword()+"',age='"+user.getAge()+"',sex='"+user.getSex()+"' where userId = '"+userId+"'");
			if(a==1){
				b = true;
			}
		} catch (Exception e) {
			e.printStackTrace();
			// TODO: handle exception
		}
		return b;
	}
	
	/**
	 * 注册新用户
	 */
	public boolean addUser(User user){
		boolean b = false;
		try {
			conn = new ConnDB().getConn();
			sm = conn.createStatement();
//			删除或更新几条,返回数字几
			int a = sm.executeUpdate("insert into user2 (id,password,age,sex) values ('"+user.getId()+"','"+user.getPassword()+"','"+user.getAge()+"','"+user.getSex()+"')");
			if(a==1){
				b = true;
			}
		} catch (Exception e) {
			e.printStackTrace();
			// TODO: handle exception
		}
		return b;
	}
	
	/**
	 * 查找用户
	 */
	public User selectUser(String id, String passw){
		User user = new User();
		try {
			conn = new ConnDB().getConn();
			sm = conn.createStatement();
//			根据用户id和password检索用户
			rs = sm.executeQuery("select id,age,sex from user2 where id='"+id+"' and password='"+passw+"'");
			while(rs.next()){
				user.setId(rs.getString(1));
				user.setAge(rs.getInt(2));
				user.setSex(rs.getString(3));
			}
		} catch (Exception e) {
			e.printStackTrace();
			// TODO: handle exception
		}
		return user;
	}
}

 (5)login_success.jsp

	
		<script type="text/javascript">
			<!--
				function check(){
					return window.confirm("您确定要注销吗?");
				}
			 -->
		</script>
	
	</head>
	<body bgcolor="#FFFFFF">
		<%
			String id = (String)session.getAttribute("id");
			if(id==null){
			//返回登陆界面(目前学过的内置对象response,request,out,session)
				response.sendRedirect("login.jsp?err=1");
				return ;
			}
		 %>
		<img src="img/logo.png">
		<center>
			<h2> 
				登陆成功 ,欢迎[<font color="red"><%=id %></font>]光临,<a href="/jsp1/index.jsp">返回重新登录</a>
			</h2>
			<hr>
			<%
				//接受用户想要显示的页面
				String s_pageNow = (String)request.getAttribute("pageNow");
				
				int pageNow = Integer.parseInt(s_pageNow);
			
				//要显示的数据,用request来取
				ArrayList<User> al = (ArrayList<User>)request.getAttribute("result");
				
				//	object -->String -->int
				
				String s_pageCount = (String)request.getAttribute("pageCount");
				int pageCount = Integer.parseInt(s_pageCount);
				String []color = {"#b2d235","#f47920"};
				
				//用表格显示
				%>
					<table border="1">
							<tr bgcolor="#f47920"><td>userId</td><td>ID</td><td>PASSWORD</td><td>AGE</td><td>SEX</td>
							<td>Delete</td><td>Update</td>
							</tr>
							<%
								for(int i=0;i<al.size();i++){
									User user = (User)al.get(i);
									%>
										<tr bgcolor="<%=color[i%2] %>"><td><%=user.getUserId() %></td><td><%=user.getId() %></td>
										<td><%=user.getPassword() %></td>
										<td><%=user.getAge() %></td><td><%=user.getSex() %></td>
										<td><a onclick="return check()" href="UserServlet?flag=del&userId=<%=user.getUserId() %>">Delete</a></td>
										<td><a href="updateUser.jsp?userId=<%=user.getUserId() %>">Update</a></td>
										</tr>
									<%
								}
							 %>
						</table>
				<%
				//显示超链接
				if(pageNow != 1){
						out.print("<a href=UserServlet?flag=fy&pageNow="+(pageNow-1)+" >上一页</a>");
					}
				
				if(pageNow > 6 && pageNow <= (pageCount-4)){
					for(int i=pageNow-5;i<=pageNow+4;i++){
						out.println("<a href=UserServlet?flag=fy&pageNow="+i+">["+i+"]</a>");
					}
				}else if(pageNow >(pageCount-4) ){
					for(int i=pageCount-9;i<=pageCount;i++){
						out.println("<a href=UserServlet?flag=fy&pageNow="+i+">["+i+"]</a>");
					}
				}else{
					for(int i=1;i<=10;i++){
				//要是pageCount > 10  则不显示全部,只显示前10页的超链接
				//for(int i=1;i<=pageCount;i++)
					out.println("<a href=UserServlet?flag=fy&pageNow="+i+">["+i+"]</a>");
					}
				}
				
				if(pageNow != pageCount){
					out.print("<a href=UserServlet?flag=fy&pageNow="+(pageNow+1)+">下一页</a>");
				}
				
			%>
		</center>

	</body>
</html>

 (6)updateUser.jsp

  </head>
 
	<body bgcolor="#FFFFFF">
		<img src="img/logo.png">
		<center>
		<h2>请输入要修改的用户信息</h2>
		<hr>
		
		<form action="UserServlet?flag=update&userId=<%=request.getParameter("userId") %>" method="post">
			密&nbsp;&nbsp;码:
			<input type="password" name="passw" />
			<br>
			年&nbsp;&nbsp;龄:
			<input type="text" name="age" />
			<br>
			性&nbsp;&nbsp;别:
			<input type="text" name="sex" />
			<br>
			<input type="submit" value="更改" />
			<input type="reset" value="重置" />
			<hr>
		</form>
		</center>
	</body>
</html>

 

分享到:
评论

相关推荐

    增删改查管理系统

    "增删改查管理系统"通常是指一个用于管理和操作数据库中数据的软件系统,它提供了用户友好的界面,使得非技术人员也能方便地进行数据操作。 在设计这样一个系统时,首先要明确系统的目标用户和数据类型。例如,提供...

    增删改查系统

    在IT行业中,增删改查(CRUD,Create, Read, Update, Delete)是数据库操作的基础,也是大多数应用系统的常用功能。"增删改查系统"通常是指一个能够执行这些基本数据库操作的软件模块,它使得开发者能够方便地管理...

    Android+SQlite《学生信息管理系统》(增删改查)源代码

    Android+SQlite 简单的《学生信息管理系统》(实现基本增删改查) 此代码中还有与其相对应的apk文件(在SIMS/bin目录中),大家可先行放手机上看一下效果。 希望对初学者有一定的帮助。(本人自己编写)

    增删改查图标

    在IT行业中,"增删改查"(CRUD)是数据操作的基础,它代表了创建(Create)、读取(Read)、更新(Update)和删除(Delete)四种基本操作。这四个术语广泛应用于数据库管理和Web应用开发中。增删改查图标通常被用来...

    C#实现增删改查 学生管理系统

    在本项目中,"C#实现增删改查 学生管理系统"是一个使用C#编程语言构建的应用程序,主要用于管理学生信息。这个系统基于Access数据库,提供了对学生数据的基本操作,包括添加新学生、删除现有学生、修改学生信息以及...

    小区业主管理系统(增删改查)

    【小区业主管理系统(增删改查)】是一个基于C#编程语言和.NET框架实现的简易版MVC三层架构的应用程序,主要用于实现小区物业管理中的数据管理功能。在这个系统中,核心功能包括对业主信息的增加、删除、修改和查询...

    ssm公司参加展会子公司员工增删改查

    这个系统是公司参加展会,基于ssm来做的基本的增删改查管理系统。可以看到每个公司来参加展会的人数,人员,职位信息,公司负责人,联系方式等等。系统中技术主要采用了,ajax jquery json ,有页面回显,其中性别...

    react实例-增删改查 人员管理系统

    "增删改查"是任何数据管理系统的基石。在React中,我们可以使用事件处理函数来触发这些操作。例如,当用户点击“添加”按钮时,一个handleAdd函数会被调用,负责收集表单数据并将其添加到数据列表中。同样,对于删除...

    delphi增删改查例子

    Delphi增删改查例子 Delphi是一种功能强大且广泛应用的编程语言,特别是在Windows平台上。Delphi增删改查小模块是Delphi编程语言中的一种常见的应用模块,本文将对Delphi增删改查小模块进行详细的解释和分析。 一...

    javaweb增删改查(含源码).zip

    总的来说,"javaweb增删改查(含源码).zip"这个项目为学习者提供了一个完整的JavaWeb应用实例,涵盖了从基础的JSP和Servlet到更高级的MVC设计模式的实践应用,同时涉及数据库操作和数据管理的核心技术。通过深入...

    增删改查 图标

    在IT行业中,"增删改查"(CRUD)是数据库操作的基础,代表着创建(Create)、读取(Read)、更新(Update)和删除(Delete)四种基本功能。这些操作广泛应用于各种应用程序,从简单的数据管理工具到复杂的业务系统。...

    php图书管理系统实现增删改查

    在本项目中,"php图书管理系统实现增删改查"是一个基于PHP开发的简单图书管理应用,旨在帮助用户轻松地管理图书数据,包括添加新图书、删除现有图书、修改图书信息以及查询图书详情。这个系统对于初学者来说,是理解...

    C#MVC酒店管理系统增删改查

    《C# MVC 酒店管理系统中的增删改查实现详解》 在信息化时代,酒店管理系统的高效运作对于提升服务质量、优化运营效率至关重要。本文将深入探讨基于C# MVC技术构建的酒店管理系统中的核心功能——增删改查(CRUD)...

    jsp+serlvet增删改查员工系统

    【标题】"jsp+serlvet增删改查员工系统"是基于Java Web技术构建的员工信息管理系统。这个系统利用了JavaServer Pages (JSP) 和Servlet这两种核心技术,结合MySQL数据库,实现对员工数据的全面操作,包括添加、删除、...

    bootstrap增删改查页面

    这个“bootstrap增删改查页面”显然与使用Bootstrap来设计和实现数据管理界面有关,通常包括添加、编辑、删除和查询等功能。下面我们将深入探讨Bootstrap在构建这种页面时的关键知识点。 1. **响应式布局**:...

    学生管理系统登录注册增删改查全都都有

    本系统,名为"学生管理系统登录注册增删改查全都都有",是一个集成了全面功能的平台,旨在高效地管理和处理学生信息,与数据库紧密集成,为教学管理工作提供了极大的便利。以下将详细探讨该系统的几个核心知识点。 ...

    smm图书管理系统的增删改查

    基于SSM(spring+springmvc+mybatis+Bootstrap)图书系统的增删改查,这个项目可以用来练手,也可以用来交学校布置的作业 前端使用框架Bootstrap,简单易上手,即使不会前端的也不用怕看不懂 后端使用框架,Spring+...

    读取本地Excel文件增删改查的学生信息管理系统源码

    这是一个使用Python3编程语言开发的学生信息管理系统,它利用tkinter库构建GUI图形用户界面,并通过操作Excel文件来实现对学生成绩数据的增删改查功能。系统的主要目标是为教育机构或教师提供一个简单易用的工具,...

    Java编写的简单的图书管理系统(增删改查)

    【Java编写的简单的图书管理系统(增删改查)】是一个基于Java技术的图书管理软件,主要功能涵盖了图书信息的添加、删除、修改和查询。这个系统没有采用任何框架,而是直接利用了Java的基础特性以及相关的Web技术来...

    学生管理系统(增删改查)

    《学生管理系统(增删改查)——Java与MySQL的完美结合》 在信息化时代,学生管理系统的应用已经广泛普及,它极大地提高了教育机构的工作效率,简化了学生信息的管理流程。本项目“学生管理系统(增删改查)”采用Java...

Global site tag (gtag.js) - Google Analytics