javaweb之修改功能

数据库的修改功能,主要是通过查询,保留之前的数据,得到当前想要修改的页面,并进行修改。


一.dao层

在dao层需要添加两个fangfa,一个查询,一个修改(这是整个dao层,包括之前的增删、浏览)

复制代码
package dao;

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

//import com.mysql.cj.protocol.ResultBuilder;

import Bean.Course;
import util.DBUtil;

public class daoCourse {

    public boolean add(Course n)
    {
        boolean f=false;
        int a=0;
        String sql="insert submitcourse(classname,teachername,place) values(?,?,?)";
        try {
             Connection conn=DBUtil.getConnection();
             PreparedStatement pstmt=conn.prepareStatement(sql);
             pstmt.setString(1,n.getClassname());
             pstmt.setString(2,n.getTeachername());
             pstmt.setString(3,n.getPlace());
              a=pstmt.executeUpdate();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        if(a>0) f=true;
        return f;
    }
    public boolean delete(Course n) {
    boolean f=false;
    int a=0;
    String sql="delete from submitcourse where teachername=?";
    try {
         Connection conn=DBUtil.getConnection();
         PreparedStatement pstmt=conn.prepareStatement(sql);        
         pstmt.setString(1,n.getTeachername());
          a=pstmt.executeUpdate();
          System.out.println("fuck you");
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    if(a>0) f=true;
    return f;
}public List<Course> list(){
        String sql="select * from submitcourse";
        List<Course> list=new ArrayList<>();
         ResultSet rs=null;
        Course ns=new Course();
        try {
             Connection conn=DBUtil.getConnection();
             PreparedStatement pstmt=conn.prepareStatement(sql);        
            // pstmt.setString(1,n.getTeachername());
             rs=pstmt.executeQuery();
             while(rs.next())
             {
                 ns=new Course(rs.getString(1),rs.getString(2),rs.getString(3));
                 list.add(ns);
             }
             //System.out.println(rs);
             System.out.println(rs);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return list;
    }
    public boolean update(Course n,String old_teachername){//修改信息
        boolean f=false;
        int a=0;
        String sql = "update submitcourse set classname='"+n.getClassname()+"',teachername='"+n.getTeachername()+"',place='"+n.getPlace()+"' where teachername='"+old_teachername+"'";
        try {
             Connection conn=DBUtil.getConnection();
             PreparedStatement pstmt=conn.prepareStatement(sql);             
              a=pstmt.executeUpdate();
              System.out.println(a);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        if(a>0) f=true;
        
        return f;
        
    }
    public Course queryByTeachername(String teachername) {//查询信息
        String sql="select * from submitcourse where teachername=?";
        Course n=new Course();
        try {
             ResultSet rs=null;
             Connection conn=DBUtil.getConnection();
             PreparedStatement pstmt=conn.prepareStatement(sql);        
             pstmt.setString(1,teachername);
             rs=pstmt.executeQuery();
                while(rs.next()) { 
                n=new Course(rs.getString(1), rs.getString(2),rs.getString(3));
                }
              System.out.println("fuck you");
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }    
        return n ;
        
    }
}
复制代码

二。servlert层


 

servlet里面主要也是两个方法,用来传参交互。(这是整个servlet层,包括增删、浏览)

复制代码
package servlet;

import java.io.IOException;
import java.util.ArrayList;
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 Bean.Course;
import dao.daoCourse;

/**
 * Servlet implementation class course_servlet
 */
@WebServlet("/course_servlet")
public class course_servlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       daoCourse gooddao=new daoCourse();
    /**
     * @see HttpServlet#HttpServlet()
     */
    public course_servlet() {
        super();
        // TODO Auto-generated constructor stub
    }

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

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        String method=request.getParameter("method");
        if("add".equals(method))
        {
        String teachername=request.getParameter("teachername");
        String classname=request.getParameter("classname");
        String place=request.getParameter("place");
        Course n=new Course(classname,teachername,place);
        gooddao.add(n);
        request.setAttribute("message", "添加成功");
        request.getRequestDispatcher("NewFile2.jsp").forward(request, response);
        }
        
        else if("delete".equals(method)) {
            String teachername=request.getParameter("teachername");
            Course n=new Course();
            n.setTeachername(teachername);
            gooddao.delete(n);
            request.setAttribute("message", "删除成功");
            request.getRequestDispatcher("course_servlet?method=looklist").forward(request, response);
        }
        else if("looklist".equals(method)) {            
            List<Course> nt= gooddao.list();
            request.setAttribute("nt", nt);
            System.out.println("王建民");
            request.getRequestDispatcher("NewFile3.jsp").forward(request, response);
        }
        else if("queryByTeachername".equals(method))
        {
        String teachername=request.getParameter("teachername");
        Course n=new Course();
        System.out.println("8888");
        n.setTeachername(teachername);
        n= gooddao.queryByTeachername(teachername); 
        request.setAttribute("n", n);
        request.getRequestDispatcher("update.jsp").forward(request, response);
        }
        else if("update".equals(method))
        {
        String teachername=request.getParameter("teachername");
        String classname=request.getParameter("classname");
        String place=request.getParameter("place");
        String old_teachername=request.getParameter("old_teachername");
        Course n=new Course(classname,teachername,place);
        gooddao.update(n,old_teachername);
        request.setAttribute("message", "添加成功");
        request.getRequestDispatcher("course_servlet?method=looklist").forward(request, response);
        }
        
    }

}
复制代码

三.写jap


 

在之前文章的原有的基础上,再加入一个update.jsp

复制代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="Bean.*"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
Course n=(Course)request.getAttribute("n");
%>
<form action="course_servlet?method=update" method="post">
 <input type="hidden" name="old_teachername" value="<%=n.getTeachername()%>"/>
课程名称:<input type="text" name="classname" id="classname" value="<%=n.getClassname()%>"><br>
教师姓名:<input type="text" name="teachername" id="teachername" value="<%=n.getTeachername()%>"><br>
教学地点:<input type="text" name="place" id="place" value="<%=n.getPlace()%>">
<input type="submit" value="修改">
</form> 
</body>
</html>
复制代码

四.运行结果


 

点击修改进入修改页面

 

 

 

 点击修改

 

 修改成功


 

下一篇文章写模糊查询!!!!!!!

 

posted @   睡觉不困  阅读(1597)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
点击右上角即可分享
微信分享提示