1. 程式人生 > >基於Myeclipse與MySQL資料庫表格的增刪改查

基於Myeclipse與MySQL資料庫表格的增刪改查

注:本部落格是基於myeclipse的靜態訪問自創表格的進一步完善。(連線到MySQL資料庫,對資料庫中的表格資訊進行增刪改查操作)其中做出修改的地方如下:

一、程式碼的改進

1、list.jsp中修改後的內容

<body>
   <table>
   <tr>
    <td>編號</td>
    <td>學號</td>
    <td>姓名</td>
    <td>性別</td>
    <td>年齡</td>
    <td>選擇</td>
    </tr> 
    <%
    if(list != null){
	    for(Student s:list){
	     %>
	     <tr>
	     	 <td><%=s.getId() %></td>
		     <td><%=s.getStuno() %></td>
		     <td><%=s.getName() %></td>
		     <td><%=s.getGender() %></td>
		     <td><%=s.getAge() %></td>
		     <td>
		     	 <a href="Delservlet?id=<%=s.getId() %>"><button>刪除</button></a>
		         <a href="updataservlet?id=<%=s.getId() %>"><button>修改</button></a>
		         <a href="viewservlet?id=<%=s.getId() %>"><button>檢視</button></a>
	     </tr>
  <%
  }
  } %>
   </table>
   <br>
   <a href="add.jsp"><button>新增學生資訊</button></a>
  </body>

2、增加(add.jsp)

(1)在jsp檔案開頭匯入

<%@page import="day03_student.Student"%>
<%@ page import="day03_inport.StudentDao"%>

(2)新增資訊

<body>
    <h2>編輯學生個人資訊</h2>
      <form action="Addservlet" method="post" role="from">
            編號:<input type="text" name="id" placeholder="編號"><br>
            學號:<input type="text" name="stuno" placeholder="學號"><br>
            姓名:<input type="text" name="name" placeholder="姓名"><br>
            性別:<input type="text" name="gender" placeholder="性別"><br>
            年齡:<input type="text" name="age" placeholder="年齡"><br>
            <button type="submit" >提交</button>
      </form>
  </body>
3、修改資訊(alter.jsp)

(1)在jsp檔案開頭匯入

<%@page import="day03_student.Student"%>
<%@ page import="day03_inport.StudentDao"%>

(2)修改資訊

 <body>
      <h2>修改學生個人資訊</h2>  
      <form action="Alterservlet" method="post">
      <table>
           <tr>
           <%
		 Student s=(Student)request.getAttribute("students");
	     %>
           <td>編號</td>
           <td><input type="text" name="id" value="<%=s.getId() %>" ></td></tr>
           <tr><td>學號</td>
           <td><input type="text" name="stuno" value="<%=s.getStuno()%>"></td></tr>
           <tr><td>姓名</td>
           <td><input type="text" name="name" value="<%=s.getName() %>"></td></tr>
           <tr><td>性別</td>
           <td><input type="text" name="gender" value="<%=s.getGender()%>"></td></tr>
           <tr><td>年齡</td>
           <td><input type="text" name="age" value="<%=s.getAge()%>"></td></tr>
           <tr><td colspan="2">
           <input type="submit" value="提交"></td></tr>
           </table>
       </form>       
  </body>

4、檢視資訊(view.jsp)

(1)在jsp檔案開頭匯入

<%@page import="day03_student.Student"%>

(2)檢視樣式設計

<style type="text/css">
	table{
	border:1px solid gray;
	border-collapse:collapse;
	width:50%
	}
	td{
	border:1px solid gray;
	}
</style>

(3)資訊檢視

 <body>
    <h2>學生個人基本資訊</h2>
   <table>
   <tr>
    <td>編號</td>
    <td>學號</td>
    <td>姓名</td>
    <td>性別</td>
    <td>年齡</td>
    </tr> 
     <tr>
      <%
	Student s=(Student)request.getAttribute("students");
	 %>
     <td><%=s.getId()%></td>
     <td><%=s.getStuno()%></td>
     <td><%=s.getName()%></td>
     <td><%=s.getGender()%></td>
     <td><%=s.getAge() %></td>
     </tr>
   </table>
  </body>

5、Listservlet.java中的修改(修改後)

public class Listservlet extends HttpServlet {

	public StudentDao dao=new StudentDao();
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//構造學生集合
//	   List<Student> list=new ArrayList<Student>();
//	   list.add(new Student(1,"stu001","張三","男",20));
//	   list.add(new Student(2,"stu002","李四","女",21));
//	   list.add(new Student(3,"stu003","王五","男",19));
//	   list.add(new Student(4,"stu004","王子","女",20));
//	   list.add(new Student(5,"stu005","天天輝","男",24));
	   //將資料放入request中,傳遞到頁面
	   List<Student> list=dao.queryAll();
	   request.setAttribute("students", list);
	   request.getRequestDispatcher("list.jsp").forward(request, response);
	}

6、新建StudentDao.java

(1)查詢全部資料

public List<Student> queryAll() {
		List<Student> list = new ArrayList<Student>(); 
		// 1.取得連線物件
		Connection conn = DBconnection.getConn();
		PreparedStatement ps = null;
		ResultSet rs = null;
		try {
			ps = conn.prepareStatement("select * from student");
			// 執行
			rs = ps.executeQuery();
			while (rs.next()) {
				list.add(new Student(rs.getInt(1), rs.getString(2), rs
						.getString(3), rs.getString(4), rs.getInt(5)));
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			DBconnection.close(rs, ps, conn);
		}
		return list;
	}

(2)根據id刪除資料

public void delById(int id){
		Connection conn = DBconnection.getConn();
		String sql = "delete from student where id=?";
		PreparedStatement ps = null;
		try {
			ps = conn.prepareStatement(sql);
			//給引數賦值
			ps.setInt(1, id);
			// 執行
			ps.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			DBconnection.close(null, ps, conn);
		}
	}

(3)根據id修改資料

public void alterById(int id,String stuno,String name,String gender,int age){
		Connection conn = DBconnection.getConn();
		String sql = "update student set stuno=?,name=?,gender=?,age=? where id=?";
		PreparedStatement ps = null;
		try {
			ps = conn.prepareStatement(sql);
			//給引數賦值
			 ps.setString(1, stuno);  
	         ps.setString(2, name);  
	         ps.setString(3, gender);  
	         ps.setInt(4, age);  
	         ps.setInt(5, id); 
			// 執行
			ps.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			DBconnection.close(null, ps, conn);
		}
	}

(4)增加資料

public void addstudent(int id,String stuno,String name,String gender,int age){
		Connection conn = DBconnection.getConn();
		String sql = "insert into student values (?,?,?,?,?)";
		PreparedStatement ps = null;
		try {
			ps = conn.prepareStatement(sql);
			//給引數賦值
			ps.setInt(1, id);
			ps.setString(2, stuno);
			ps.setString(3, name);
			ps.setString(4, gender);
			ps.setInt(5, age);
			// 執行
			ps.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			DBconnection.close(null, ps, conn);
		}
	}

(5)根據id查詢資料

public Student queryById(int id){  
        String sql = "select * from student where id = ?";  
        Connection conn = null;  
        PreparedStatement ps = null;      
        ResultSet res = null;  
        Student student = null;  
        try {  
            conn = DBconnection.getConn();  
            ps =(PreparedStatement) conn.prepareStatement(sql);  
            ps.setInt(1, id);  
            res = ps.executeQuery();              
            while(res.next()){  
                student = new Student(res.getInt(1),res.getString(2), res.getString(3), res.getString(4), res.getInt(5));  
            }               
        } catch (SQLException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }finally{  
            try{  
                if(null!=res){  
                    res.close();                  
                }  
                if(null!=ps){  
                    ps.close();  
                }  
                if(null!=conn){  
                    conn.close();  
                }  
            }catch(SQLException e){  
                e.printStackTrace();  
            }  
        }  
        return student;  
    }  

8、增加資料的servlet(Addservlet.java)

package day03;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

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

import day03_inport.StudentDao;
import day03_student.Student;

public class Addservlet extends HttpServlet {

	private StudentDao dao = new StudentDao();
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		//獲取引數
		String idstr = request.getParameter("id");
		int id = Integer.parseInt(idstr);
		String stuno = request.getParameter("stuno");
		String name = request.getParameter("name");
		String gender = request.getParameter("gender");
		String agestr = request.getParameter("age");
		int age = Integer.parseInt(agestr);
		//呼叫dao方法修改
		dao.addstudent(id,stuno,name,gender,age);
		List<Student> list = dao.queryAll();
		request.setAttribute("students", list);
		//跳轉回列表頁面
		request.getRequestDispatcher("list.jsp").forward(request, response);	
		
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
        this.doGet(request, response);
	}

}

9、修改資料的servlet(Alterservlet.java與updataservlet.java)

(1)Alterservlet.java

package day03;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

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

import day03_inport.StudentDao;
import day03_student.Student;

public class Alterservlet extends HttpServlet {

	private StudentDao dao = new StudentDao();
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//獲取引數
		request.setCharacterEncoding("utf-8");
		String idstr = request.getParameter("id");
		int id = Integer.parseInt(idstr);
		String stuno = request.getParameter("stuno");
		String name = request.getParameter("name");
		String gender = request.getParameter("gender");
		String agestr = request.getParameter("age");
		int age = Integer.parseInt(agestr);	
		//呼叫dao方法修改
		dao.alterById(id,stuno,name,gender,age);
		List<Student> list = dao.queryAll();
		request.setAttribute("students", list);
		//跳轉回列表頁面
		request.getRequestDispatcher("list.jsp").forward(request, response);	
		
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		this.doGet(request, response);
	}


}

(2)updataservlet.java

package day03;


import java.io.IOException;
import java.io.PrintWriter;

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

import day03_inport.StudentDao;
import day03_student.Student;

public class updataservlet extends HttpServlet {

	private StudentDao dao=new StudentDao();
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		String idstr = request.getParameter("id");
        int id = Integer.parseInt(idstr);
        //將資料放入request中,傳遞到頁面
		Student student=dao.queryById(id);
		request.setAttribute("students", student);
		request.getRequestDispatcher("alter.jsp").forward(request, response);
	}

	
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		
		this.doGet(request, response);
	}
}

10、刪除資料的servlet(Delservlet.java)

package day03;
import java.io.IOException;
import java.util.List;

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

import day03_inport.StudentDao;
import day03_student.Student;

public class Delservlet extends HttpServlet {
	
	private StudentDao dao = new StudentDao();
	
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//獲取引數id
		String idstr = request.getParameter("id");
		int id = Integer.parseInt(idstr);
		//呼叫dao方法刪除
		dao.delById(id);
		List<Student> list = dao.queryAll();
		request.setAttribute("students", list);
		//跳轉回列表頁面
		request.getRequestDispatcher("list.jsp").forward(request, response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		this.doGet(request, response);
	}
}

11、檢視資料的servlet(viewservlet.java)

package day03;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

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

import day03_inport.StudentDao;
import day03_student.Student;

public class viewservlet extends HttpServlet {

	private StudentDao dao=new StudentDao();
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		        String idstr = request.getParameter("id");
		        int id = Integer.parseInt(idstr);
		        //將資料放入request中,傳遞到頁面
				Student student=dao.queryById(id);
				request.setAttribute("students", student);
				request.getRequestDispatcher("view.jsp").forward(request, response);	
	}
	
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		this.doGet(request, response);
		}
}

12、整個過程的框架


13、在瀏覽器中的完整演示過程:

(1)登入時的首介面


(2)點選“檢視學生列表”即可進入

網頁上顯示錶:


MySQL資料庫中實時顯示錶:


(3)點選“新增學生資訊”即可進行新增操作


(4)編輯完資訊後點擊“提交”即可增加一名學生資訊

網頁上顯示錶:


MySQL資料庫中實時顯示錶:


(5)點選“刪除”即可刪除所選學生(這裡選擇刪除編號為1的學生)

網頁上顯示錶:


MySQL資料庫中實時顯示錶:


由圖可知編號為1的學生已經被刪除了。

(6)點選“修改”即可修改學生個人資訊(這裡選擇修改編號為4的學生的性別與年齡)


點選提交後的結果,網頁上顯示錶:


MySQL資料庫中實時顯示錶:


可以看到編號為4的學生性別與年齡已經成功修改。

(7)點選“檢視”即可檢視所選學生的個人基本資訊(這裡檢視編號為3的學生)


到此連線資料庫實現表格的增刪改查功能基本完成。