無框架JavaWeb簡單增刪改查,純 jsp小練習


剛入門javaweb,自己做個jsp小練習供以后參考,本文純jsp與后台JDBC增刪改查的操作,還有一些瑕疵需要修復(當然大佬就不要挑我這個小白的毛病了,小白正在不斷學習中....).

寫這篇文章的目的是為了記錄 怎樣把數據從前台傳輸到后端數據庫,也是對自己學習的一次小總結, 不足之處多多見諒~~~

好啦,開始整吧

(1) 數據庫(mysql)只有一張表 emp

 

 

 

(2) eclipse建立web項目(不使用maven)   具體結構如下:

 

 

(3)上代碼

后台代碼 :

  (3.1) 先寫好連接數據庫的配置文件,配置文件的作用就是方便更改我們數據庫的賬戶密碼,數據庫驅動等

    
1 jdbc.name = root
2 jdbc.password =root
3 jdbc.url = jdbc:mysql://localhost:3306/cust?useSSL=false
4 jdbc.driver = com.mysql.jdbc.Driver
jdbc.properties

  (3.2) util包下的工具類

    
 1 package cn.ssq.util;
 2 
 3 import java.io.IOException;
 4 import java.io.InputStream;
 5 import java.util.Properties;
 6 
 7 public class Prosutil {
 8 
 9     private static Properties properties;
10     
11     static{
12         properties = new Properties();
13         //引入配置文件
14         InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("jdbc.properties");
15         
16         try {
17             properties.load(is);
18         } catch (IOException e) {
19             // TODO Auto-generated catch block
20             e.printStackTrace();
21         }
22         
23     }
24     public static String getStringByKey(String key){
25         return properties.getProperty(key,"");
26     }
27 }
Prosutil.java(調用配置文件)
    
  1 package cn.ssq.util;
  2 
  3 import java.sql.Connection;
  4 import java.sql.DriverManager;
  5 import java.sql.PreparedStatement;
  6 import java.sql.ResultSet;
  7 import java.sql.SQLException;
  8 
  9 public class DButil {
 10     //通過配置文件讀取數據庫的相關配置
 11     private static final String  URL = Prosutil.getStringByKey("jdbc.url");
 12     private static final String  DRIVER = Prosutil.getStringByKey("jdbc.driver");
 13     private static final String  USERNAME = Prosutil.getStringByKey("jdbc.name");
 14     private static final String  PASSWORD = Prosutil.getStringByKey("jdbc.password");
 15     //建立數據庫連接
 16     public static Connection getConn(){
 17         Connection conn  = null;
 18 
 19         try {
 20             Class.forName(DRIVER);
 21             conn = DriverManager.getConnection(URL,USERNAME,PASSWORD);
 22         } catch (ClassNotFoundException e) {
 23             
 24             e.printStackTrace();
 25         } catch (SQLException e) {
 26         
 27             e.printStackTrace();
 28         }
 29         return conn;
 30     }
 31 
 32     //關閉數據庫連接
 33     public static void CloseAll(ResultSet rs,PreparedStatement ps, Connection conn){
 34 
 35         try {
 36             if(rs != null){
 37                 rs.close();
 38                 rs = null;
 39             }
 40             if(ps !=null){
 41                 ps.close();
 42                 ps = null;
 43             }
 44             if(conn!=null){
 45                 conn.close();
 46                 conn = null;
 47             }
 48         } catch (SQLException e) {
 49             
 50             e.printStackTrace();
 51         }
 52 
 53     }
 54 
 55     //    private static ResultSet rs;
 56     private static PreparedStatement ps;
 57     private static Connection conn;
 58     /**
 59      * 增刪改
 60      * @return
 61      */
 62     public static int execuUpdate(String sql ,Object...param){
 63         int num = 0;
 64         conn = getConn();
 65         try {
 66             PreparedStatement ps = conn.prepareStatement(sql);
 67             for (int i = 0; i < param.length; i++) {
 68                 Object object = param[i];
 69                 ps.setObject(i+1, object);
 70             }
 71             num = ps.executeUpdate();
 72         } catch (SQLException e) {
 73             
 74             e.printStackTrace();
 75         }finally{
 76             CloseAll(null,ps,conn);
 77         }
 78         return num;
 79     }
 80     /**
 81      * 通用查詢
 82      */
 83     public static ResultSet execuQuery(String sql,Object...param){
 84         ResultSet rs = null;
 85         conn = getConn();
 86         try {
 87             PreparedStatement ps = conn.prepareStatement(sql);
 88             for (int i = 0; i < param.length; i++) {
 89                 Object object = param[i];
 90                 ps.setObject(i+1, object);
 91             }
 92             rs = ps.executeQuery();
 93         } catch (SQLException e) {
 94             
 95             e.printStackTrace();
 96         }
 97         return rs;
 98 
 99     }
100 }
DButil.java(數據庫工具類)

  (3.3)entity包下的實體類

    
 1 package cn.ssq.entity;
 2 
 3 public class Emp {
 4 
 5     private int id;
 6     private String name;
 7     private String gender;
 8     private String tel;
 9     private String username;
10     private String password;
11     public int getId() {
12         return id;
13     }
14     public void setId(int id) {
15         this.id = id;
16     }
17     public String getName() {
18         return name;
19     }
20     public void setName(String name) {
21         this.name = name;
22     }
23     public String getGender() {
24         return gender;
25     }
26     public void setGender(String gender) {
27         this.gender = gender;
28     }
29     public String getTel() {
30         return tel;
31     }
32     public void setTel(String tel) {
33         this.tel = tel;
34     }
35     public String getUsername() {
36         return username;
37     }
38     public void setUsername(String username) {
39         this.username = username;
40     }
41     public String getPassword() {
42         return password;
43     }
44     public void setPassword(String password) {
45         this.password = password;
46     }
47     public Emp() {
48         super();
49 
50     }
51     public Emp(int id, String name, String gender, String tel, String username,
52             String password) {
53         super();
54         this.id = id;
55         this.name = name;
56         this.gender = gender;
57         this.tel = tel;
58         this.username = username;
59         this.password = password;
60     }
61 
62 }
Emp.java

  (3.4)dao包下的接口和接口實現類

    
 1 package cn.ssq.dao;
 2 
 3 import java.util.List;
 4 
 5 import cn.ssq.entity.Emp;
 6 
 7 public interface EmpDao {
 8 
 9     int save(Emp emp);
10     int delete(int id);
11     int update(Emp emp);
12     List<Emp> findAll();
13     Emp getEmpById(int id);
14     
15 }
EmpDao.java
    
 1 package cn.ssq.dao.impl;
 2 
 3 import java.sql.ResultSet;
 4 import java.sql.SQLException;
 5 import java.util.ArrayList;
 6 import java.util.List;
 7 
 8 import cn.ssq.dao.EmpDao;
 9 import cn.ssq.entity.Emp;
