建设工程管理系统

做一个建设工程管理系统

对于任何项目开发,CRUD(create,read,update,delete)是应用程序中最重要的操作和应用之一。 在Servlet中,我们可以轻松创建CRUD应用程序。

准备数据库(这里使用Sql Server)
创建表 ,插入数据

数据库表
搭建框架
下载 sql server 驱动包
框架图

编写model层代码

package com.model;

public class t_project {
	String project_id;
	String project_name;
	String deputy_name;
	String telephone;
	String addr;
	public String getProject_id() {
		return project_id;
	}
	public void setProject_id(String project_id) {
		this.project_id = project_id;
	}
	public String getProject_name() {
		return project_name;
	}
	public void setProject_name(String project_name) {
		this.project_name = project_name;
	}
	public String getDeputy_name() {
		return deputy_name;
	}
	public void setDeputy_name(String deputy_name) {
		this.deputy_name = deputy_name;
	}
	public String getTelephone() {
		return telephone;
	}
	public void setTelephone(String telephone) {
		this.telephone = telephone;
	}
	public String getAddr() {
		return addr;
	}
	public void setAddr(String addr) {
		this.addr = addr;
	}
	public t_project(String project_id, String project_name,
			String deputy_name, String telephone, String addr) {
		super();
		this.project_id = project_id;
		this.project_name = project_name;
		this.deputy_name = deputy_name;
		this.telephone = telephone;
		this.addr = addr;
	}
	public t_project() {
		super();
	}
	
}

编写dao层代码

因为有大量公共的代码所以抽取出去做一个父类

package com.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/*
 * 封装数据库的操作
 * 执行SQL语句,不返回数据:insert/update/
 * 执行SQL语句,放回数据:select,返回ResultSet
 */
public class BaseDao {
    String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";
    String url="jdbc:sqlserver://DESKTOP-6PS0PMV\\SQL2012:1433;databaseName=projectdb";
    String user="sa";
    String password="123";
    
