缺點:唯一性判斷要求采用異步(jQuery Ajax)的方式進行實現(不是用該方法實現的)
使用的是servlet2.5




package dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import entity.Pet; public class PetDaoImpl extends BaseDao implements PetDao { // 添加寵物 public boolean insertpet(Pet pet) { Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { // 連接對象 conn = BaseDao.getConnection(); String sql = "insert into pet(petName,petBreed,petSex,birthday,description)values(?,?,?,?,?)"; // 獲取執行sql語句 ps = conn.prepareStatement(sql); // 執行sql語句 ps.setString(1, pet.getPetName()); ps.setInt(2, pet.getPetBreed()); ps.setInt(3, pet.getPetSex()); ps.setString(4, pet.getBirthday()); ps.setString(5, pet.getDescription()); int row = ps.executeUpdate(); if (row > 0) { return true; } else { return false; } } catch (Exception e) { e.printStackTrace(); return false; } finally { closeAll(conn, ps, rs); } } // 判斷寵物是否存在 (如果存在返回true 不存在返回false) public boolean isExist(int petId) { Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { // 獲取連接 conn = getConnection(); // 編寫sql語句 String sql = "select * from pet where petId=?"; ps = conn.prepareStatement(sql); ps.setInt(1, petId); // 執行sql語句 rs = ps.executeQuery(); if (rs.next()) { return true; } return false; } catch (SQLException e) { e.printStackTrace(); return false; } finally { closeAll(conn, ps, rs); } } // 根據品種查詢寵物 public List<Pet> sebreed(int petbreed) { Pet pet = null; Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; List<Pet> pets = new ArrayList<Pet>(); try { // 獲取連接 conn = getConnection(); // 編寫sql語句 String sql; // 如果品種等於0查詢全部寵物,否則按相應查詢 sql = "select * from pet where petBreed=?"; ps = conn.prepareStatement(sql); ps.setInt(1, petbreed); // 執行sql語句 rs = ps.executeQuery(); while (rs.next()) { String petName = rs.getString("petName"); String petbirthday = rs.getString("birthday"); int petSex = rs.getInt("petSex"); pet = new Pet(petName, petSex, petbirthday); pets.add(pet); } return pets; } catch (SQLException e) { e.printStackTrace(); return null; } finally { closeAll(conn, ps, rs); } } // 查詢寵物 public List<Pet> selpet() { Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; List<Pet> pets = new ArrayList<Pet>(); try { // 獲取連接 conn = getConnection(); // 編寫sql語句 String sql; // 如果品種等於0查詢全部寵物,否則按相應查詢 sql = "select * from pet"; ps = conn.prepareStatement(sql); // 執行sql語句 rs = ps.executeQuery(); while (rs.next()) { String petName = rs.getString("petName"); String petbirthday = rs.getString("birthday"); int petSex = rs.getInt("petSex"); Pet pet = new Pet(petName, petSex, petbirthday); pets.add(pet); } return pets; } catch (SQLException e) { e.printStackTrace(); return null; } finally { closeAll(conn, ps, rs); } } // public static void main(String[] args) { // PetDaoImpl pet=new PetDaoImpl(); // try { // // System.out.println(pet.selpet("4")); // } catch (Exception e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } // } // 驗證寵物昵稱(根據寵物名稱查詢) public boolean sepetName(String petName) throws Exception { Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; // 獲取連接 try { conn = getConnection(); // 編寫sql語句 String sql; sql = "select * from pet where petName=?"; ps = conn.prepareStatement(sql); ps.setString(1, petName); // 執行sql語句 rs = ps.executeQuery(); if (rs.next()) { return true; } } catch (SQLException e) { e.printStackTrace(); } finally { closeAll(conn, ps, rs); } return false; } // public static void main(String[] args) throws Exception { // Pet pet=PetDaoImpl.sepetName("旺旺"); // try { // System.out.println(pet.getBirthday()); // } catch (Exception e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } // } }

package service; import java.util.List; import dao.PetDao; import dao.PetDaoImpl; import entity.Pet; public class PetServiceImpl implements PetService { // 接口名 =new 實現類(多態) PetDao petdao = new PetDaoImpl(); Pet pet = new Pet(); // 獲取全部寵物信息 public List<Pet> selALLPet() throws Exception { return petdao.selpet(); } // 根本品種獲取寵物信息 public List<Pet> sebreed(int petbreed) { return petdao.sebreed(petbreed); } // 添加寵物 public boolean insertpet(Pet pet) { try { if (!petdao.isExist(pet.getPetId())) { petdao.insertpet(pet); return true; } else { return false; } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); return false; } } // 寵物昵稱判斷(查詢語句) public boolean isName(String petName) throws Exception { return petdao.sepetName(petName); } }

package servlet; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; 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 entity.Pet; import service.PetService; import service.PetServiceImpl; //@WebServlet("/AddServlet") public class AddServlet extends HttpServlet { private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException { request.setCharacterEncoding("utf-8"); //獲取數據 String petName=request.getParameter("petid"); int petBreed=Integer.parseInt(request.getParameter("invarieties")); int petSex=Integer.parseInt(request.getParameter("sex")); String birthday=request.getParameter("date"); String description=request.getParameter("petdesc"); //將獲取的數據封裝到實力類中 Pet pet=new Pet(petName, petBreed,petSex, birthday,description); PetService petservice=new PetServiceImpl(); boolean flag=petservice.insertpet(pet); if(flag){ request.setAttribute("error", "addtrue"); }else{ request.setAttribute("error", "addflase"); } try { request.getRequestDispatcher("SeAllServlet").forward(request, response); } catch (ServletException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }

package servlet; 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 entity.Pet; import service.PetService; import service.PetServiceImpl; public class SeAllServlet extends HttpServlet { private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PetService petservice=new PetServiceImpl(); try { List<Pet> pets=petservice.selALLPet(); request.setAttribute("pets", pets); //因為request中有數據所以請求轉發跳轉(重定向會丟失數據) request.getRequestDispatcher("index.jsp").forward(request, response); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }

package servlet; import java.io.IOException; 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 entity.Pet; import service.PetService; import service.PetServiceImpl; /** * Servlet implementation class Servlet */ //@WebServlet("/SebreedServlet") public class SebreedServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int petBreed=Integer.parseInt(request.getParameter("varieties")); if(petBreed==0){ response.sendRedirect("SeAllServlet"); }else{ Pet pet=new Pet(petBreed); PetService petservice=new PetServiceImpl(); try { List<Pet> pets=petservice.sebreed(petBreed); request.setAttribute("pets", pets); //因為request中有數據所以請求轉發跳轉(重定向會丟失數據) request.getRequestDispatcher("index.jsp").forward(request, response); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } }

package servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import service.PetService; import service.PetServiceImpl; public class SepetNameServlet extends HttpServlet { private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); String petName = request.getParameter("petid"); PetService petservice = new PetServiceImpl(); try { // 根據寵物名稱查詢(如果有此寵物返回true沒有返回false賦值給flag) boolean flag = petservice.isName(petName); // 如果名稱存在給增加頁面傳一個標識 if (flag) { request.setAttribute("error", "adderror"); request.getRequestDispatcher("addpet.jsp").forward(request, response); } else { request.getRequestDispatcher("AddServlet").forward(request, response); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }