实现家庭记账本的展示全部账目以及对账目进行删除和修改操作

本次演示,直接从登陆完成后开始

show.jsp

<%@page import="java.util.List"%>
<%@page import="com.zzw.entity.Bill"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>总览账目</title>
</head>
 <style type="text/css">
        *{margin: 0;padding: 0}
        html,body{height: 100%}     /*这里很关键*/
 
        .outer-wrap{
            /*只有同时为html和body设置height: 100%时,这里的height才生效,
            并且随浏览器窗口变化始终保持和浏览器视窗等高*/
            height: 100%;    
            position: relative;
            background-image: url('images/01.jpg');
        }
        .show-panel{
            width: 400px;
            height: 300px;
            background-image: url('images/05.jpg');
            position: absolute;
            top: 50%;
            left: 50%;
            margin-top: -150px;
            margin-left: -200px;
        }
    </style>
<body>
      <%
         request.setCharacterEncoding("utf-8");
         String message=(String)request.getAttribute("message");
         if(message!=null){
         if(message.equals("error")){
             %>
             <script type="text/javascript">
              alert("操作失败");
         </script>
         <%
      }else if(message.equals("noerror")){
          %>
          <script type="text/javascript">
              alert("操作成功");
         </script>
         <%
      }else{
      }
      }
      %>
<div class="outer-wrap">
      <div style="font-size:160px;text-align:center">家庭记账本</div>
      <div class="show-panel">
      <a href=index.jsp>返回系统首页</a><br>
          <table border="1px">
         <tr>
         <th>账目编号</th>
         <th>账目类型</th>
         <th>金额</th>
         <th>账目日期</th>
         </tr>
         <%
         List <Bill> bills =(List<Bill>) request.getAttribute("bills");
           for(Bill bill:bills){
               %>
               
               <tr>                   
                   <td><%=bill.getBid() %></td>
                   <td><%=bill.getBtype() %></td>
                   <td><%=bill.getBmoney() %></td>
                   <td><%=bill.getBdate() %></td>
                   <td><a href ="DeleteBillServlet?bid=<%=bill.getBid() %>">删除</a></td>
                   <td><a href="QueryBillServlet?bid=<%=bill.getBid() %>">查询</a></td>
               </tr>
               <%
           }
         %>
      </table>
      </div>
      </div>
</body>
</html>

billinfo.jsp

<%@page import="com.zzw.entity.Bill"%>
<%@ 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>
 <style type="text/css">
        *{margin: 0;padding: 0}
        html,body{height: 100%}     /*这里很关键*/
 
        .outer-wrap{
            /*只有同时为html和body设置height: 100%时,这里的height才生效,
            并且随浏览器窗口变化始终保持和浏览器视窗等高*/
            height: 100%;    
            position: relative;
            background-image: url('images/01.jpg');
        }
        .info-panel{
            width: 400px;
            height: 300px;
            background-image: url('images/05.jpg');
            position: absolute;
            top: 50%;
            left: 50%;
            margin-top: -150px;
            margin-left: -200px;
        }
    </style>
<body>
      <%
         request.setCharacterEncoding("utf-8");
         String message=(String)request.getAttribute("message");
         if(message!=null){
         if(message.equals("error")){
             %>
             <script type="text/javascript">
              alert("操作失败");
         </script>
         <%
      }else if(message.equals("noerror")){
          %>
          <script type="text/javascript">
              alert("操作成功");
         </script>
         <%
      }else{
      }
      }
      %>
<div class="outer-wrap">
      <div style="font-size:160px;text-align:center">家庭记账本</div>
      <div class="info-panel">
         <%
       Bill bill= (Bill)request.getAttribute("bill");
    %>
    <a href=index.jsp>返回系统首页</a><br>
    <form action="UpdateBillServlet">
    <div style="text-align:center">
             账目编号<input type="text" name="bid"  value="<%=bill.getBid() %>" readonly="readonly">
    </div>
        <div style="text-align:center">
             账目类型<input type="text" name="btype"  value="<%=bill.getBtype() %>" readonly="readonly">
    </div>
    <div style="text-align:center">
     金额<input type="text"  name="bmoney" value="<%=bill.getBmoney()%>"><br/>
    </div>
    <div style="text-align:center">
     日期<input type="date"  name="bdate" value="<%=bill.getBdate()%>"><br/>
    </div>
    <div style="text-align:center">
     备注<input type="text"  name="bremark" value="<%=bill.getBremark()%>"><br/>
    </div>
    <div style="text-align:center">
      <input type="submit" value="修改"><br/>
    </div>
    </form>
      </div>
      </div>
</body>
</html>

UpdateBillServlet.java

package com.zzw.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


import com.zzw.entity.Bill;
import com.zzw.service.IUserService;
import com.zzw.service.Impl.UserServiceImpl;


public class UpdateBillServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        response.setContentType("text/html; charset=utf-8");
        //获取待修改人的学号
        int id= Integer.parseInt(request.getParameter("bid"));
        //获取修改后的内容
        String type=request.getParameter("btype");
        int money= Integer.parseInt(request.getParameter("bmoney"));
        String date= request.getParameter("bdate");
        String remark= request.getParameter("bremark");
        //将修改后的内容封装到一个实体类中
        Bill bill = new Bill(type,money,date,remark);
        IUserService userservice = new UserServiceImpl();
        boolean result=userservice.UpdateBill(id,bill);
        if(!result) {
            request.setAttribute("message","error");
        }else {
            request.setAttribute("message","noerror");
        }
        request.getRequestDispatcher("QueryAllBillServlet").forward(request, response);
    }


    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}

DeleteBillServlet.java

package com.zzw.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


import com.zzw.service.IUserService;
import com.zzw.service.Impl.UserServiceImpl;

public class DeleteBillServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        response.setContentType("text/html; charset=utf-8");
        int id= Integer.parseInt(request.getParameter("bid"));
        IUserService userservice = new UserServiceImpl();
        boolean result=userservice.DeleteBill(id);

        if(!result) {
            request.setAttribute("message","error");
        }else {
            request.setAttribute("message","noerror");
        }
        request.getRequestDispatcher("QueryAllBillServlet").forward(request, response);
    }


    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}

QueryBillServlet.java

package com.zzw.servlet;

import java.io.IOException;
import java.io.PrintWriter;

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



import com.zzw.entity.Bill;
import com.zzw.service.IUserService;
import com.zzw.service.Impl.UserServiceImpl;


public class QueryBillServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        response.setContentType("text/html; charset=utf-8");
        //获取待查询修改人的学号
        int id= Integer.parseInt(request.getParameter("bid"));
        
        IUserService userservice = new UserServiceImpl();
        Bill bill=userservice.Query(id);
        //out对象的获取方法
        PrintWriter out = response.getWriter();
        out.println(bill);
        request.setAttribute("bill", bill);
        request.getRequestDispatcher("billinfo.jsp").forward(request, response);
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}

QueryAllBill.java

package com.zzw.servlet;

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.zzw.entity.Bill;
import com.zzw.service.IUserService;
import com.zzw.service.Impl.UserServiceImpl;


public class QueryAllBillServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        response.setContentType("text/html; charset=utf-8");
        
        IUserService userservice = new UserServiceImpl();
        List<Bill> bills=userservice.QueryAll();
        //out对象的获取方法
        PrintWriter out = response.getWriter();
        request.setAttribute("bills", bills);
        request.getRequestDispatcher("show.jsp").forward(request, response);
    }


    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}

UserServiceImpl.java

package com.zzw.service.Impl;




import java.util.List;


import com.zzw.dao.IUserDao;
import com.zzw.dao.Impl.UserDaoImpl;
import com.zzw.entity.Bill;
import com.zzw.entity.User;
import com.zzw.service.IUserService;

public class UserServiceImpl implements IUserService{
    IUserDao userdao= new UserDaoImpl();
    //登录
     public boolean Login(User user) {
            boolean flag=false;
          if(userdao.Login(user.getUname(),user.getUpwd())) {
                flag=true;
          }
          return flag;
     }
    //注册
    public boolean Register(User user) {
        boolean flag=false;
        if(!userdao.isExist(user.getUname())) {
            userdao.Register(user);
            flag=true;
        }else {
            System.out.println("此人已存在");
        }
       return flag; 
    }
  //根据账号查询用户
    public User Query(String uname) {
        return userdao.Query(uname);
    }
    //记账
    public boolean  AddBill(Bill bill) {
        boolean flag=false;
        if(userdao.AddBill(bill)) {
           flag=true;
        }
        return flag;
    }
    //根据账目编号进行删除
    public boolean DeleteBill(int  bid) {
        boolean flag=false;
        if(userdao.isExist(bid)) {
            userdao.DeleteBill(bid);
            flag=true;
        }else {
            System.out.println("此账目不存在");
        }
       return flag; 
    }
    //根据账目编号进行修改
    public boolean UpdateBill(int bid,Bill bill) {
        boolean flag=false;
        if(userdao.isExist(bid)) {
            userdao.UpdateBill(bid,bill);
            flag=true;
        }else {
            System.out.println("此账目不存在");
        }
       return flag; 
    }

    //根据账目编号查询账目
    public Bill Query(int bid) {
        return userdao.Query(bid);
    }
    //查询全部账单信息
       public List<Bill> QueryAll() {
       return userdao.QueryAll();
       }
}

IUserService.java

package com.zzw.service;

import java.util.List;

import com.zzw.entity.Bill;
import com.zzw.entity.User;

public interface IUserService {
    //登录
         public boolean Login(User user);
    //注册
         public boolean Register(User user) ;
    //根据账号查询用户
         public User Query(String uname) ;
    //记账
         public boolean  AddBill(Bill bill) ;
    //根据账目编号进行删除
         public boolean DeleteBill(int  bid);    
    //根据账目编号进行修改
         public boolean UpdateBill(int bid,Bill bill) ;
    //根据账目编号查询账目
         public Bill Query(int bid) ;
    //查询全部账单信息
         public List<Bill> QueryAll() ;
}

UserDaoImpl.java

package com.zzw.dao.Impl;

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


import java.util.ArrayList;

import com.zzw.dao.IUserDao;
import com.zzw.entity.Bill;
import com.zzw.entity.User;
import com.zzw.utils.DBUtil;

public class UserDaoImpl implements IUserDao{
    //注册
            public  boolean Register(User user) {
                 String sql="insert into user(uname,upwd,usex) values(?,?,?)" ;
                 Object [] params= {user.getUname(),user.getUpwd(),user.getUsex()};
                 return  DBUtil.executeUpdate(sql, params);
            }
            //查询账户是否存在
            public  boolean isExist(String uname) {
                return Query(uname)==null? false:true;
            }
    //登录
           public boolean Login(String uname,String upwd) {
               return Query(uname,upwd)==null? false:true;
           }
    //根据账号查询用户全部信息
    public   User Query(String uname) {
         User user= null;
         ResultSet rs = null; 
         try {
             String sql="select * from user where uname =?" ;
             Object [] params= {uname};
             rs=DBUtil.executeQuery(sql, params);
             if(rs.next()) {
                 String name=rs.getString("uname");
                 String pwd=rs.getString("upwd");
                 String sex=rs.getString("usex");
                 user= new User(name,pwd,sex);
             }
         }catch(SQLException e) {
             e.printStackTrace();
         }catch(Exception e) {
             e.printStackTrace();
         }finally {
             try {
                    //先开的后关,后开的先关
                if(rs!=null)rs.close();
                if(DBUtil.pstmt!=null)DBUtil.pstmt.close();
                if(DBUtil.connection !=null)DBUtil.connection.close();
                }catch(SQLException e) {
                    e.printStackTrace();
                }finally {
                    
                }
         }
         return user;
    }
    //根据账户密码确定是否存在
    public   User Query(String uname,String upwd) {
         User user= null;
         ResultSet rs = null; 
         try {
             String sql="select * from user where uname =? and upwd=?" ;
             Object [] params= {uname,upwd};
             rs=DBUtil.executeQuery(sql, params);
             if(rs.next()) {
                 String name=rs.getString("uname");
                 String pwd=rs.getString("upwd");
                 String sex=rs.getString("usex");
                 user= new User(name,pwd,sex);
             }
         }catch(SQLException e) {
             e.printStackTrace();
         }catch(Exception e) {
             e.printStackTrace();
         }finally {
             try {
                   //先开的后关,后开的先关
               if(rs!=null)rs.close();
               if(DBUtil.pstmt!=null)DBUtil.pstmt.close();
               if(DBUtil.connection !=null)DBUtil.connection.close();
               }catch(SQLException e) {
                   e.printStackTrace();
               }finally {
                   
               }
         }
         return user;
    }
    //记账
    public  boolean AddBill(Bill bill) {
        String sql="insert into bill(btype,bmoney,bdate,bremark) values(?,?,?,?)" ;
         Object [] params= {bill.getBtype(),bill.getBmoney(),bill.getBdate(),bill.getBremark()};
         return  DBUtil.executeUpdate(sql, params);
    }
  //根据账目编号删除账目信息
          public  boolean DeleteBill(int bid) {
          
               String sql="delete from bill where bid=?" ;
               Object [] params= {bid};
               return DBUtil.executeUpdate(sql, params);
          }
          //根据账目编号修改账目信息
          public  boolean UpdateBill(int bid,Bill bill) {
              
               String sql="update bill set btype =?,bmoney=?,bdate=?,bremark=? where bid =?" ;
               Object [] params= {bill.getBtype(),bill.getBmoney(),bill.getBdate(),bill.getBremark(),bid};
               return  DBUtil.executeUpdate(sql, params);
          }
          //查询账目是否存在
        public boolean isExist(int bid) {
           return Query(bid)==null? false:true;
       }
      //根据账目编号查询账目信息
          public   Bill Query(int bid) {
               Bill bill= null;
               ResultSet rs = null; 
               try {
                   String sql="select * from bill where bid =? " ;
                   Object [] params= {bid};
                   rs=DBUtil.executeQuery(sql, params);
                   if(rs.next()) {
                       int id=rs.getInt("bid");
                       String type=rs.getString("btype");
                       int money=rs.getInt("bmoney");
                       String date=rs.getString("bdate");
                       String remark=rs.getString("bremark");
                       bill=new Bill(id,type,money,date,remark);
                   }
               }catch(SQLException e) {
                   e.printStackTrace();
               }catch(Exception e) {
                   e.printStackTrace();
               }finally {
                   try {
                         //先开的后关,后开的先关
                     if(rs!=null)rs.close();
                     if(DBUtil.pstmt!=null)DBUtil.pstmt.close();
                     if(DBUtil.connection !=null)DBUtil.connection.close();
                     }catch(SQLException e) {
                         e.printStackTrace();
                     }finally {
                         
                     }
               }
               return bill;
          }        
  //查询全部账单信息
    public List<Bill> QueryAll() {
        List<Bill> bills = new ArrayList<>();
         Bill bill= null;
         ResultSet rs=null;
         try {
             String sql="select * from bill " ;
             rs=DBUtil.executeQuery(sql, null);
             while(rs.next()) {
                 int id=rs.getInt("bid");
                String type= rs.getString("btype");
                 int money=rs.getInt("bmoney");
                 String date= rs.getString("bdate");
                 String remark= rs.getString("bremark");
                 bill= new Bill(id,type,money,date,remark);
                 bills.add(bill);
             }
         }catch(SQLException e) {
             e.printStackTrace();
         }catch(Exception e) {
             e.printStackTrace();
         }finally {
             try {
                    //先开的后关,后开的先关
                if(rs!=null)rs.close();
                if(DBUtil.pstmt!=null)DBUtil.pstmt.close();
                if(DBUtil.connection !=null)DBUtil.connection.close();
                }catch(SQLException e) {
                    e.printStackTrace();
                }finally {
                    
                }
         }
         return bills;
    }
}

IUserDao.java

package com.zzw.dao;

import java.util.List;

import com.zzw.entity.Bill;
import com.zzw.entity.User;

public interface IUserDao {
    //注册
    public  boolean Register(User user) ;
    //查询账户是否存在
    public  boolean isExist(String uname) ;
    //登录
    public  boolean Login(String uname,String upwd) ;
    //根据帐号查询用户全部信息
    public   User Query(String uname) ;
    //记账
    public  boolean AddBill(Bill bill);
    //根据账目编号删除账目信息
    public  boolean DeleteBill(int bid);
  //根据账目编号修改账目信息
    public  boolean UpdateBill(int bid,Bill bill) ;
    //查询账目是否存在
    public boolean isExist(int bid) ;
    //根据账目编号查询账目信息
    public   Bill Query(int bid);
    //查询全部账单信息
       public List<Bill> QueryAll() ;
       
}

 

 

 

下面是测试截图

 

 

 

 此时,数据库中有我通过记账功能添加的三条账目

 

 点击查看全部账目

 

 此时未展示备注,点击查询

 

 将金额修改为400

 

 

 

 删除教育账目

 

posted @ 2020-01-27 19:56  夜月薇凉映银弩  阅读(520)  评论(0编辑  收藏  举报