10 import cn.ssq.util.DButil;
11 
12 public class EmpDaoImpl implements EmpDao {
13 
14     Emp emp = null;
15     /**
16      * 添加
17      */
18     @Override
19     public int save(Emp emp) {
20         String sql = "insert into customer(id,name,gender,tel,username,password)values(?,?,?,?,?,?)";
21         return DButil.execuUpdate(sql, emp.getId(),emp.getName(),emp.getGender(),emp.getTel(),emp.getUsername(),emp.getPassword());
22     }
23 
24     /**
25      * 刪除
26      */
27     @Override
28     public int delete(int id) {
29         String sql = "delete from customer where id = ?";
30         return DButil.execuUpdate(sql, id);
31     }
32 
33     /**
34      * 修改
35      */
36     @Override
37     public int update(Emp emp) {
38         String sql = "update customer set name = ?,gender=?,tel=?,username=?,password=? where id=?";
39         return DButil.execuUpdate(sql, emp.getName(),emp.getGender(),emp.getTel(),emp.getUsername(),emp.getPassword(),emp.getId());
40     }
41 
42     /**
43      * 查詢
44      */
45     @Override
46     public List<Emp> findAll() {
47         List<Emp> list = new ArrayList<Emp>();
48         String sql = "select * from customer";
49         ResultSet rs = DButil.execuQuery(sql);
50         try {
51             while(rs.next()){
52                 emp = new Emp();
53                 emp.setId(rs.getInt("id"));
54                 emp.setGender(rs.getString("gender"));
55                 emp.setName(rs.getString("name"));
56                 emp.setTel(rs.getString("tel"));
57                 emp.setUsername(rs.getString("username"));
58                 emp.setPassword(rs.getString("password"));
59                 list.add(emp);        
60             }
61         } catch (SQLException e) {
62 
63             e.printStackTrace();
64         }
65 
66         return list;
67     }
68 
69     //根據id查詢
70     @Override
71     public Emp getEmpById(int id) {
72         Emp emp=null;
73         String sql = "select * from customer where id = ?";
74         ResultSet rs = DButil.execuQuery(sql, id);
75         try {
76             while(rs.next()){
77                 emp = new Emp();
78                 emp.setGender(rs.getString("gender"));
79                 emp.setName(rs.getString("name"));
80                 emp.setPassword(rs.getString("password"));
81                 emp.setUsername(rs.getString("username"));
82                 emp.setTel(rs.getString("tel"));
83             }
84         } catch (SQLException e) {
85 
86             e.printStackTrace();
87         }
88 
89 
90         return emp;
91     }
92 
93 }
EmpDaoImpl.java

  (3.5)service包下的業務層

    
 1 package cn.ssq.service;
 2 
 3 import java.util.List;
 4 
 5 import cn.ssq.entity.Emp;
 6 
 7 public interface ServiceDao {
 8 
 9     boolean save(Emp emp);
10     boolean delete(int id);
11     boolean update(Emp emp);
12     List<Emp> findAll();
13     Emp getEmpById(int id);
14 }
ServiceDao.java
    
 1 package cn.ssq.service.impl;
 2 
 3 import java.util.List;
 4 
 5 import cn.ssq.dao.EmpDao;
 6 import cn.ssq.dao.impl.EmpDaoImpl;
 7 import cn.ssq.entity.Emp;
 8 import cn.ssq.service.ServiceDao;
 9 /**
10  * 業務調用
11  * @author 北城墨白
12  *
13  * 2018年12月13日
14  */
15 public class ServiceDaoImpl implements ServiceDao {
16 
17     EmpDao dao = new EmpDaoImpl();
18     @Override
19     public boolean save(Emp emp) {
20 
21         return dao.save(emp)>0;
22     }
23 
24     @Override
25     public boolean delete(int id) {
26 
27         return dao.delete(id)>0;
28     }
29 
30     @Override
31     public boolean update(Emp emp) {
32         return dao.update(emp)>0;
33     }
34 
35     @Override
36     public List<Emp> findAll() {
37         return dao.findAll();
38     }
39 
40     @Override
41     public Emp getEmpById(int id) {
42 
43         return dao.getEmpById(id);
44     }
45 
46 }
ServiceDaoImpl.java

  到這里,基本的底層代碼已經結束了,剩下的就是前端jsp的編寫了(記得導包,jar包的下載地址問度娘就可以了,在這我就不啰嗦了)

  (3.6)WebContent文件夾下的jsp頁面代碼

