基於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)新增資訊
3、修改資訊(alter.jsp)<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>
(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的學生)
到此連線資料庫實現表格的增刪改查功能基本完成。