无框架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知识点的一次小回顾,效果图如下 :


 

 



结束

小白希望能和大家多多交流,互相学习,毕竟学到老活到老嘛,啊不,活到老学到老,编程(码农)就是一步步慢慢来的,一起加油吧!

 

posted @ 2018-12-14 15:55  北城墨白  阅读(3486)  评论(1编辑  收藏  举报