java ee 在数据库中执行增删改查

1.先建一个主页面里面包含着添加方法

<%@page import="java.text.SimpleDateFormat"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ page import="java.sql.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>学生信息</title>
</head>
<body>
学生信息列表
<br>
<%
try
{
//1.连接数据库
// 1)加载驱动

Class.forName("oracle.jdbc.driver.OracleDriver");
// 2)得到连接
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "test1", "duibuqi19950220");

//2.读取
Statement st=conn.createStatement();


ResultSet rs=st.executeQuery("select * from STUDENT");
//3.输出结果集
if(rs!=null)
{
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd ");
    
    while(rs.next())
    {
        
        out.print("SNO="+rs.getString("SNO")+" ");
        out.print("name="+rs.getString("sname")+" ");
        out.print("ssex="+rs.getString("ssex")+" ");
        out.print("sbirthday="+        
                (rs.getDate("sbirthday")==null?rs.getDate("sbirthday"):sdf.format(rs.getDate("sbirthday")))+" ");
        out.print("class="+rs.getString("class"));
        out.print("<a href='update.jsp?SNO="+rs.getString("SNO")+"'>【修改】</a><a href='DeleteStudent?SNO="+rs.getString("SNO")+"'>【删除】</a><br>");
        
        
    }
    rs.close();
}
//4.释放资源
    st.close();
    conn.close();
  
    
}
catch(Exception e)
{
   e.printStackTrace();    
}
%>

添加学生信息<br>
<form action="SaveStudent" method="post">
学号:<input type="text" name="sno"><br>
名称:<input type="text" name="sname"><br>
性别:<input type="text" name="ssex"><br>
生日:<input type="text" name="sbirthday"><br>
班级:<input type="text" name="class"><br>
<input type="submit" value="保存">
</form>



</body>
</html>

2.建设修改和删除的界面

<%@page import="java.text.SimpleDateFormat"%>
<%@ page import="java.sql.*" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>修改学生信息</title>
</head>
<body>
<%

//接收主键,从数据库读取最新数据再进行修改
try{
String sno=request.getParameter("SNO");
String sname=null;
String ssex=null;
String sbirthday=null;
String sclass=null;
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
if(sno!=null && sno.trim().length()>0)
{
    //读取最新数据
    try {
                Class.forName("oracle.jdbc.driver.OracleDriver");
            
            // 2)得到连接
            Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "test1", "duibuqi19950220");


            PreparedStatement p=conn.prepareStatement(
                    "select * from STUDENT where SNO=?");        
            
            p.setString(1, sno);
            
            ResultSet rs=p.executeQuery();
            if(rs!=null&&rs.next())
            {
                sname=rs.getString("sname");
                ssex=rs.getString("ssex");
                
            
                sbirthday=sdf.format(rs.getDate("sbirthday"));
                sclass=rs.getString("class");
                
                rs.close();
            }
            else
            {
                out.print("未查询到数据");
            }
        
            p.close();
            conn.close();
            
            
            
            } catch (Exception e) {
            
                e.printStackTrace();
                
            }
}
else
{
     out.print("请正确访问");    
}

%>


修改学生信息<br>
<form action="SaveStudent" method="post">
学号:<input type="text" name="sno" readonly="readonly" value="<%=sno %>"><br>
名称:<input type="text" name="sname" value="<%=sname %>"><br>
性别:<input type="text" name="ssex" value="<%=ssex %>"><br>
生日:<input type="text" name="sbirthday" value="<%=sbirthday==null?"":sbirthday %>"><br>
班级:<input type="text" name="class" value="<%=sclass %>"><br>
<input type="hidden" name="isupdate" value="1">
<input type="submit" value="保存">



</form>
<%
}catch(Exception e)
{
    }
%>
</body>
</html>

3.加上过滤器Filter包含转码防止在网页中出现乱码

package com.hanqi.web;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;


public class MyFilter implements Filter {

  
    public MyFilter() {
        
    }

    public void destroy() {
    
    }

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        response.setContentType("text/html");
        response.setCharacterEncoding("UTF-8");        
        request.setCharacterEncoding("UTF-8");
       
        chain.doFilter(request, response);
    }

    
    public void init(FilterConfig fConfig) throws ServletException {
    }

}

4.删除Servlet类

package com.hanqi.web;
import java.sql.*;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

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

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String sno=request.getParameter("SNO");
        if(sno!=null&& sno.trim().length()!=0)                
        {
            try {
                Class.forName("oracle.jdbc.driver.OracleDriver");
            
            // 2)得到连接
            Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "test1", "duibuqi19950220");

            //2.删除数据
//            Statement st=conn.createStatement();
//            st.executeUpdate("");
            PreparedStatement pst=conn.prepareStatement(
                    "delete STUDENT where "+"SNO=?");
        
            pst.setString(1, sno);
            
            
            pst.executeUpdate();
            pst.close();
            conn.close();
            
            //4.跳转页面
            response.getWriter().write("删除成功");
            response.setHeader("refresh", "3;URL=index.jsp");
            } catch (Exception e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
                response.getWriter().write("删除失败");
                response.setHeader("refresh", "3;URL=index.jsp");
            }    
            
        }
        else
        {
            response.getWriter().write("请正确提交数据");
            response.setHeader("refresh", "3;URL=index.jsp");
        }
    }

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

}

