2020.12.02

一、今日学习内容

     关于志愿者系统:

    Dao:

package Dao;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import entity.Teenager;
import util.DBUtil;
public class TeenagerDao {
    
    public boolean add(Teenager ten)
    {
        String sql="insert into teenager(name,sex,minzu,shijian,age,mianmao,fuwu)values"
                + "('" + ten.getName() + "','" + ten.getSex() + "','" + ten.getMinzu() + "','" + ten.getShijian() + "','" + ten.getAge() + "','" + ten.getMianmao() + "','" + ten.getFuwu() + "')";
        //创建数据库链接
        Connection conn=DBUtil.getConn();
        Statement state=null;
        boolean f=false;
        int a = 0;
        try {
            state = conn.createStatement();
            a=state.executeUpdate(sql);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            //关闭连接
            DBUtil.close(state, conn);
        }
        if(a>0)
            f=true;
        return f;
    }
    
    public Teenager getbyname(String name) {
        String sql = "select * from teenager where name ='" + name + "'";
        Connection conn = DBUtil.getConn();
        Statement state = null;
        ResultSet rs = null;
        Teenager ten = null;
        
        try {
            state = conn.createStatement();
            rs = state.executeQuery(sql);
            while (rs.next()) {
                int id=rs.getInt("id");
                String sex2 = rs.getString("sex");
                String minzu2 = rs.getString("minzu");
                String age=rs.getString("age");
                String mianmao2 = rs.getString("mianmao");
                String fuwu2 =rs.getString("fuwu");
                String shijian2=rs.getString("shijian");
                ten = new Teenager(id,name, sex2, minzu2,shijian2,age,mianmao2,fuwu2);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(rs, state, conn);
        }
        
        return ten;
    }
    
    
    //delete
        public boolean delete(String name)
        {
            String sql="delete * from teenager where name='" + name + "'";
            Connection conn = DBUtil.getConn();
            Statement state = null;
            int a = 0;
            boolean f = false;
            try {
                state = conn.createStatement();
                a=state.executeUpdate(sql);
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                DBUtil.close(state, conn);
            }
            
            if (a > 0) {
                f = true;
            }
            return f;
        }
        //update
        public boolean update(Teenager ten)
        {
            String sql="update teenager set name='" + ten.getName() + "',sex='" + ten.getSex() + "',minzu='" + ten.getMinzu() + "',shijian='" + ten.getShijian() + "',age='" + ten.getAge() + "',mianmao='" + ten.getMianmao() + "',fuwu='" + ten.getFuwu()
            + "' where id='" + ten.getId() + "'";
             Connection conn = DBUtil.getConn();
                Statement state = null;
                boolean f = false;
                int a = 0;

                try {
                    state = conn.createStatement();
                    a = state.executeUpdate(sql);
                } catch (SQLException e) {
                    e.printStackTrace();
                } finally {
                    DBUtil.close(state, conn);
                }
                
                if (a > 0) {
                    f = true;
                }
                return f;
        }
        //姓名不得重复
        public boolean name(String name) {
            boolean flag = false;
            String sql = "select name from teenager where name = '" + name + "'";
            Connection conn = DBUtil.getConn();
            Statement state = null;
            ResultSet rs = null;
            
            try {
                state=conn.createStatement();
                rs = state.executeQuery(sql);
                while (rs.next()) {
                    flag = true;
                }
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                DBUtil.close(rs, state, conn);
            }
            return flag;
        }
        
        //查找
        public List<Teenager> search(String name,String sex,String minzu,String mianmao,String fuwu,String shijian)
        {
            String sql = "select * from teenager where ";
            if (name != "") {
                sql += "name like '%" +name+ "%'";
            }
            if (sex != "") {
                sql += "sex like '%" +sex+ "%'";
            }
            if(minzu!="") {
                sql+="minzu like '%"+minzu+ "%'";
            }
            if(mianmao!="") {
                sql+="mianmao like '%" +mianmao+ "%'";
            }
            if(fuwu!="") {
                sql+="fuwu like '%" +fuwu+ "%'";
            }
            if(shijian!="") {
                sql+="shijian like '%" +shijian+ "%'";
            }
            List<Teenager> list = new ArrayList<>();
            Connection conn = DBUtil.getConn();
            Statement state = null;
            ResultSet rs = null;
            Teenager bean = null;
            try {
                state = conn.createStatement();
                rs = state.executeQuery(sql);
                while (rs.next()) {
                    String name2=rs.getString("name");
                    String sex2 = rs.getString("sex");
                    String minzu2 = rs.getString("minzu");
                    String age=rs.getString("age");
                    String mianmao2 = rs.getString("mianmao");
                    String fuwu2 =rs.getString("fuwu");
                    String shijian2=rs.getString("shijian");
                    bean =new Teenager(name2, sex2, minzu2,shijian2,age,mianmao2,fuwu2);
                    list.add(bean);
                }
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                DBUtil.close(rs, state, conn);
            }
            
            return list;
        }
        //全部数据
        public List<Teenager> list()
        {
            String sql = "select * from teenager";
            List<Teenager> list = new ArrayList<>();
            Connection conn = DBUtil.getConn();
            Statement state = null;
            ResultSet rs = null;
            
            try {
                state = conn.createStatement();
                rs = state.executeQuery(sql);
                while (rs.next()) {
                    Teenager bean = null;
                    int id=rs.getInt("id");
                    String name2=rs.getString("name");
                    String sex2 = rs.getString("sex");
                    String minzu2 = rs.getString("minzu");
                    String age=rs.getString("age");
                    String mianmao2 = rs.getString("mianmao");
                    String fuwu2 =rs.getString("fuwu");
                    String shijian2=rs.getString("shijian");
                    bean =new Teenager(id,name2, sex2, minzu2,shijian2,age,mianmao2,fuwu2);
                    list.add(bean);
                }
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                DBUtil.close(rs, state, conn);
            }
            
            return list;
        }
}

service:

package service;
import java.util.List;
import Dao.TeenagerDao;
import entity.Teenager;
public class TeenagerService {
    TeenagerDao tDao=new TeenagerDao();
    public boolean add(Teenager ten)
    {
        boolean f = false;
        if(!tDao.name(ten.getName()))
        {
            tDao.add(ten);
            f=true;
        }
        return f;
    }
    
