zoukankan      html  css  js  c++  java
  • 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);
        }
    
    }
  • 相关阅读:
    利用dockerfile定制镜像
    发布Docker 镜像到dockerhub
    Docker 停止容器
    133. Clone Graph
    132. Palindrome Partitioning II
    131. Palindrome Partitioning
    130. Surrounded Regions
    129. Sum Root to Leaf Numbers
    128. Longest Consecutive Sequence
    127. Word Ladder
  • 原文地址:https://www.cnblogs.com/zzyu/p/5652942.html
Copyright © 2011-2022 走看看