前端代碼:

    
 1 <%@page import="org.apache.jasper.tagplugins.jstl.core.ForEach"%>
 2 <%@page import="cn.ssq.entity.Emp"%>
 3 <%@page import="java.util.List"%>
 4 <%@page import="cn.ssq.service.impl.ServiceDaoImpl"%>
 5 <%@page import="cn.ssq.service.ServiceDao"%>
 6 <%@ page language="java" contentType="text/html; charset=UTF-8"
 7     pageEncoding="UTF-8"%>
 8 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 9 <html>
10 <head>
11 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
12 <title>顯示頁面信息</title>
13 </head>
14 <body>
15     <%
16      request.setCharacterEncoding("UTF-8");  
17     response.setCharacterEncoding("utf-8");
18         ServiceDao service = new ServiceDaoImpl();
19         List<Emp> list = service.findAll();
20     %>
21     <a href="insert_update.jsp"><font color="green">添加新員工</font></a>
22     <table border="1" cellspacing="0" cellpadding="10" align="center">
23         <tr>
24             <td>員工編號</td>
25             <td>姓名</td>
26             <td>性別</td>
27             <td>電話</td>
28             <td>用戶名</td>
29             <td>密碼</td>
30             <td>操作</td>
31         </tr>
32         <%
33             for(Emp e:list){
34         %>
35         <tr>
36             <td><%=e.getId() %></td>
37             <td><%=e.getName() %></td>
38             <td><%=e.getGender()%></td>
39             <td><%=e.getTel() %></td>
40             <td><%=e.getUsername() %></td>
41             <td><%=e.getPassword() %></td>
42             <td><a href="insert_update.jsp?nid=<%=e.getId() %>">修改</a> <a
43                 href="delete.jsp?did=<%=e.getId() %>"><font color="red">刪除</font></a>
44             </td>
45         </tr>
46         <%} %>
47     </table>
48 </body>
49 </html>
index.jsp(首頁查詢顯示界面)
    
 1 <%@page import="cn.ssq.service.impl.ServiceDaoImpl"%>
 2 <%@page import="cn.ssq.service.ServiceDao"%>
 3 <%@ page language="java" contentType="text/html; charset=UTF-8"
 4     pageEncoding="UTF-8"%>
 5 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 6 <html>
 7 <head>
 8 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 9 <title>Insert title here</title>
