1. 程式人生 > >使用JDBC實現資料庫內容的展示和對資料內容的刪除。

使用JDBC實現資料庫內容的展示和對資料內容的刪除。

首先定義一個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>