    public boolean del(String name)
    {
        tDao.delete(name);
        return true;
    }
    
    public boolean update(Teenager ten)
    {
        tDao.update(ten);
        return true;
    }
    
    public Teenager getbyname(String name)
    {
        return tDao.getbyname(name);
    }
    
    public List<Teenager> search(String name,String sex,String minzu,String mianmao,String fuwu,String shijian) {
        return tDao.search(name, sex,minzu,mianmao,fuwu,shijian);
    }
    
    //查找所有人
    public List<Teenager> list()
    {
        return tDao.list();
    }
}

entity:

package entity;

public class Teenager {
    private int id;
    private String name;
    private String sex;
    private String minzu;
    private String shijian;
    private String age;
    private String mianmao;
    private String fuwu;
    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 String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public String getMinzu() {
        return minzu;
    }
    public void setMinzu(String minzu) {
        this.minzu = minzu;
    }
    public String getShijian() {
        return shijian;
    }
    public void setShijian(String shijian) {
        this.shijian = shijian;
    }
    public String getAge() {
        return age;
    }
    public void setAge(String age) {
        this.age = age;
    }
    public String getMianmao() {
        return mianmao;
    }
    public void setMianmao(String mianmao) {
        this.mianmao = mianmao;
    }
    public String getFuwu() {
        return fuwu;
    }
    public void setFuwu(String fuwu) {
        this.fuwu = fuwu;
    }
    public Teenager(int id, String name, String sex, String minzu, String shijian, String age, String mianmao,String fuwu) {
        super();
        this.id = id;
        this.name = name;
        this.sex = sex;
        this.minzu = minzu;
        this.shijian = shijian;
        this.age = age;
        this.mianmao = mianmao;
        this.fuwu = fuwu;
    }
    public Teenager(String name, String sex, String minzu, String shijian, String age, String mianmao, String fuwu) {
        super();
        this.name = name;
        this.sex = sex;
        this.minzu = minzu;
        this.shijian = shijian;
        this.age = age;
        this.mianmao = mianmao;
        this.fuwu = fuwu;
    }
    public Teenager() {}
}

servlet:

package servlet;
import java.io.IOException;
import java.util.List;

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

import entity.Teenager;
import service.TeenagerService;
@WebServlet("/TeenagerServlet")
public class TeenagerServlet extends HttpServlet{
    private static final long serialVersionUID = 1L;

    TeenagerService service = new TeenagerService();
    
    /**
     * 方法选择
     */
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        String method = req.getParameter("method");
        
        if ("add".equals(method)) {
            add(req,resp);
        } else if ("del".equals(method)) {
            del(req, resp);
        } else if ("update".equals(method)) {
            update(req, resp);
        } else if ("search".equals(method)) {
            search(req, resp);
        } else if ("list".equals(method)) {
            list(req, resp);
        } else if("getbyname".equals(method)) {
            getbyname(req,resp);
        }else if("getbyname2".equals(method)) {
            getbyname2(req,resp);
        }
    }
    
    private void getbyname(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
        req.setCharacterEncoding("utf-8");
        String name = req.getParameter("name");
        Teenager ten = service.getbyname(name);
        if(ten==null)
        {
            req.setAttribute("message", "未找到该学生");
            req.getRequestDispatcher("del.jsp").forward(req, resp);
        }
        else 
        {
            req.setAttribute("ten", ten);
            req.getRequestDispatcher("del2.jsp").forward(req,resp);
        }
    }
    
    private void getbyname2(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
        req.setCharacterEncoding("utf-8");
        String name = req.getParameter("name");
        Teenager ten = service.getbyname(name);
        if(ten==null)
        {
            req.setAttribute("message", "未找到该学生");
            req.getRequestDispatcher("xiugai.jsp").forward(req, resp);
        }
        else 
        {
            req.setAttribute("ten", ten);
            req.getRequestDispatcher("update.jsp").forward(req,resp);
        }
    }
    
    private void add(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
        req.setCharacterEncoding("utf-8");
        //获取数据
        String name=req.getParameter("name");
        String sex = req.getParameter("sex");
        String minzu = req.getParameter("minzu");
        String shijian = req.getParameter("shijian");
        String age =req.getParameter("age");
        String mianmao=req.getParameter("mianmao");
        
        String[] fuwus = req.getParameterValues("fuwu");
           StringBuffer buf = new StringBuffer(); 
           for(String fuwu :   fuwus){
              buf.append(fuwu);
          }
          String fuwu = buf.toString();
        Teenager ten =new Teenager(name, sex, minzu,shijian,age,mianmao,fuwu);
        //添加后消息显示
        if(service.add(ten)) {
            req.setAttribute("message", "添加成功");
            req.getRequestDispatcher("add.jsp").forward(req,resp);
        } else {
            req.setAttribute("message", "姓名重复,请重新录入");
            req.getRequestDispatcher("add.jsp").forward(req,resp);
        }
    }
    
    private void list(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
        req.setCharacterEncoding("utf-8");
        
        List<Teenager> tens = service.list();
        req.setAttribute("tens", tens);
        req.getRequestDispatcher("list.jsp").forward(req,resp);
    }
    
    private void del(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
        req.setCharacterEncoding("utf-8");
        String name=req.getParameter("name");
        service.del(name);
        req.setAttribute("message", "删除成功!");
        req.getRequestDispatcher("del.jsp").forward(req,resp);
    }
    