10 </head>
11 <body>
12     <%
13         request.setCharacterEncoding("UTF-8");  
14         response.setCharacterEncoding("utf-8");
15         String did = request.getParameter("did");
16         int empid = Integer.valueOf(did);
17         ServiceDao service = new ServiceDaoImpl();
18         
19         if(service.delete(empid)==true){
20             response.sendRedirect("index.jsp");
21         }else{
22             response.sendRedirect("index.jsp");
23         }
24     %>
25 </body>
26 </html>
delete.jsp(刪除處理)
    
 1 <%@page import="cn.ssq.entity.Emp"%>
 2 <%@page import="cn.ssq.service.impl.ServiceDaoImpl"%>
 3 <%@page import="cn.ssq.service.ServiceDao"%>
 4 <%@ page language="java" contentType="text/html; charset=UTF-8"
 5     pageEncoding="UTF-8"%>
 6 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 7 <html>
 8 <head>
 9 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
10 <title>Insert title here</title>
11 </head>
12 <body>
13     
14     <%
15         String nid = request.getParameter("nid");
16         Emp e = null;
17         ServiceDao service = new ServiceDaoImpl();
18         if(nid !=null){
19             int eid = Integer.valueOf(nid);
20             e = service.getEmpById(eid);
21         }
22         
23     %>
24 
25     <h1><%=nid == null ? "添加" : "修改" %>員工信息</h1><br>
26         <form action="<%=nid == null? "doadd.jsp" : "doupdate.jsp" %>" method="post">
27             員工編號:&nbsp;<input  type = "text" name="nid" value="<%=nid==null? "":nid %>"><font color="red">(員工編號不可重復)</font><br><br>
28             員工姓名:&nbsp;<input type="text" name="name" value="<%=nid==null? "" :e.getName() %>"><br><br>
29             員工性別:&nbsp;<input type="text" name="gender" value="<%=nid==null? "" :e.getGender()%>"><br><br>
30             員工電話:&nbsp;<input type="text" name="tel" value="<%=nid==null? "" :e.getTel()%>"><br><br>
31 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用戶名:<input type="text" name="username" value="<%=nid==null? "" :e.getUsername()%>"><br><br>
32             員工密碼:&nbsp;<input type="password" name="password" value="<%=nid==null? "": e.getPassword()%>"><br><br>
33             <input type="submit" value="提交">
34         </form>
35 </body>
36 </html>
insert_update.jsp(添加和修改共用一個顯示頁面)
    
 1 <%@page import="cn.ssq.service.impl.ServiceDaoImpl"%>
 2 <%@page import="cn.ssq.service.ServiceDao"%>
 3 <%@page import="cn.ssq.entity.Emp"%>
 4 <%@ page language="java" contentType="text/html; charset=UTF-8"
 5     pageEncoding="UTF-8"%>
 6 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 7 <html>
 8 <head>
 9 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