    /*
	 * insert/update/delete
	 */
    public void executeNoQuery(String sql){
    	try {
			Class.forName(driver);//加载驱动
		try {
			Connection conn=DriverManager.getConnection(url, user, password);//创建连接
			Statement stmt= conn.createStatement();//执行SQL语句
			stmt.execute(sql);		
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    }
    
    /*
     * select
     */
    public ResultSet executeQuery(String sql){
    	 ResultSet rs=null;
    	 try {
			Class.forName(driver);
		 try {
			Connection conn=DriverManager.getConnection(url, user, password);
			     Statement  stmt= conn.createStatement();
			     rs=stmt.executeQuery(sql);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return rs;
    	
    }
}

package com.dao;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.model.t_project;

public class ProjectDao extends BaseDao{
    
	//插入
	public void Insert(t_project project){
		String sql="insert into t_project(project_id, project_name, deputy_name, telephone, addr) values('"+ 
				project.getProject_id() +"', '"+ project.getProject_name() +"', '"+ project.getDeputy_name() +"', '"+ project.getTelephone() +"', '"+ project.getAddr() +"')";
		
				//调用 父类的方法 
		   super.executeNoQuery(sql);
	}
	
	//修改
	public void Update(t_project project){
		String sql = "update t_project set project_name='"+ project.getProject_name() +"', deputy_name='"+ project.getDeputy_name() +"', telephone='"+ project.getTelephone() +"', addr='"+ project.getAddr() +"'";
		sql += " where project_id = '"+ project.getProject_id() +"'";
		
		super.executeNoQuery(sql);
	}
	
	//删除
	public void Delete(String project_id){
		String sql = "delete from t_project where project_id='"+ project_id +"'";
		super.executeNoQuery(sql);
	}
	
	//查询所有,按条件查询
	public List<t_project> select(){
		List<t_project> projectList =new ArrayList<t_project>();
		
		String sql="select * from t_project";
		ResultSet rs =super.executeQuery(sql);
		//将ResultSet转化为list集合
		try {
			while(rs.next()){
				//读取数据
				String project_id = rs.getString("project_id");
				String project_name = rs.getString("project_name");
				String deputy_name = rs.getString("deputy_name");
				String telephone = rs.getString("telephone");
				String addr = rs.getString("addr");
				System.out.println( project_id );
				//构建对象,用一条记录的数据
				t_project project =new t_project(project_id, project_name, deputy_name, telephone, addr);
				
				projectList.add(project);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return projectList;
	}
	
	//查询,按照主键ID
	public t_project selectByID(String id){
		 t_project project =new t_project();
		 
		 String sql = "select * from t_project where project_id='"+ id +"'";
			ResultSet rs = super.executeQuery(sql);
			try {
				if(rs.next()){
					//读取字段的数据
					String project_id = rs.getString("project_id");
					String project_name = rs.getString("project_name");
					String deputy_name = rs.getString("deputy_name");
					String telephone = rs.getString("telephone");
					String addr = rs.getString("addr");
					
					//设置对象属性
					project.setProject_id(project_id);
					project.setProject_name(project_name);
					project.setDeputy_name(deputy_name);
					project.setTelephone(telephone);
					project.setAddr(addr);
				}
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		return project;
	}
}

测试一下

package com.dao;

import com.model.t_project;

public class test {
   public static void main(String[] args) {
	   t_project project =new t_project("2020-11", "软件学院", "忘忧3", "520520520", "不详");
	   ProjectDao projectDao =new ProjectDao();
	   projectDao.Insert(project);
	   System.out.println("insert is ok!");
}
}

测试

编写视图层

projectlist.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'projectlist.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
    
<div style="float:left; width:100%;">
	<!--头部-->
    <div style="float:left; width:100%; background-color:#cccccc; height:120px;">
    	<div style="float:right; font-size:30px; color:#FFF; padding-top:40px; padding-right:30px;">
        	建设工程监管信息系统
        </div>
        
        <div style="float:left; padding-top:90px;">
        	<a href="#">系统管理</a>
            &nbsp;&nbsp;
            <a href="#">业务处理</a>
            &nbsp;&nbsp;
            <a href="#">交易流程</a>
            &nbsp;&nbsp;
            <a href="#" style="margin-left:100px;">退出系统</a>
        </div>
    </div>
    
    <!--内容-->
    <div style="float:left; width:100%;">
    	<!--左边功能导航-->
        <div style="float:left; width:20%; background-color:#eeeeee; min-height:600px; ">
        	<ul>
            	<li> <a href="#">施工报建申请</a> </li>
                <li> <a href="#">入场交易登记</a> </li>
                <li> <a href="#">项目招标登记</a> </li>
                <li> <a href="#">发布招标公告</a> </li>
            </ul>
        </div>
        
       	<!--内容-->
        <div style="float:left; width:80%;">
        	<div style="float:left; border-bottom:1px solid #cccc; width:100%;">
            	>>项目信息录入
				<span style="margin-left:80px;">
                	您的位置:招投标流程->
                </span>
            </div>
            
            <div style="float:right; margin-top:10px; margin-right:10px;">            	
            	<input type="button" value="新建工程" onclick="location.href='projectadd.jsp'" />
            </div>
            
            <div style="float:left; width:100%; margin-top:20px; ">
            	<table style="width:98%;" align="center">
                	<tr>
                    	<td colspan="3" style="background-color:#666; color:#fff;">项目信息</td>
                        
                    </tr>
                    <tr style="background-color:#ccc;">
                    	<td>工程编号</td>
                        <td>工程名称</td>
                        <td>相关操作</td>
                    </tr>
                    <c:forEach items="${list}" var="project">
                    <tr>
                    	<td> ${project.project_id } </td>
                        <td> ${project.project_name } </td>
                        <td> 
                        		<a href="ProjectServlet?action=listbyid&id=${project.project_id }">修改</a> 
                        		<a href="ProjectServlet?action=del&id=${project.project_id }">删除</a>
                        </td>
                    </tr>
                    </c:forEach>
                </table>
                
                
            </div>
        </div>
    </div>
    
</div>


  </body>
</html>

projectadd.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'projectadd.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
    <div style="float:left; width:100%;">
	<!--头部-->
    <div style="float:left; width:100%; background-color:#cccccc; height:120px;">
    	<div style="float:right; font-size:30px; color:#FFF; padding-top:40px; padding-right:30px;">
        	建设工程监管信息系统
        </div>
        
        <div style="float:left; padding-top:90px;">
        	<a href="#">系统管理</a>
            &nbsp;&nbsp;
            <a href="#">业务处理</a>
            &nbsp;&nbsp;
            <a href="#">交易流程</a>
            &nbsp;&nbsp;
            <a href="#" style="margin-left:100px;">退出系统</a>
        </div>
    </div>
    
    <!--内容-->
    <div style="float:left; width:100%;">
    	<!--左边功能导航-->
        <div style="float:left; width:20%; background-color:#eeeeee; min-height:600px; ">
        	<ul>
            	<li> <a href="#">施工报建申请</a> </li>
                <li> <a href="#">入场交易登记</a> </li>
                <li> <a href="#">项目招标登记</a> </li>
                <li> <a href="#">发布招标公告</a> </li>
            </ul>
        </div>
        
       	<!--内容-->
        <div style="float:left; width:80%;">
        	<div style="float:left; border-bottom:1px solid #cccc; width:100%;">
            	>>项目信息录入
				<span style="margin-left:80px;">
                	您的位置:招投标流程->
                </span>
            </div>
            
            <div style="float:right; margin-top:10px; margin-right:10px;">
            	<input type="button" value="新建工程" />
            </div>
            
            <div style="float:left; width:100%; margin-top:20px; ">
            	<form method="post" action="ProjectServlet?action=add">
            	<table style="width:98%;" align="center">
                	<tr>
                    	<td colspan="3" style="background-color:#666; color:#fff;">项目信息添加</td>
                        
                    </tr>
                    <tr >
                    	<td align="right">工程编号:</td>
                        <td> <input type="text" name="id" /> </td>
                    </tr>
                    <tr >
                    	<td align="right">工程名称:</td>
                        <td> <input type="text" name="projectname" /> </td>
                    </tr>
                    <tr >
                    	<td align="right">法人代表:</td>
                        <td> <input type="text" name="deputyname" /> </td>
                    </tr>
                    <tr >
                    	<td align="right">建设单位电话:</td>
                        <td> <input type="text" name="phone" /> </td>
                    </tr>
                    <tr >
                    	<td align="right">建设单位地址:</td>
                        <td> <input type="text" name="addr" /> </td>
                    </tr>
                    <tr>
                    	<td></td>
                        <td> <input type="submit" value="确定" /> </td>
                    </tr>
                </table>
                </form>
                
            </div>
        </div>
    </div>
    
</div>
  </body>
</html>

projectedit.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'projectedit.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
    
<div style="float:left; width:100%;">
	<!--头部-->
    <div style="float:left; width:100%; background-color:#cccccc; height:120px;">
    	<div style="float:right; font-size:30px; color:#FFF; padding-top:40px; padding-right:30px;">
        	建设工程监管信息系统
        </div>
        
        <div style="float:left; padding-top:90px;">
        	<a href="#">系统管理</a>
            &nbsp;&nbsp;
            <a href="#">业务处理</a>
            &nbsp;&nbsp;
            <a href="#">交易流程</a>
            &nbsp;&nbsp;
            <a href="#" style="margin-left:100px;">退出系统</a>
        </div>
    </div>
    
    <!--内容-->
    <div style="float:left; width:100%;">
    	<!--左边功能导航-->
        <div style="float:left; width:20%; background-color:#eeeeee; min-height:600px; ">
        	<ul>
            	<li> <a href="#">施工报建申请</a> </li>
                <li> <a href="#">入场交易登记</a> </li>
                <li> <a href="#">项目招标登记</a> </li>
                <li> <a href="#">发布招标公告</a> </li>
            </ul>
        </div>
        
       	<!--内容-->
        <div style="float:left; width:80%;">
        	<div style="float:left; border-bottom:1px solid #cccc; width:100%;">
            	>>项目信息修改
				<span style="margin-left:80px;">
                	您的位置:招投标流程->
                </span>
            </div>
            
            <div style="float:right; margin-top:10px; margin-right:10px;">
            	<input type="button" value="返回" onclick="location.href='ProjectServlet?action=list'" />
            </div>
            
            <div style="float:left; width:100%; margin-top:20px; ">
            	<form method="post" action="ProjectServlet?action=edit">
            	<table style="width:98%;" align="center">
                	<tr>
                    	<td colspan="3" style="background-color:#666; color:#fff;">项目信息修改</td>
                        
                    </tr>
                    <tr >
                    	<td align="right">工程编号:</td>
                        <td> <input type="text" value="${project.project_id }" name="project_id" readonly="readonly" /> </td>
                    </tr>
                    <tr >
                    	<td align="right">工程名称:</td>
                        <td> <input type="text" value="${project.project_name }" name="project_name" /> </td>
                    </tr>
                    <tr >
                    	<td align="right">法人代表:</td>
                        <td> <input type="text" value="${project.deputy_name }" name="deputy_name" /> </td>
                    </tr>
                    <tr >
                    	<td align="right">建设单位电话:</td>
                        <td> <input type="text" value="${project.telephone }" name="telephone" /> </td>
                    </tr>
                    <tr >
                    	<td align="right">建设单位地址:</td>
                        <td> <input type="text" value="${project.addr}" name="addr" /> </td>
                    </tr>
                    <tr>
                    	<td></td>
                        <td> <input type="submit" value="确定" /> </td>
                    </tr>
                </table>
                </form>
                
            </div>
        </div>
    </div>
    
</div>


  </body>
</html>

编写controller层

package com.controller;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

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

import com.dao.ProjectDao;
import com.model.t_project;

public class ProjectServlet extends HttpServlet {

	
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		doPost(request,response);
	}

	
	 
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
		
		//页面的编码设置
		request.setCharacterEncoding("utf-8");
		
		//客服端传一个action,表示具体的动作(操作)
		String action=request.getParameter("action");
		ProjectDao projectDao =new ProjectDao();
		
		if(action.equals("add")){
			//执行操作
			String id = request.getParameter("id");
			String projectname = request.getParameter("projectname");
			String deputyname= request.getParameter("deputyname");
			String phone = request.getParameter("phone");
			String addr = request.getParameter("addr");
			
			//生成实体对象
			t_project project = new t_project(id, projectname, deputyname, phone, addr);
		    
			//调用dao中的方法
			projectDao.Insert(project);
			//转向到列表
			response.sendRedirect("ProjectServlet?action=list");
		}else if(action.equals("edit")){
			//执行修改
			//获取表单信息
			String project_id = request.getParameter("project_id");
			String project_name = request.getParameter("project_name");
			String deputy_name = request.getParameter("deputy_name");
			String telephone = request.getParameter("telephone");
			String addr = request.getParameter("addr");
			
			//构建project对象,调用修改的方法
			t_project project = new t_project(project_id, project_name, deputy_name, telephone, addr);
			projectDao.Update(project);
			
			//转向到列表
			response.sendRedirect("ProjectServlet?action=list");
		}else if(action.equals("del")){
			//执行删除
			//得到工程号
			String id =request.getParameter("id");
			projectDao.Delete(id);
			
			//重转向到 Serlvet显示
			response.sendRedirect("ProjectServlet?action=list");
		}else if(action.equals("list")){
			//执行查询
			List<t_project> projectlist =projectDao.select();
			//将数据加到request请求,页面转发
			request.setAttribute("list", projectlist);
			request.getRequestDispatcher("projectlist.jsp").forward(request, response);
		
		}else if(action.equals("listbyid")){
			//执行关键字的查询
			//得到id
			String id =request.getParameter("id");
			t_project project = projectDao.selectByID(id);
			
			//将查询得到的对象,转向到 修改页面
			request.setAttribute("project", project);
			request.getRequestDispatcher("projectedit.jsp").forward(request, response);
		
		}else{
			//执行查询
		}
	}

}

项目演示

效果图
项目列表
在这里插入图片描述

  • 8
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
在日常办公中有许多常用的个人数据,如朋友电话、邮件地址、日程安排、日常记事、文件上传和下载,这些都可以用一个个人信息管理系统进行管理。个人信息管理系统可以内置于手掌上的数字处理器,以提供电子名片、便条、行程管理等功能。本项目基于B/S设计,也可以发布到网上,用户可以随时存取个人信息。 用户可以在系统中任意添加、修改、删除个人数据,包括个人的基本信息、个人通讯录、日程安排、个人文件管理。 要实现的功能包括四个方面: (1)登录与注册 系统的登录和注册功能。 (2)个人基本信息管理模块 系统中对个人基本信息的管理包括:个人的姓名、性别、出生日期、民族、学历、职称、登录名、密码、电话、家庭住址等。 (2)用户个人通讯录模块 系统的个人通讯录是保存了个人的通讯录信息,包括自己联系人的姓名、电话、邮箱、工作单位、地址、QQ等。可以自由添加联系人的信息,查询或删除联系人。 (3)日程安排模块 日程模块记录自己的活动安排或者其它有关事项,如添加从某一时间到另一时间要做什么事,日程标题、内容、开始时间、结束时间。可以自由查询,修改,删除。 (4)个人文件管理模块 该模块实现用户在网上存储临时文件的功能。用户可以新建文件夹,修改、删除、移动文件夹;上传文件、修改文件名、下载文件、删除文件、移动文件等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值