    private void update(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
        req.setCharacterEncoding("utf-8");
        int id = Integer.parseInt(req.getParameter("id"));
        String name=req.getParameter("name");
        String sex = req.getParameter("sex");
        String minzu = req.getParameter("minzu");
        String shijian = req.getParameter("shijian");
        String age =req.getParameter("age");
        String mianmao=req.getParameter("mianmao");
        int num=0;
        String [] fuwus = req.getParameterValues("fuwu");
           StringBuffer buf = new StringBuffer(); 
           for(String fuwu :   fuwus){
              buf.append(fuwu);
              num++;
          }
          String fuwu = buf.toString();
          if(num>4)
          {
                  req.setAttribute("message", "服务类别不得超过四个");
                req.getRequestDispatcher("TeenagerServlet?method=getbyname2").forward(req,resp);
          }
        Teenager ten =new Teenager(id,name, sex, minzu,shijian,age,mianmao,fuwu);
        service.update(ten);
        req.setAttribute("message", "修改成功");
        req.getRequestDispatcher("TeenagerServlet?method=list").forward(req,resp);
    }
    
    private void search(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
        req.setCharacterEncoding("utf-8");
        String name=req.getParameter("name");
        String sex = req.getParameter("sex");
        
        String minzu = req.getParameter("minzu");
        String shijian = req.getParameter("shijian");
        String mianmao=req.getParameter("mianmao");
        String fuwu=req.getParameter("fuwu");
        List<Teenager> tens = service.search(name, sex,minzu,mianmao,fuwu,shijian);
        if(tens==null)
        {
            req.setAttribute("message", "没有该学生");
            req.getRequestDispatcher("search.jsp").forward(req,resp);
        }
        else {
        req.setAttribute("tens", tens);
        req.getRequestDispatcher("list2.jsp").forward(req,resp);
        }
    }
}

DBUtil:

package util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
* ���ݿ����ӹ���
* @author Zheng
*
*/
public class DBUtil {
  
  public static String db_url = "jdbc:mysql://localhost:3306/test?useSSL=false";
  public static String db_user = "root";
  public static String db_pass = "08301016";
  
  public static Connection getConn () {
      Connection conn = null;
      
      try {
          Class.forName("com.mysql.jdbc.Driver");//��������
          conn = DriverManager.getConnection(db_url, db_user, db_pass);
      } catch (Exception e) {
          e.printStackTrace();
      }
      
      return conn;
  }
  
  /**
   * �ر�����
   * @param state
   * @param conn
   */
  public static void close (Statement state, Connection conn) {
      if (state != null) {
          try {
              state.close();
          } catch (SQLException e) {
              e.printStackTrace();
          }
      }
      
      if (conn != null) {
          try {
              conn.close();
          } catch (SQLException e) {
              e.printStackTrace();
          }
      }
  }
  
  public static void close (ResultSet rs, Statement state, Connection conn) {
      if (rs != null) {
          try {
              rs.close();
          } catch (SQLException e) {
              e.printStackTrace();
          }
      }
      
      if (state != null) {
          try {
              state.close();
          } catch (SQLException e) {
              e.printStackTrace();
          }
      }
      
      if (conn != null) {
          try {
              conn.close();
          } catch (SQLException e) {
              e.printStackTrace();
          }
      }
  }
  
  public static void main(String[] args) throws SQLException {
      Connection conn = getConn();
      PreparedStatement pstmt = null;
      ResultSet rs = null;
      String sql ="select * from teenager";
      pstmt = conn.prepareStatement(sql);
      rs = pstmt.executeQuery();
      if(rs.next()){
          System.out.println("空");
      }else{
          System.out.println("不空");
      }
  }

}

二、遇到的问题:

    开始的数据传不到数据库

三、明日计划

    明天找错误原因

原文地址:https://www.cnblogs.com/wmdww/p/14159737.html