10 <title>Insert title here</title>
11 </head>
12 <body>
13     <%
14         request.setCharacterEncoding("UTF-8");  
15         response.setCharacterEncoding("utf-8");
16         String id = request.getParameter("nid");
17         String name=request.getParameter("name");
18         String gender=request.getParameter("gender");
19         String tel = request.getParameter("tel");
20         String username=request.getParameter("username");
21         String password=request.getParameter("password");
22         
23         Emp emp = new Emp();
24         
25         int eid = Integer.valueOf(id);
26         
27         emp.setId(eid);
28         emp.setName(name);
29         emp.setGender(gender);
30         emp.setTel(tel);
31         emp.setUsername(username);
32         emp.setPassword(password);
33         
34         ServiceDao service = new ServiceDaoImpl();
35         if(service.save(emp)==true){
36             response.sendRedirect("index.jsp");
37         }else{
38             response.sendRedirect("insert_update.jsp");
39         }
40     %>
41 </body>
42 </html>
doadd.jsp(添加處理)
    
 1 <%@page import="cn.ssq.service.impl.ServiceDaoImpl"%>
 2 <%@page import="cn.ssq.entity.Emp"%>
 3 <%@page import="cn.ssq.service.ServiceDao"%>
 4 <%@ page language="java" contentType="text/html; charset=UTF-8"
 5     pageEncoding="UTF-8"%>
 6 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 7 <html>
 8 <head>
 9 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
10 <title>Insert title here</title>
11 </head>
12 <body>
13 <%
14         request.setCharacterEncoding("UTF-8");  
15         response.setCharacterEncoding("utf-8");
16         String id = request.getParameter("nid");
17         String name=request.getParameter("name");
18         String gender=request.getParameter("gender");
19         String tel = request.getParameter("tel");
20         String username=request.getParameter("username");
21         String password=request.getParameter("password");
22         
23         Emp emp = new Emp();
24         
25         int eid = Integer.valueOf(id);
26         
27         emp.setId(eid);
28         emp.setName(name);
29         emp.setGender(gender);
30         emp.setTel(tel);
31         emp.setUsername(username);
32         emp.setPassword(password);
33         
34         ServiceDao service = new ServiceDaoImpl();
35         if(service.update(emp)==true){
36             response.sendRedirect("index.jsp");
37         }else{
38             response.sendRedirect("insert_update.jsp");
39         }
40     %>
41 </body>
42 </html>
doupdate.jsp(修改處理)

代碼完畢!

(4)運行index.jsp頁面就可以正常使用了,當然這個小練習沒有實用性,只是對jsp知識點的一次小回顧,效果圖如下 :


 

 



結束

小白希望能和大家多多交流,互相學習,畢竟學到老活到老嘛,啊不,活到老學到老,編程(碼農)就是一步步慢慢來的,一起加油吧!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM