javaEE14(网站第9章常用开发组件课后题第4题)
StudentDao:
package dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.ArrayList;import java.util.List;import util.JdbcUtil;import entity.Student;public class StudentDao { //�����ݿ�������û���¼�ķ���add() public void add(Student student) throws Exception{ Connection conn = null; PreparedStatement ps = null; try { conn = JdbcUtil.getConnection(); String sql = "insert into student2 values (null,?,?,?,?) "; ps = conn.prepareStatement(sql); ps.setString(1, student.getSno()); ps.setString(2,student.getSname()); ps.setString(3,student.getSex()); ps.setString(4,student.getPhoto()); ps.executeUpdate(); }finally {JdbcUtil.free(null,ps, conn);} } //�����ݿ��û���¼�ķ���update() public void update(Student student) throws Exception{ Connection conn = null; PreparedStatement ps = null; try { conn = JdbcUtil.getConnection(); String sql = "update student2 set sno=?,sname=?,sex=?,photo=? where id=? "; ps = conn.prepareStatement(sql); ps.setString(1,student.getSno()); ps.setString(2,student.getSname()); ps.setString(3, student.getSex()); ps.setString(4, student.getPhoto()); ps.setInt(5, student.getId()); ps.executeUpdate(); }finally {JdbcUtil.free(null,ps, conn);} } //ɾ�����ݿ��û���¼�ķ���delete() public void delete(int id) throws Exception{ Connection conn = null; PreparedStatement ps = null; try { conn = JdbcUtil.getConnection(); String sql = "delete from student2 where id=?"; ps = conn.prepareStatement(sql); ps.setInt(1,id); ps.executeUpdate(); }finally {JdbcUtil.free( null,ps, conn);} } //����id��ѯ�û��ķ���findStudentById() public Student findStudentById(int id) throws Exception{ Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; Student student=null; try { conn = JdbcUtil.getConnection(); String sql = "select * from student2 where id=? "; ps = conn.prepareStatement(sql); ps.setInt(1, id); rs=ps.executeQuery(); if(rs.next()){ student=new Student(); student.setId(rs.getInt(1)); student.setSno(rs.getString(2)); student.setSname(rs.getString(3)); student.setSex(rs.getString(4)); } }finally {JdbcUtil.free(rs, ps, conn);} return student; } //��ѯȫ���û��ķ���QueryAll() public List query() throws Exception{ Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; List studentList=new ArrayList(); try { conn = JdbcUtil.getConnection(); String sql = "select * from student2 "; ps=conn.prepareStatement(sql); rs=ps.executeQuery(); while(rs.next()){ Student student=new Student(); student.setId(rs.getInt(1)); student.setSno(rs.getString(2)); student.setSname(rs.getString(3)); student.setSex(rs.getString(4)); student.setPhoto(rs.getString(5)); studentList.add(student); } }finally {JdbcUtil.free(rs, ps, conn);} return studentList; }} Servlet:
package servlet;import java.io.File;import java.io.IOException;import java.io.PrintWriter;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 com.oreilly.servlet.MultipartRequest;import com.oreilly.servlet.multipart.DefaultFileRenamePolicy;import com.oreilly.servlet.multipart.FileRenamePolicy;import dao.StudentDao;import entity.Student;/** * Servlet implementation class StudentServlet */@WebServlet("/admin/studentServlet")public class StudentServlet extends HttpServlet { private static final long serialVersionUID = 1L; StudentDao studentDao = new StudentDao(); /** * @see HttpServlet#HttpServlet() */ public StudentServlet() { 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 this.doPost(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse * response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub request.setCharacterEncoding("UTF-8"); String op = request.getParameter("op"); if ("add".equals(op)) { this.add(request, response); } else if ("update".equals(op)) { this.update(request, response); } else if ("delete".equals(op)) { this.delete(request, response); } else if ("query".equals(op)) { this.query(request, response); } } private void add(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub String saveDirectory =this.getServletContext().getRealPath("/photo"); int maxPostSize =3 * 1024 * 1024 ; String info=""; FileRenamePolicy policy =(FileRenamePolicy)new DefaultFileRenamePolicy(); MultipartRequest multi = new MultipartRequest(request, saveDirectory, maxPostSize,"utf-8",policy); String photo=multi.getFilesystemName("photo"); if(photo==null){ photo=""; } StudentDao studentDao = new StudentDao(); try { Student student = new Student(); student.setSno(multi.getParameter("sno")); student.setSname(multi.getParameter("sname")); student.setSex(multi.getParameter("sex")); student.setPhoto(photo); studentDao.add(student); info="添加成功"; } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); info="添加失败"; } request.setAttribute("info",info); request.getRequestDispatcher("/admin/student/add.jsp").forward(request, response); } private void update(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub String saveDirectory =this.getServletContext().getRealPath("/photo"); int maxPostSize =3 * 1024 * 1024 ; //���ϴ���С���ƣ�3M FileRenamePolicy policy =(FileRenamePolicy)new DefaultFileRenamePolicy(); MultipartRequest multi = new MultipartRequest(request, saveDirectory, maxPostSize,"utf-8",policy); String photo=multi.getFilesystemName("photo"); String oldphoto=multi.getParameter("oldphoto"); if(photo==null){ photo=oldphoto; } else{ if(!"".equals(oldphoto)) new File(saveDirectory+"/"+oldphoto).delete(); } StudentDao studentDao = new StudentDao(); try { Student student = new Student(); student.setId(Integer.parseInt(multi.getParameter("id"))); student.setSno(multi.getParameter("sno")); student.setSname(multi.getParameter("sname")); student.setSex(multi.getParameter("sex")); student.setPhoto(photo); studentDao.update(student); response.sendRedirect("/zdwxz/admin/studentServlet?op=query"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); out.print("alert('更新失败')"); } } private void delete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub try { studentDao.delete(Integer.parseInt(request.getParameter("id"))); String photo=request.getParameter("photo"); String appPath=this.getServletContext().getRealPath("/photo"); if(!"".equals(photo)) new File(appPath+"/"+photo).delete(); response.sendRedirect("/zdwxz/admin/studentServlet?op=query"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } private void query(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub try { List studentList=studentDao.query(); request.setAttribute("studentList",studentList ); request.getRequestDispatcher("/admin/student/query.jsp").forward(request, response); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }}