MVC模式中M表明模型、V表明視圖、C表明控制器。
Model(模型)表示應用程序核心(好比數據庫記錄列表)。
View(視圖)顯示數據(數據庫記錄)。
Controller(控制器)處理輸入(寫入數據庫記錄)。html
表名:student、使用的爲mysql數據庫java
package cn.jdbc.domain; public class student { //學號 private String sno; //姓名 private String sname; //年齡 private int sage; public String getSno() { return sno; } public void setSno(String sno) { this.sno = sno; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } public int getSage() { return sage; } public void setSage(int sage) { this.sage = sage; } }
jsp頁面mysql
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>學生數據</title> </head> <body> <table border="1" border="1" cellpadding="0" cellspacing="0" width="100%"> <thead> <tr> <th>學號</th> <th>姓名</th> <th>年齡</th> </tr> </thead> <tbody> <c:forEach items="${list}" var="i"> <tr > <td>${i.sno}</td> <td>${i.sname}</td> <td>${i.sage}</td> </tr> </c:forEach> </tbody> </table> <form action="/sy3/display" method="post"> <label>查詢的學號</label> <input type="text" name="search_no" value=""> <input type="submit" value="查詢"> <a href="http://localhost:9999/sy3/display">返回</a><br> </form> <h5>添加數據</h5> <form action="/sy3/display" method="post"> <label>學號</label> <input type="text" name="add_sno" value=""> <label>姓名</label> <input type="text" name="add_sname" value=""> <label>年齡</label> <input type="text" name="add_sage" value=""> <input type="submit" value="添加"> </form> <h5>修改數據</h5> <form action="/sy3/display" method="post"> <label>學號</label> <input type="text" name="cg_sno" value=""> <label>姓名</label> <input type="text" name="cg_sname" value=""> <label>年齡</label> <input type="text" name="cg_sage" value=""> <input type="submit" value="修改"> </form> <h5>刪除數據</h5> <form action="/sy3/display" method="post"> <label>刪除數據學生的學號</label> <input type="text" name="del_sno" value=""> <input type="submit" value="刪除"> </form> </body> </html>
package cn.jdbc.servlet; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import cn.jdbc.dao.StudentDao; import cn.jdbc.domain.student; import cn.jdbc.test.search_id; /** * Servlet implementation class display */ @WebServlet("/display") public class display extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public display() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub //獲取數據庫操做的對象 StudentDao dao = new StudentDao(); //獲取數組對象 List<student> list = new ArrayList<student>(); //獲取查詢的學號 String search_sno = request.getParameter("search_no"); //獲取添加的數據 String add_sno = request.getParameter("add_sno"); String add_sname = request.getParameter("add_sname"); String add_sage = request.getParameter("add_sage"); //獲取修改的數據 String cg_sno = request.getParameter("cg_sno"); String cg_sname = request.getParameter("cg_sname"); String cg_sage = request.getParameter("cg_sage"); //獲取刪除的學號 String del_sno = request.getParameter("del_sno"); //查詢數據 if(search_sno!=null){ student student= dao.find(search_sno); list.add(student); search_sno=""; }else{//顯示全部的數據 list=dao.findAll(); } //添加數據 if(add_sage!=null){ student student = new student(); student.setSno(add_sno); student.setSname(add_sname); student.setSage(Integer.parseInt(add_sage)); dao.insert(student); list=dao.findAll(); add_sno=""; add_sname=""; add_sage=""; } //修改數據 if(cg_sage!=null){ student student = new student(); student.setSno(cg_sno); student.setSname(cg_sname); student.setSage(Integer.parseInt(cg_sage)); dao.update(student); list=dao.findAll(); cg_sno=""; cg_sname=""; cg_sage=""; } //刪除數據 if(del_sno!=null){ dao.delete(del_sno); list=dao.findAll(); del_sno=""; } //傳遞數組到jsp頁面 request.setAttribute("list", list); request.getRequestDispatcher("index.jsp").forward(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } }
package cn.jdbc.utils; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class utils { // 加載驅動,並創建數據庫鏈接 public static Connection getConnection() throws SQLException, ClassNotFoundException { // 加載驅動 Class.forName("com.mysql.jdbc.Driver"); // 獲取數據庫鏈接 String url = "jdbc:mysql://localhost:3306/kinjaze"; // 用戶名 String username = "root"; // 密碼 String password = "********"; Connection conn = DriverManager.getConnection(url, username, password); return conn; } // 關閉數據庫鏈接,釋放資源 public static void release(ResultSet rs, Statement stmt, Connection conn) { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } rs = null; } if (stmt != null) { try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } stmt = null; } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } conn = null; } } }
package cn.jdbc.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import cn.jdbc.domain.student; import cn.jdbc.utils.utils; /* * 完成對數據庫的增刪改查操做 */ public class StudentDao { //爲學生表添加數據 public boolean insert(student student) { Connection conn = null; PreparedStatement stmt = null; ResultSet rs = null; try { // 得到數據的鏈接 conn = utils.getConnection(); // SQL語句 String sql="insert into student values(?,?,?)"; //獲得預編譯對象 stmt=conn.prepareStatement(sql); stmt.setString(1, student.getSno()); stmt.setString(2, student.getSname()); stmt.setInt(3, student.getSage()); int num = stmt.executeUpdate(); if (num > 0) { return true; } return false; } catch (Exception e) { e.printStackTrace(); } finally { utils.release(rs, stmt, conn); } return false; } //查詢全部數據 public List < student > findAll() { Connection conn = null; PreparedStatement stmt = null; ResultSet rs = null; List < student > list = new ArrayList < student > (); try { // 得到數據的鏈接 conn = utils.getConnection(); // SQL語句 String sql="select * from student"; //獲得預編譯對象 stmt=conn.prepareStatement(sql); rs = stmt.executeQuery(); // 處理結果集,遍歷rs結果集 while (rs.next()) { student student = new student(); student.setSno(rs.getString("sno")); student.setSname(rs.getString("sname")); student.setSage(rs.getInt("sage")); list.add(student); } return list; } catch (Exception e) { e.printStackTrace(); } finally { utils.release(rs, stmt, conn); } return null; } // 根據id查找指定的student public student find(String id) { Connection conn = null; PreparedStatement stmt = null; ResultSet rs = null; student student = new student(); try { // 得到數據的鏈接 conn = utils.getConnection(); //SQL語句 String sql = "select * from student where sno=?"; //獲得預編譯對象 stmt=conn.prepareStatement(sql); stmt.setString(1, id); rs = stmt.executeQuery(); // 處理結果集 while (rs.next()) { student.setSno(rs.getString("sno")); student.setSname(rs.getString("sname")); student.setSage(rs.getInt("sage")); return student; } return null; } catch (Exception e) { e.printStackTrace(); } finally { utils.release(rs, stmt, conn); } return null; } //刪除學生數據 public boolean delete(String id){ Connection conn = null; PreparedStatement stmt = null; ResultSet rs = null; try { // 得到數據的鏈接 conn = utils.getConnection(); //sql語句 String sql = "delete from student where sno=?"; //獲取預處理對象 stmt= conn.prepareStatement(sql); stmt.setString(1, id); int num = stmt.executeUpdate(); if (num > 0) { return true; } return false; } catch (Exception e) { e.printStackTrace(); } finally { utils.release(rs, stmt, conn); } return false; } // 修改用戶 public boolean update(student student) { Connection con = null; PreparedStatement stmt = null; ResultSet rs = null; try { //得到數據的鏈接 con = utils.getConnection(); //sql語句 String sql="update student set sname=?,sage=? where sno =?"; //獲得預編譯對象 stmt=con.prepareStatement(sql); stmt.setString(1, student.getSname()); stmt.setInt(2, student.getSage()); stmt.setString(3, student.getSno()); int num = stmt.executeUpdate(); if (num > 0) { return true; } return false; } catch (Exception e) { e.printStackTrace(); } finally { utils.release(rs, stmt, con); } return false; } }
有其餘問題能夠私聊做者交流sql