您好,登錄后才能下訂單哦!
本文實例講述了JavaWeb JDBC + MySql 通訊錄實現簡單的增刪改查功能。分享給大家供大家參考,具體如下:
開發工具:Eclipse + Navicat
項目源碼:Github:https://github.com/Sunjinhang/JavaWeb
一、新建項目
在Eclipse中新建一個Web項目,至于如何新建Web項目以及如何添加Tomcat服務器的就不贅述了,項目的目錄如下
最終實現的效果如下所示:
點擊新增可以進行聯系人的新增,點擊修改/刪除可以進行 聯系人的修改和刪除
部分代碼如下
數據庫連接:在測試數據庫連接時,需要注意mysql 時區的設置,安裝mysql時默認的時區時美國時間,與本地相差8個小時,所以如果不修改則在鏈接數據庫時會報錯。
package pers.contact.dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class BaseDao { private static final String DRIVER = "com.mysql.jdbc.Driver"; public static final String URL = "jdbc:mysql://localhost:3306/demo?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=GMT%2B8"; public static final String USER = "root"; public static final String PASSWORD = "sasa"; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; public void getConnection() { try { // 加載數據庫驅動 Class.forName(DRIVER); // 獲得數據庫連接 conn = DriverManager.getConnection(URL, USER, PASSWORD); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } public int executeUpdate(String sql, Object... obj) { int num = 0; getConnection(); try { PreparedStatement pstmt = conn.prepareStatement(sql); for (int i = 0; i < obj.length; i++) { pstmt.setObject(i + 1, obj[i]); } num = pstmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } finally { closeAll(); } return num; } public ResultSet executeQuery(String sql, Object... obj) { getConnection(); try { PreparedStatement pstmt = conn.prepareStatement(sql); for (int i = 0; i < obj.length; i++) { pstmt.setObject(i + 1, obj[i]); } rs = pstmt.executeQuery(); } catch (SQLException e) { e.printStackTrace(); } return rs; } public void closeAll() { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } try { pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } }
聯系人:
package pers.contact.entity; import java.util.Date; public class Contact { public Contact(int id, String name, int age, String phone, Date date, String favorite) { super(); this.id = id; this.name = name; this.age = age; this.phone = phone; this.date = date; this.favorite = favorite; } private int id; private String name; private int age; private String phone; private Date date; private String favorite; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } public String getFavorite() { return favorite; } public void setFavorite(String favorite) { this.favorite = favorite; } }
增刪改查的實現:
package pers.contact.service; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import pers.contact.entity.Contact; import pers.contact.dao.BaseDao;; public class ContactService extends BaseDao { ResultSet rs = null; public List<Contact> GetAllContact(){ List<Contact> list = new ArrayList(); String sql = "select * from contact"; rs = executeQuery(sql); try { while (rs.next()) { Contact f = new Contact(rs.getInt(1), rs.getString(2), rs.getInt(3), rs.getString(4), rs.getDate(5), rs.getString(6)); list.add(f); } } catch (SQLException e) { e.printStackTrace(); } return list; } public int AddContact(Contact contact) { int num = 0; String sql = "insert into contact(name,age,phone,date,favorite) values(?,?,?,?,?)"; try { num = executeUpdate(sql, contact.getName(), contact.getAge(), contact.getPhone(), contact.getDate(), contact.getFavorite()); } catch (Exception e) { e.printStackTrace(); } return num; } public int DeleteContact(int id) { int num = 0; String sql = "delete from contact where id = ?"; try { num = executeUpdate(sql, id); } catch(Exception ex) { ex.printStackTrace(); } return num; } public Contact GetContact(int id) { String sql = "select * from contact where id = ?"; Contact contact = null; rs = executeQuery(sql, id); try { while(rs.next()) { contact = new Contact(rs.getInt(1),rs.getString(2),rs.getInt(3),rs.getString(4),rs.getDate(5),rs.getString(6)); } } catch(SQLException ex){ ex.printStackTrace(); } return contact; } public int UpdateContact(Contact contact) { int num = 0; String sql = "update contact set name = ?,age = ?,phone = ?,date = ?,favorite = ? where id = ?"; try { num = executeUpdate(sql, contact.getName(),contact.getAge(),contact.getPhone(),contact.getDate(),contact.getFavorite(),contact.getId()); } catch(Exception ex) { ex.printStackTrace(); } return num; } }
Servlet:
package pers.contact.servlet; import java.io.IOException; import java.io.PrintWriter; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; 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 javax.servlet.http.HttpSession; import pers.contact.entity.Contact; import pers.contact.service.ContactService; /** * Servlet implementation class ContactServlet */ @WebServlet("/ContactServlet") public class ContactServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public ContactServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); request.setCharacterEncoding("utf-8"); HttpSession session = request.getSession(); PrintWriter out = response.getWriter(); ContactService ud = new ContactService(); // 獲得do屬性 String dos = request.getParameter("do"); if (dos == null || dos.equals("")) { dos = "index"; } // 主頁 if (dos.equals("index")) { List<Contact> ulist = ud.GetAllContact(); request.setAttribute("ulist", ulist); request.getRequestDispatcher("/index.jsp").forward(request, response); return; } if(dos.equals("add")) { String name = request.getParameter("name"); int age = Integer.parseInt(request.getParameter("age")); String phone = request.getParameter("phone"); String dates = request.getParameter("date"); SimpleDateFormat sdf = new SimpleDateFormat("yy-MM-dd"); Date date = null; try { date = (Date)sdf.parse(dates); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } //愛好獲取 String favorite = request.getParameter("favorite"); Contact contact = new Contact(0,name,age,phone,date,favorite); ud.AddContact(contact); out.print("<script>alert('新增成功!');window.location='ContactServlet?do=index';</script>"); } if(dos.equals("del")) { String ids = request.getParameter("id"); int id = Integer.parseInt(ids); ud.DeleteContact(id); out.print("<script>alert('刪除成功!');window.location='ContactServlet?do=index';</script>"); } if(dos.equals("editbefore")) { int id = Integer.parseInt(request.getParameter("id")); Contact f = ud.GetContact(id); session.setAttribute("edituser", f); response.sendRedirect("edit.jsp"); return; } if(dos.equals("edit")) { try { int id = Integer.parseInt(request.getParameter("id")); String name = request.getParameter("name"); int age = Integer.parseInt(request.getParameter("age")); String phone = request.getParameter("phone"); String dates = request.getParameter("date"); SimpleDateFormat sdf = new SimpleDateFormat("yy-MM-dd"); Date date = null; date = (Date)sdf.parse(dates); String favorite = request.getParameter("favorite"); Contact contact = new Contact(id,name,age,phone,date,favorite); ud.UpdateContact(contact); out.print("<script>alert('修改成功!');window.location='ContactServlet?do=index';</script>"); } catch(ParseException ex) { ex.printStackTrace(); } } } }
JSP頁面
index 頁面,此頁面需要添加 jstl.jar 和standard.jar ,否則無法引用 taglib
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ page import="pers.contact.entity.Contact"%> <%@ page import="pers.contact.service.ContactService"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; //下面的語句初始為初始化頁面,如果不加下面語句訪問主頁不會顯示數據庫中保存的數據 ContactService ud = new ContactService(); List<Contact> ulist = ud.GetAllContact(); request.setAttribute("ulist", ulist); %> <!DOCTYPE html> <html> <head> <base href="<%=basePath%>" rel="external nofollow" rel="external nofollow" rel="external nofollow" > <meta charset="ISO-8859-1"> <link rel="stylesheet" href="https://cdn.bootcss.com/foundation/5.5.3/css/foundation.min.css" rel="external nofollow" rel="external nofollow" rel="external nofollow" > <script src="https://cdn.bootcss.com/jquery/2.1.1/jquery.min.js"></script> <script src="https://cdn.bootcss.com/foundation/5.5.3/js/foundation.min.js"></script> <script src="https://cdn.bootcss.com/foundation/5.5.3/js/vendor/modernizr.js"></script> <style type="text/css"> table { margin: auto; } td { text-align: center; } h2 { margin-left: 40%; } a#add { margin-left: 45%; } </style> <title>Insert title here</title> </head> <body > <h2>通訊錄主頁</h2> <a id="add" href="add.jsp" rel="external nofollow" >新增小伙伴</a> <table> <thead> <tr> <th>序號</th> <th>姓名</th> <th>年齡</th> <th>電話</th> <th>生日</th> <th>愛好</th> <th>操作</th> </tr> <c:forEach var="U" items="${ulist}"> <tr> <th>${U.id}</th> <th>${U.name}</th> <th>${U.age}</th> <th>${U.phone}</th> <th>${U.date}</th> <th>${U.favorite}</th> <th><a href="ContactServlet?do=editbefore&id=${U.id}" rel="external nofollow" >修改</a> <a href="ContactServlet?do=del&id=${U.id}" rel="external nofollow" >刪除</a> </th> </tr> </c:forEach> </thead> <%--<c:forEach/>標簽遍歷List--%> </table> </body> </html>
Add頁面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>" rel="external nofollow" rel="external nofollow" rel="external nofollow" > <title>My JSP 'add.jsp' starting page</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" rel="external nofollow" rel="external nofollow" rel="external nofollow" > <script src="https://cdn.bootcss.com/jquery/2.1.1/jquery.min.js"></script> <script src="https://cdn.bootcss.com/foundation/5.5.3/js/foundation.min.js"></script> <script src="https://cdn.bootcss.com/foundation/5.5.3/js/vendor/modernizr.js"></script> </head> <body> <h2>新增頁面</h2> <form action="ContactServlet?do=add" method="post" > <fieldset> <label>姓名 <input type="text" placeholder="name" required="required" name="name" /> </label> <label>年齡 <input type="number" placeholder="age" required="required" min="1" max="133" name="age" /> </label> <label>電話<input type="text" placeholder="phonenum" required="required" name="phone" /> </label> <label>生日<input type="date" placeholder="date" required="required" name="date" /> </label> <label>愛好<input type="text" placeholder="favorite" required="required" name="favorite" /> </label> <input type="submit" value="新增" class="button" /> <input type="reset" class="button" /> </fieldset> </form> </body> </html>
Edit頁面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>" rel="external nofollow" rel="external nofollow" rel="external nofollow" > <title>My JSP 'add.jsp' starting page</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" rel="external nofollow" rel="external nofollow" rel="external nofollow" > <script src="https://cdn.bootcss.com/jquery/2.1.1/jquery.min.js"></script> <script src="https://cdn.bootcss.com/foundation/5.5.3/js/foundation.min.js"></script> <script src="https://cdn.bootcss.com/foundation/5.5.3/js/vendor/modernizr.js"></script> </head> <body> <h2>修改頁面</h2> <form action="ContactServlet?do=edit&id=${edituser.id}" method="post" > <fieldset> <label>姓名 <input type="text" placeholder="name" name="name" value = "${edituser.name}"> </label> <label>年齡 <input type="text" placeholder="age" name="age" value = "${edituser.age}"> </label> <label>電話<input type="text" placeholder="phone" name="phone" value = "${edituser.phone}"> </label> <label>生日<input type="date" placeholder="date" name="date" value = "${edituser.date}"> </label> <label>愛好<input type="text" placeholder="favorite" name="favorite" value = "${edituser.favorite}"> </label> <input type="submit" value="修改" class="button"> <input type="reset" class="button"> </fieldset> </form> </body> </html>
更多java相關內容感興趣的讀者可查看本站專題:《Java面向對象程序設計入門與進階教程》、《Java數據結構與算法教程》、《Java操作DOM節點技巧總結》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設計有所幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。