首頁 > 軟體

JavaWeb實現mysql資料庫資料的新增和刪除

2022-03-19 13:01:31

準備操作

1. 設定mysql環境

連線mysql資料庫

2. 建立Servlet Project

3. 建立EMS Package

4. 分別建立Servlet

UserListServlet:用於實現存取資料庫,並將資料在頁面顯示的功能。

UserAddServlet:用於獲取request資料,並將資料新增到ems資料庫user表中。

UserDeleteServlet:用於通過員工id刪除ems資料庫中user表中id對應的資料

5. 建立addUser.html

6. 設定web.xml檔案

<servlet>
    <servlet-name>UserListServlet</servlet-name>
    <servlet-class>EMS.UserListServlet</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>UserDeleteServlet</servlet-name>
    <servlet-class>EMS.UserDeleteServlet</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>UserAddServlet</servlet-name>
    <servlet-class>EMS.UserAddServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>UserListServlet</servlet-name>
    <url-pattern>/list</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
  		<servlet-name>UserDeleteServlet</servlet-name>
  		<url-pattern>/delete</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>UserAddServlet</servlet-name>
    <url-pattern>/addUser</url-pattern>
  </servlet-mapping>

7. 開啟伺服器並重新部署伺服器

8. 效果展示

顯示資料庫資料

刪除資料庫資料

新增資料庫資料

新增員工資料介面

addUser.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>新增員工</title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  
  <body>
    <center>
    	<h1>新增員工資訊</h1>
    	<form action="addUser" method="post">
			工號:<input type="text" name="id"/><br/>
			姓名:<input type="text" name="name"/><br/>
			工資:<input type="text" name="salary"/><br/>
			年齡:<input type="text" name="age"/><br/>
			<input type="submit" name="smt" value="提交"/>
    	</form>
    </center>
  </body>
</html>

顯示員工資料

UserListServlet

package EMS;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

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

//員工資訊查詢的Servlet
public class UserListServlet extends HttpServlet {

	
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//使用JDBC連線mysql資料庫,將user表中的輸出查詢處理
		ResultSet result=null;
		Connection con=null;
		try {
			//(1)註冊載入驅動
			Class.forName("com.mysql.jdbc.Driver");
			//(2)獲得資料庫的連結
			//(1).連線mysql的url地址
			String url="jdbc:mysql://localhost:3306/ems";
			//(2).連線mysql的使用者名稱
			String username="root";
			//(3).連線mysql的密碼
			String pwd="123456";
			con=DriverManager.getConnection(url, username, pwd);
			//(3)預編譯sql語句
			System.out.println("MySQL連線成功!"+con);
			
			//3.預編譯SQL語句
			String sql="select * from user";
			PreparedStatement prep=con.prepareStatement(sql);
			//(4)執行sql語句
			result=prep.executeQuery();
			
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		//使用response,獲得字元輸出流PrintWriter,將查詢出的結果輸出到瀏覽器端
		//設定格式編碼
		response.setContentType("text/html;charset=utf-8");
		
		//向瀏覽器端輸出一個表格
		PrintWriter pw=response.getWriter();
		pw.println("<table border='1' cellspacing='0' width='400' height='80' align='center'>");
		pw.println("<caption>員工資訊表</caption>");
		pw.println("<tr align='center'>");
		pw.println("<td>工號</td><td>姓名</td><td>工資</td><td>年齡</td>");
		pw.println("</tr>");
		try {
			while(result.next())
			{
				pw.println("<tr align='center'><td>"+result.getInt("id")+"</td><td>"
				+result.getString("name")+"</td><td>"+result.getDouble("salary")+"</td><td>"
				+result.getInt("age")+"</td><td><a href='delete?id="+result.getInt("id")+"'>刪除</a></td></tr>");
				System.out.println(result.getInt("id")+"---"+result.getString("name")+"---"+
						result.getDouble("salary")+"---"+result.getInt("age"));
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
		//表格的最後一行
		pw.println("<tr><td colspan='5'><a href='addUser.html'>新增員工資訊</a></td></tr>");
		pw.println("</table>");
		//關閉
		try {
			con.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
	}

}

新增員工資料

UserAddServlet

package EMS;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;

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

import DBUtil.DBUtil;
//新增員工資訊的Servlet
public class UserAddServlet extends HttpServlet {

	
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String strId=request.getParameter("id");
		String strName=request.getParameter("name");
		String strSal=request.getParameter("salary");
		String strAge=request.getParameter("age");
		System.out.print(strId+strName+strSal+strAge);
	
		
		try {
			//使用jdbc連線資料庫
			Connection con=DBUtil.getCon("ems");
			//預編譯sql語句
			String sql="insert into user values(?,?,?,?)";
			PreparedStatement prep=con.prepareStatement(sql);
			prep.setInt(1, Integer.parseInt(strId));
			prep.setString(2, strName);
			prep.setDouble(3, Double.parseDouble(strSal));
			prep.setInt(4, Integer.parseInt(strAge));
			//執行sql語句
			prep.executeUpdate();
			//關閉資料庫的連線
			con.close();
		} catch (Exception e) {	
			e.printStackTrace();
		}
		//插入成功後,回到list首頁
		//重定向
		response.sendRedirect("list");
	}

}

刪除員工資料

UserDeleteServlet

package EMS;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

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

import DBUtil.DBUtil;
//員工資訊刪除的Servlet
public class UserDeleteServlet extends HttpServlet {

	
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//接收請求中的引數
		//http://localhost:8080/Servlet/delete?id=2
		String strId=request.getParameter("id");
		//System.out.println("工號:"+strId);
		try {
			//2~3,使用JDBC連線mysql資料庫,完成刪除的操作
			Connection con=DBUtil.getCon("ems");
			//System.out.println(con);//com.mysql.jdbc.JDBC4Connection@64dfeb
			//預編譯sql語句
			String sql="delete from user where id=?";
			PreparedStatement prep=con.prepareStatement(sql);
			//設定sql語句中的問號   引數1:表示第幾個問好   引數2:對問號設定的內容
			prep.setInt(1,Integer.parseInt(strId));
			//執行sql語句
			//executeUpdate()適用於刪除delete、修改update、插入insert     executeQuery()適用於查詢select
			prep.executeUpdate();
			//關閉資料庫的連線
			con.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
		//4,刪除成功以後,回到http://localhost:8080/ems-servlet/list首頁地址
		//轉發技術:將未完成的工作交給下一個元件繼續完成,瀏覽器位址列的地址不會發生變化,它是一次請求
		//重定向技術:已經完成了工作,只是為了跳轉到下一個地址顯示,瀏覽器位址列的地址會發生變化,是兩次請求
		//寫一個Servlet對應的url-pattern地址,會重定向到對應的Servlet來執行
		response.sendRedirect("list");
	}
	

}

以上就是JavaWeb實現mysql資料庫資料的新增和刪除的詳細內容,更多關於JavaWeb資料新增刪除的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com