5.Servlet包含插入和修改的方法

package com.hanqi.web;
import java.sql.*;
import java.text.SimpleDateFormat;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class SaveStudent
 */
public class SaveStudent extends HttpServlet {
    private static final long serialVersionUID = 1L;
    public SaveStudent() {
        super();
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         //处理保存数据的请求
        //1.接收参数
        String sno=request.getParameter("sno");
        String sname=request.getParameter("sname");
        String ssex=request.getParameter("ssex");
        String sbirthday=request.getParameter("sbirthday");
        String sclass=request.getParameter("class");
        
        //是否更新
        String isupdate=request.getParameter("isupdate");
        //2.验证
        if(sno!=null&& sno.trim().length()!=0
                &&sname!=null&& sname.trim().length()!=0)
        {
            //3.保存
            try {
                Class.forName("oracle.jdbc.driver.OracleDriver");
            
            // 2)得到连接
            Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "test1", "duibuqi19950220");

            //2.插入数据
//            Statement sat=conn.createStatement();
//            st.executeUpdate("");
            
            //执行插入还是更新
            
            //插入
            PreparedStatement pst=conn.prepareStatement(
                    "insert into STUDENT (sname,ssex,sbirthday,class,sno)"+
                         "values(?,?,?,?,?)");
            if(isupdate!=null&& isupdate.equals("1"))
            {
                //更新
                pst = conn.prepareStatement(
                        "update STUDENT set sname=?,ssex=?,sbirthday=?,class=? where sno=?");
            }
            
                //插入
            
            
            //String 转成 Date
            //关于日期格式的类
            //可以进行日期转换
            SimpleDateFormat adf = new SimpleDateFormat("yyyy-MM-dd");
            java.util.Date bir= adf.parse(sbirthday);
            
            //使用 long 型的时间构造sql.Date
            Date sqlBir = new Date(bir.getTime());
            
            
            pst.setString(1, sname);
            pst.setString(2, ssex);
            pst.setDate(3, sqlBir);
            pst.setString(4, sclass);
            pst.setString(5, sno);
            
            pst.executeUpdate();
            
            
            
            pst.close();
            conn.close();
            
            //4.跳转页面
            response.getWriter().write("保存成功");
            response.setHeader("refresh", "3;URL=index.jsp");
            } catch (Exception e) {
                
                e.printStackTrace();
                response.getWriter().write("保存失败");
                response.setHeader("refresh", "3;URL=index.jsp");
            }
            
            
        }
        else
        {
            response.getWriter().write("请正确提交数据");
            response.setHeader("refresh", "3;URL=index.jsp");
        }
        
        
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        
        doGet(request, response);
    }

}
package com.hanqi.web;
import java.sql.*;
import java.text.SimpleDateFormat;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class SaveStudent
 */
public class SaveStudent extends HttpServlet {
    private static final long serialVersionUID = 1L;
    public SaveStudent() {
        super();
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         //处理保存数据的请求
        //1.接收参数
        String sno=request.getParameter("sno");
        String sname=request.getParameter("sname");
        String ssex=request.getParameter("ssex");
        String sbirthday=request.getParameter("sbirthday");
        String sclass=request.getParameter("class");
        
        //是否更新
        String isupdate=request.getParameter("isupdate");
        //2.验证
        if(sno!=null&& sno.trim().length()!=0
                &&sname!=null&& sname.trim().length()!=0)
        {
            //3.保存
            try {
                Class.forName("oracle.jdbc.driver.OracleDriver");
            
            // 2)得到连接
            Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "test1", "duibuqi19950220");

            //2.插入数据
//            Statement sat=conn.createStatement();
//            st.executeUpdate("");
            
            //执行插入还是更新
            
            //插入
            PreparedStatement pst=conn.prepareStatement(
                    "insert into STUDENT (sname,ssex,sbirthday,class,sno)"+
                         "values(?,?,?,?,?)");
            if(isupdate!=null&& isupdate.equals("1"))
            {
                //更新
                pst = conn.prepareStatement(
                        "update STUDENT set sname=?,ssex=?,sbirthday=?,class=? where sno=?");
            }
            
                //插入
            
            
            //String 转成 Date
            //关于日期格式的类
            //可以进行日期转换
            SimpleDateFormat adf = new SimpleDateFormat("yyyy-MM-dd");
            java.util.Date bir= adf.parse(sbirthday);
            
            //使用 long 型的时间构造sql.Date
            Date sqlBir = new Date(bir.getTime());
            
            
            pst.setString(1, sname);
            pst.setString(2, ssex);
            pst.setDate(3, sqlBir);
            pst.setString(4, sclass);
            pst.setString(5, sno);
            
            pst.executeUpdate();
            
            
            
            pst.close();
            conn.close();
            
            //4.跳转页面
            response.getWriter().write("保存成功");
            response.setHeader("refresh", "3;URL=index.jsp");
            } catch (Exception e) {
                
                e.printStackTrace();
                response.getWriter().write("保存失败");
                response.setHeader("refresh", "3;URL=index.jsp");
            }
            
            
        }
        else
        {
            response.getWriter().write("请正确提交数据");
            response.setHeader("refresh", "3;URL=index.jsp");
        }
        
        
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        
        doGet(request, response);
    }

}
原文地址:https://www.cnblogs.com/zzyu/p/5652942.html