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);
    }

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM