使用JDBC實現資料庫內容的展示和對資料內容的刪除。
阿新 • • 發佈:2018-11-22
首先定義一個emp類
package entity; public class Emp { private int empno; private String ename; private double sal; public int getEmpno() { return empno; } public void setEmpno(int empno) { this.empno = empno; } public String getEname() { return ename; } public void setEname(String ename) { this.ename = ename; } public double getSal() { return sal; } public void setSal(double sal) { this.sal = sal; } }
dao層的程式碼,有些贅餘,連結資料庫的程式碼可以單獨寫一個類:
package dao; import entity.Emp; import java.sql.*; import java.util.ArrayList; import java.util.List; public class Dao { public static List<Emp> empDao() { List<Emp> list = new ArrayList<Emp>(); Connection conn = null; String driver = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql://localhost:3306/test"; String user = "root"; String password = "root"; try { Class.forName(driver); conn = DriverManager.getConnection(url, user, password);//連結資料庫 if (!conn.isClosed()) { System.out.println("Successded connecting to the Database!"); } Statement statement = conn.createStatement();//建立statement類物件,來執行sql物件 String sql = "select * from new"; ResultSet rs = statement.executeQuery(sql); while (rs.next()) { Emp emp = new Emp(); emp.setEmpno(rs.getInt(1)); emp.setEname(rs.getString(2)); emp.setSal(rs.getDouble(3)); list.add(emp); } rs.close(); conn.close(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { return list; } } public List<Emp> deleteObj(int id) { List<Emp> list = new ArrayList<Emp>(); Connection conn = null; String driver = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql://localhost:3306/test"; String user = "root"; String password = "root"; try { Class.forName(driver); conn = DriverManager.getConnection(url, user, password);//連結資料庫 if (!conn.isClosed()) { System.out.println("Successded connecting to the Database!"); } Statement statement = conn.createStatement();//建立statement類物件,來執行sql物件 String sql = "DELETE from new"+" where empno="+id; statement.executeUpdate(sql); sql="SELECT empno,ename,sal from new"; ResultSet rs=statement.executeQuery(sql); while (rs.next()) { Emp emp = new Emp(); emp.setEmpno(rs.getInt(1)); emp.setEname(rs.getString(2)); emp.setSal(rs.getDouble(3)); list.add(emp); } rs.close(); conn.close(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return list; } }
serlet:
package servlet; import dao.Dao; import entity.Emp; import service.TestService; import java.io.IOException; import java.util.List; public class TestServlet extends javax.servlet.http.HttpServlet { protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException { /*Dao dao=new Dao();*/ String method=request.getParameter("method"); System.out.print(method); if (method!=null&&method.equals("0")){ int id= Integer.parseInt(request.getParameter("empno")); List<Emp> list = new TestService().TS2(id); request.setAttribute("list",list); request.getRequestDispatcher("/index.jsp").forward(request,response); }else { List<Emp> list = new TestService().TS1();/*dao.empDao();*/ System.out.print(list); request.setAttribute("list", list); request.getRequestDispatcher("/index.jsp").forward(request, response); } } protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException { this.doPost(request,response); } }
為了更好地修改程式碼寫一個service的類:
package service;
import dao.Dao;
import entity.Emp;
import java.util.List;
public class TestService {
public List<Emp> TS1(){
Dao dao=new Dao();
return dao.empDao();
}
public List<Emp> TS2(int id){
Dao dao=new Dao();
return dao.deleteObj(id);
}
}
最後寫一個展示的jsp頁面:
<%--
Created by IntelliJ IDEA.
User: ASUS
Date: 2018/7/26
Time: 15:16
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title></title>
</head>
<body>
<table>
<c:forEach items="${requestScope.list}" var="emp">
<c:set var="empno" value="${emp.empno}"></c:set>
<c:set var="ename" value="${emp.ename}"></c:set>
<c:set var="sal" value="${emp.sal}"></c:set>
<c:choose>
<c:when test="${sal<=0}">
<tr>
<td></td>
<td></td>
<%--<td>${emp.sal}</td>--%>
<td>工號:${emp.empno} 姓名:${emp.ename}的工資資訊出錯,請儘快改正</td>
<td><a href="/servlet/TestServlet?empno=${emp.empno}&method=0">刪除</a></td>
</tr>
</c:when>
<c:when test="${sal<=1000&&sal>0}">
<tr>
<td>${emp.empno}</td>
<td>${emp.ename}</td>
<td>${emp.sal}</td>
<td>天天吃土</td>
<td><a href="/servlet/TestServlet?empno=${emp.empno}&method=0">刪除</a></td>
</tr>
</c:when>
<c:when test="${sal>1000&&sal<=3000}">
<tr>
<td>${emp.empno}</td>
<td>${emp.ename}</td>
<td>${emp.sal}</td>
<td>月光族</td>
<td><a href="/servlet/TestServlet?empno=${emp.empno}&method=0">刪除</a></td>
</tr>
</c:when>
<c:when test="${sal>3000&&sal<5000}">
<tr>
<td>${emp.empno}</td>
<td>${emp.ename}</td>
<td>${emp.sal}</td>
<td>小資</td>
<td><a href="/servlet/TestServlet?empno=${emp.empno}&method=0">刪除</a></td>
</tr>
</c:when>
<c:when test="${sal>5000&&sal<10000}">
<tr>
<td>${emp.empno}</td>
<td>${emp.ename}</td>
<td>${emp.sal}</td>
<td>白領</td>
<td><a href="/servlet/TestServlet?empno=${emp.empno}&method=0">刪除</a></td>
</tr>
</c:when>
<c:otherwise>
<tr>
<td>${emp.empno}</td>
<td>${emp.ename}</td>
<td>${emp.sal}</td>
<td>土豪</td>
<td><a href="/servlet/TestServlet?empno=${emp.empno}&method=0">刪除</a></td>
</tr>
</c:otherwise>
</c:choose>
</c:forEach>
<form action="/servlet/TestServlet?method=1">
<input type="submit" name="" value="點選我">
</form>
</table>
</body>
</html>