jsp + servlet 实现简单的增、删、改、查


这一学期的期末考试也就考了这些。以下是代码,由于简单,在此不多说。

index.jsp:

 1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
 2 
 3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 4 <html>
 5   <head>   
 6     <title>My JSP 'index.jsp' starting page</title>
 7     <meta http-equiv="pragma" content="no-cache">
 8     <meta http-equiv="cache-control" content="no-cache">
 9     <meta http-equiv="expires" content="0">    
10     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
11     <meta http-equiv="description" content="This is my page">
12     <link rel="stylesheet" href="layui/css/layui.css" media="all" />
13     <script src="js/jquery.3.2.1.js"></script>
14     <script src="js/jquery.cookie.js"></script>
15     <script type="text/javascript">
16          <%
17              String account = null; 18             if(request.getAttribute("is") != null){ 19                 if((Integer)request.getAttribute("is") == 1){ 20                     String account1 = (String)request.getAttribute("ACCOUNT"); 21                     account = new String(account1.getBytes("iso-8859-1"),"utf-8"); 22                                         
23          %>
24                      var account = '<%=account%>'; 25                      $.cookie('ACCOUNT',account); 26          <%
27                      response.setHeader("refresh", "1;URL=main.jsp"); 28                 }else{ 29          %>
30                     alert("账号或密码错误!"); 31          <%
32  } 33  } 34          %>    
35  $(function(){ 36             $('#register').click(function() { 37                     $(location).attr('href', 'register.jsp'); 38  }); 39  }); 40     </script>
41   </head>
42   
43   <body>
44     <div style="margin-top: 14%;">
45             <form class="layui-form" id="from1" action="LoginServlet.action" method="post">
46                 <div style="margin-right: 4%;" class="layui-form-item">
47                     <label class="layui-form-label">账号</label>
48                     <div class="layui-input-block">
49                         <input id="account" name="account" lay-verify="title" placeholder="请输入账号" class="layui-input" type="text">
50                     </div>
51                     <label style="margin-top: 1%;" class="layui-form-label">密码</label>
52                     <div style="margin-top: 1%;" class="layui-input-block">
53                         <input id="passwords" name="passwords" lay-verify="title" placeholder="请输入密码" class="layui-input" type="password">
54                     </div>
55                 </div>
56                 <center>
57                     <div class="layui-form-item">
58                         <input id="login" type="submit" value="登录" class="layui-btn layui-btn-warm layui-btn-radius" />
59                         <input id="register" type="button" value="注册" style="margin-left: 10%;" class="layui-btn layui-btn-warm layui-btn-radius" />
60                     </div>
61                 </center>
62             </form>
63         </div>
64 </body>
65 </html>

 

 

 

main.jsp:

 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
 2 
 3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 4 <html>
 5   <head>    
 6     <title>My JSP 'main.jsp' starting page</title>
 7     
 8     <meta http-equiv="pragma" content="no-cache">
 9     <meta http-equiv="cache-control" content="no-cache">
 10     <meta http-equiv="expires" content="0">    
 11     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 12     <meta http-equiv="description" content="This is my page">
 13     <link rel="stylesheet" href="layui/css/layui.css" media="all" />
 14     <link rel="stylesheet" href="js/jexcel/css/jquery.jexcel.css" />
 15       <link rel="stylesheet" href="js/jexcel/css/jquery.jcalendar.css" />
 16     <script src="js/jquery.3.2.1.js"></script>
 17     <script type="text/javascript" src="js/jexcel/jquery.jexcel.js" ></script>
 18      <script type="text/javascript" src="js/jexcel/jquery.jcalendar.js" ></script>
 19     <script src="js/jquery.cookie.js"></script>
 20     <script type="text/javascript">
 21  $(function(){  22             if('<%=(String)request.getAttribute("isSelect")%>' == '1'){  23                 $('#update').show(1500);  24                 $('#div2').show(1500);  25                 $('#score-student-list').hide(1500);  26                 $('#account').val('<%=(String)request.getAttribute("account")%>');  27                 $('#phone').val('<%=(String)request.getAttribute("phone")%>');  28                 $('#email').val('<%=(String)request.getAttribute("email")%>');  29                 $('#ids').val('<%=(String)request.getAttribute("userId")%>');  30                 $('#name').val('<%=(String)request.getAttribute("userName")%>');  31                 $('#password').val('<%=(String)request.getAttribute("passwords")%>');  32                 $('#sex').val('<%=(String)request.getAttribute("sex")%>');  33  }  34             if('<%=(String)request.getAttribute("isSelectAll")%>' == '1'){  35                 $('#update').hide(1500);  36                 $('#score-student-list').show(1500);  37                 $('#div2').hide(1500);  38                 var arrData = [];  39                 var arr = null;  40                 <%
 41                     int index = 0;  42                     final int cloNumber = 6;  43                     List<Object> selectDataAll = (List<Object>) request.getAttribute("listAllData");  44                     if(selectDataAll != null){  45                         for(int i=0 ; i<selectDataAll.size() ; i++){  46                             if(index <= cloNumber){  47                 %>
 48                                 if(arr == null){  49                                     arr = new Array;  50  }  51                                 arr.push('<%=selectDataAll.get(i)%>');  52                 <%
 53                                 if(index++ == cloNumber){  54                                     index = 0;  55                 %>
 56  arrData.push(arr);  57                                     arr = null;  58                 <%                                            
 59  }  60                                 
 61  }  62  }  63  }  64                 %>
 65                 $('#score-student-list').jexcel({  66                     data: arrData, // 数据(二维数组)
 67                     colHeaders: ['身份证', '真实姓名', '账号', '手机', '邮箱', '密码','性别'], // 表头
 68                     colWidths: [200, 200, 200, 200, 200, 200,180], // 每列的宽度
 69  columns: [{  70                         type: 'text'
 71  },{  72                         type: 'text'
 73  },{  74                         type: 'text'
 75  },{  76                         type: 'text'
 77  },{  78                         type: 'text'
 79  }, {  80                         type: 'text'
 81  },{  82                         type: 'text'
 83  },  84  ]}  85  );  86  }  87             
 88             if('<%=(String)request.getAttribute("isInsert")%>' == '1'){  89                 alert("修改成功");  90                 $('#div2').hide(1500);  91  }  92             
 93             if('<%=(String)request.getAttribute("isDelete")%>' == '1'){  94                 alert("删除成功");  95                 $(location).attr('href', 'index.jsp');  96  }  97             
 98             $('#select').click(function(){  99             <%--<%=request.getParameter("ACCOUNT") %>"--%>
100                 document.demo.action="MainServlet.action?Type=select&accounts="+$.cookie('ACCOUNT'); 101  document.demo.submit(); 102  }); 103             
104             $('#save').click(function(){ 105                 document.demo.action="MainServlet.action?Type=saves"; 106  document.demo.submit(); 107  }); 108             
109             $('#cancel').click(function(){ 110                 document.demo.action="MainServlet.action?Type=cancel&accounts="+$.cookie('ACCOUNT'); 111  document.demo.submit(); 112  }); 113             
114             $('#all').click(function(){ 115                 document.demo.action="MainServlet.action?Type=all"; 116  document.demo.submit(); 117  }); 118             
119             $('#update').click(function(){ 120                     $('input').removeAttr("disabled"); 121                     $('#div3').show(1500); 122  }); 123  }); 124     </script>
125   </head>
126   
127   <body>
128     <form name="demo" method="post">
129         <div style="margin-left: 1%; margin-top: 2%;" class="layui-btn-group">
130             <input type="button" id="select" value="查看" class="layui-btn" ></input>
131             <input type="button" id="update" value="编辑" class="layui-btn "></input>
132             <input type="button" id="cancel" value="注销" class="layui-btn"></input>
133             <input type="button" id="all" value="查看所有" class="layui-btn"></input>
134         </div>    
135         <hr />
136         <div id="div2" style="display:none">
137             <div class="layui-inline">
138                 <label class="layui-form-label">账号</label>
139                 <div class="layui-input-inline">
140                     <input name="account" id="account" class="layui-input" type="text" disabled />
141                 </div>
142             </div>
143         <hr />
144             <div class="layui-inline">
145                 <label class="layui-form-label">手机</label>
146                 <div class="layui-input-inline">
147                     <input name="phone" id="phone" class="layui-input" type="tel" disabled />
148                 </div>
149             </div>
150         <hr />
151             <div class="layui-inline">
152                 <label class="layui-form-label">邮箱</label>
153                 <div class="layui-input-inline">
154                     <input name="email" id="email" class="layui-input" type="email" disabled />
155                 </div>
156             </div>
157         <hr />
158             <div class="layui-inline">
159                 <label class="layui-form-label">身份证</label>
160                 <div class="layui-input-inline">
161                     <input name="ids" id="ids" class="layui-input" type="text" disabled />
162                 </div>
163             </div>
164         <hr />
165             <div class="layui-inline">
166                 <label class="layui-form-label">真实姓名</label>
167                 <div class="layui-input-inline">
168                     <input name="name" id="name" class="layui-input" type="text" disabled/>
169                 </div>
170             </div>
171         <hr />
172             <div class="layui-inline">
173                 <label class="layui-form-label">密码</label>
174                 <div class="layui-input-inline">
175                     <input name="password" id="password" class="layui-input" type="text" disabled/>
176                 </div>
177             </div>
178         <hr />
179             <div class="layui-inline">
180                 <label class="layui-form-label">性别</label>
181                 <div class="layui-input-inline">
182                     <input name="sex" id="sex" class="layui-input" type="text" disabled/>
183                 </div>
184             </div>
185         </div>
186     </form>
187     <div id="div3" style="margin-left: 7%;margin-top: 2%;display:none;">
188         <div style="margin-left: 2%;" class="layui-btn-group">
189             <input type="button" id="save" value="保存" class="layui-btn"></input>
190         </div>
191     </div>
192     <div class="score-student-list" id="score-student-list" style="display:none;margin-left: 1%;"></div>        
193   </body>
194 </html>

 

register.jsp:

 1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
 2 
 3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 4 <html>
 5   <head>
 6     
 7     <title>My JSP 'register.jsp' starting page</title>
 8     
 9     <meta http-equiv="pragma" content="no-cache">
 10     <meta http-equiv="cache-control" content="no-cache">
 11     <meta http-equiv="expires" content="0">    
 12     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 13     <meta http-equiv="description" content="This is my page">
 14     <link rel="stylesheet" href="layui/css/layui.css" media="all" />
 15     <script src="js/jquery.3.2.1.js"></script>
 16     <script src="layui/layui.js"></script>
 17     <script type="text/javascript">        
 18     layui.use('form', function() {  19         var form = layui.form;  20  form.render();  21  });  22     
 23  $(function(){  24         $('#register').click(function(){  25             var islen = ($('#password1').val().length >= 6 && $('#password1').val().length <= 12) && ($('#password2').val().length >= 6 && $('#password2').val().length <= 12);  26             var isID = $('#user_id').val().length > 0 && $('#user_id').val().length <= 18;  27             if (islen && isID) {  28                 if ($('#password1').val() == $('#password2').val()) {  29                     document.demo.action="RegisterServlet.action";  30  document.demo.submit();  31                     <%
 32                         if(request.getAttribute("is") != null){  33                             if((Integer)request.getAttribute("is") == 1){  34                                 response.setHeader("refresh", "1;URL=index.jsp");  35                             }else{  36                     %>
 37                                 alert("注册失败");  38                     <%
 39  }  40  }  41                     %>        
 42                 } else {  43                     alert('密码不一致!');  44  }  45             } else {  46                 if (!isID) {  47                     alert('请输入正确的身份证!');  48                 } else if(!islen){  49                     alert('密码长度不一致');  50                 }else{  51                     alert('请输入合法的信息!');  52  }  53  }  54  });  55  });  56     </script>
 57   </head>
 58   
 59   <body>
 60           <div style="margin-top: 5%;">
 61             <form name="demo" class="layui-form" method="post">
 62                 <div class="layui-form-item">
 63                     <label class="layui-form-label">账号</label>
 64                     <div class="layui-input-inline">
 65                         <input id="account" name="account" lay-verify="required" placeholder="请输入账号" class="layui-input" type="text">
 66                     </div>
 67                 </div>
 68 
 69                 <div class="layui-form-item">
 70                     <div class="layui-inline">
 71                         <label class="layui-form-label">手机</label>
 72                         <div class="layui-input-inline">
 73                             <input id="phone" name="phone" lay-verify="required|phone" class="layui-input" type="tel">
 74                         </div>
 75                     </div>
 76                     <div class="layui-inline">
 77                         <label class="layui-form-label">邮箱</label>
 78                         <div class="layui-input-inline">
 79                             <input id="email" name="email" lay-verify="email" class="layui-input" type="email">
 80                         </div>
 81                     </div>
 82                 </div>
 83                 <div class="layui-form-item">
 84                     <label class="layui-form-label">身份证</label>
 85                     <div class="layui-input-inline">
 86                         <input id="user_id" name="user_id" lay-verify="required" placeholder="请输入身份证" class="layui-input" type="text">
 87                     </div>
 88                 </div>
 89                 <div class="layui-form-item">
 90                     <label class="layui-form-label">真实姓名</label>
 91                     <div class="layui-input-inline">
 92                         <input id="user_name" name="user_name" lay-verify="required" placeholder="请输入真实姓名" class="layui-input" type="text">
 93                     </div>
 94                 </div>
 95 
 96                 <div class="layui-form-item">
 97                     <label class="layui-form-label">密码</label>
 98                     <div class="layui-input-inline">
 99                         <input id="password1" name="password1" lay-verify="pass" placeholder="请输入密码" class="layui-input" type="password">
100                     </div>
101                     <div class="layui-form-mid layui-word-aux">请填写6到12位密码</div>
102                 </div>
103                 <div class="layui-form-item">
104                     <label class="layui-form-label">确认密码</label>
105                     <div class="layui-input-inline">
106                         <input id="password2" name="password2" lay-verify="pass" placeholder="请输入密码" class="layui-input" type="password">
107                     </div>
108                     <div class="layui-form-mid layui-word-aux">请填写6到12位密码</div>
109                 </div>
110 
111                 <div class="layui-form-item">
112                     <label class="layui-form-label">性别</label>
113                     <div class="layui-input-block">
114                         <input name="sex" value="" title="" checked="" type="radio">
115                         <input name="sex" value="" title="" type="radio">
116                         <input name="sex" value="人妖" title="人妖" disabled="" type="radio">
117                     </div>
118                 </div>
119                 <div class="layui-form-item">
120                     <div class="layui-input-block">
121                         <input id='register' type="button" class="layui-btn" lay-filter="demo1" value="立即注册"></input>
122                         <input type="reset" class="layui-btn layui-btn-primary" value="重置"></input>
123                     </div>
124                 </div>
125             </form>
126         </div>          
127   </body>
128 </html>

web.xml:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
 3   <display-name></display-name>
 4   <servlet>
 5     <servlet-name>LoginServlet</servlet-name>
 6     <servlet-class>com.yuw.servlet.LoginServlet</servlet-class>
 7   </servlet>
 8   <servlet>
 9     <servlet-name>MainServlet</servlet-name>
10     <servlet-class>com.yuw.servlet.MainServlet</servlet-class>
11   </servlet>
12   <servlet>
13     <servlet-name>RegisterServlet</servlet-name>
14     <servlet-class>com.yuw.servlet.RegisterServlet</servlet-class>
15   </servlet>
16   <servlet-mapping>
17     <servlet-name>LoginServlet</servlet-name>
18     <url-pattern>/LoginServlet.action</url-pattern>
19   </servlet-mapping>
20   <servlet-mapping>
21     <servlet-name>MainServlet</servlet-name>
22     <url-pattern>/MainServlet.action</url-pattern>
23   </servlet-mapping>
24   <servlet-mapping>
25     <servlet-name>RegisterServlet</servlet-name>
26     <url-pattern>/RegisterServlet.action</url-pattern>
27   </servlet-mapping>
28   <welcome-file-list>
29     <welcome-file>index.jsp</welcome-file>
30   </welcome-file-list>
31 </web-app>

LoginDB.java:

 1 package com.yuw.accessDB;  2 
 3 import java.sql.Connection;  4 import java.sql.PreparedStatement;  5 import java.sql.ResultSet;  6 import java.sql.SQLException;  7 import java.util.List;  8 
 9 import com.yuw.dataAccess.SelectData; 10 import com.yuw.jdbc.example.JDBCDataBase; 11 import com.yuw.transfer.DataTransfer; 12 
13 
14 public class LoginDB implements SelectData{ 15 
16     private List<Object> listDataReceive = null; 17     private Connection connection = null; 18     private PreparedStatement preparedStatement = null; 19     private ResultSet resultSet = null; 20     
21     public LoginDB(){ 22         
23  } 24     /*
25  * @base 当前数据库连接 26  * @dataTransfer 当前数据库连接的数据 27      */
28     public LoginDB(DataTransfer<List<Object>> dataTransfer , JDBCDataBase base){ 29         this.connection = base.example(); 30         this.listDataReceive = dataTransfer.transfer(); 31  } 32 
33 
34     public int select(String sql) { 35         // TODO Auto-generated method stub
36         try { 37             preparedStatement = connection.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); 38             int index = 1; 39             for(Object object : listDataReceive){ 40                 preparedStatement.setString(index++, (String)object); 41                 System.out.println((String)object); 42  } 43             resultSet = preparedStatement.executeQuery(); 44  resultSet.last(); 45             if(resultSet.getRow() == 1){ 46                 return 1; 47  } 48         } catch (SQLException e) { 49             // TODO Auto-generated catch block
50  e.printStackTrace(); 51         }finally{ 52  close(); 53  } 54         return 0; 55  } 56     
57     public void close(){ 58         if(resultSet != null){ 59             try { 60  resultSet.close(); 61             } catch (SQLException e) { 62                 // TODO Auto-generated catch block
63  e.printStackTrace(); 64  } 65  } 66         if(preparedStatement != null){ 67             try { 68  preparedStatement.close(); 69             } catch (SQLException e) { 70                 // TODO Auto-generated catch block
71  e.printStackTrace(); 72  } 73  } 74         if(connection != null){ 75             try { 76  connection.close(); 77             } catch (SQLException e) { 78                 // TODO Auto-generated catch block
79  e.printStackTrace(); 80  } 81  } 82  } 83     public int selectAll(String sql) { 84         // TODO Auto-generated method stub
85         return 0; 86  } 87 }

MainDB.java:

 1 package com.yuw.accessDB;  2 
 3 import java.sql.Connection;  4 import java.sql.PreparedStatement;  5 import java.sql.ResultSet;  6 import java.sql.SQLException;  7 import java.util.ArrayList;  8 import java.util.Arrays;  9 import java.util.List;  10 
 11 import com.yuw.dataAccess.DeleteData;  12 import com.yuw.dataAccess.InsertData;  13 import com.yuw.dataAccess.SelectData;  14 import com.yuw.jdbc.example.JDBCDataBase;  15 import com.yuw.transfer.DataTransfer;  16 import com.yuw.transfer.DataTransferReport;  17 
 18 public class MainDB implements DataTransferReport<List<Object>>,SelectData,InsertData,DeleteData{  19     private List<Object> listDataReceive = null;  20     private List<Object> listDataSend = null;  21     private Connection connection = null;  22     private PreparedStatement preparedStatement = null;  23     private ResultSet resultSet = null;  24     
 25     public MainDB(){  26         
 27  }  28     /*
 29  * @base 当前数据库连接  30  * @dataTransfer 当前数据库连接的数据  31      */
 32     public MainDB(DataTransfer<List<Object>> dataTransfer , JDBCDataBase base){  33         this.connection = base.example();  34         this.listDataReceive = dataTransfer.transfer();  35  }  36     
 37     public List<Object> getListDataSend() {  38         return listDataSend;  39  }  40     public void setListDataSend(List<Object> listDataSend) {  41         this.listDataSend = listDataSend;  42  }  43     public int select(String sql) {  44         // TODO Auto-generated method stub
 45         try {  46             preparedStatement = connection.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);  47             int index = 1;  48             for(Object object : listDataReceive){  49                 preparedStatement.setString(index++, (String)object);  50  }  51             resultSet = preparedStatement.executeQuery();  52  resultSet.last();  53             if(resultSet.getRow() == 1){  54                 List<Object> list = new ArrayList<Object>();  55                 list.addAll(Arrays.asList(resultSet.getString("userId")  56                         ,resultSet.getString("userName")  57                         ,resultSet.getString("account")  58                         ,resultSet.getString("password")  59                         ,resultSet.getString("phone")  60                         ,resultSet.getString("email")  61                         ,resultSet.getString("sex")));  62  setListDataSend(list);  63                 return 1;  64  }  65             
 66             
 67         } catch (SQLException e) {  68             // TODO Auto-generated catch block
 69  e.printStackTrace();  70         }finally{  71             //close();
 72  }  73         
 74         return 0;  75  }  76     
 77     public List<Object> transfer() {  78         // TODO Auto-generated method stub
 79         return this.listDataSend;  80  }  81     
 82     public void close(){  83         if(resultSet != null){  84             try {  85  resultSet.close();  86             } catch (SQLException e) {  87                 // TODO Auto-generated catch block
 88  e.printStackTrace();  89  }  90  }  91         if(preparedStatement != null){  92             try {  93  preparedStatement.close();  94             } catch (SQLException e) {  95                 // TODO Auto-generated catch block
 96  e.printStackTrace();  97  }  98  }  99         if(connection != null){ 100             try { 101  connection.close(); 102             } catch (SQLException e) { 103                 // TODO Auto-generated catch block
104  e.printStackTrace(); 105  } 106  } 107  } 108     public int insert(String sql) { 109         int msg = 0; 110         try { 111             if(listDataReceive != null){ 112                 preparedStatement = connection.prepareStatement(sql); 113                 int index = 1; 114                 for(Object object : listDataReceive){ 115                     preparedStatement.setString(index++, (String)object); 116  } 117                 msg = preparedStatement.executeUpdate(); 118  } 119         } catch (SQLException e) { 120             // TODO Auto-generated catch block
121  e.printStackTrace(); 122         }finally{ 123  close(); 124  } 125         return msg; 126  } 127     
128     public int delete(String sql) { 129         int msg = 0; 130         try { 131             if(listDataReceive != null){ 132                 preparedStatement = connection.prepareStatement(sql); 133                 int index = 1; 134                 for(Object object : listDataReceive){ 135                     preparedStatement.setString(index++, (String)object); 136  } 137                 msg = preparedStatement.executeUpdate(); 138  } 139         } catch (SQLException e) { 140             // TODO Auto-generated catch block
141  e.printStackTrace(); 142         }finally{ 143  close(); 144  } 145         return msg; 146         
147  } 148     public int selectAll(String sql) { 149         // TODO Auto-generated method stub
150         List<Object> total = new ArrayList<Object>(); 151         List<Object> row = null; 152         try { 153             PreparedStatement preparedStatement = connection.prepareStatement(sql); 154             resultSet = preparedStatement.executeQuery(); 155             while (resultSet.next()) { 156                 if(row == null){ 157                     row = new ArrayList<Object>(); 158                     row.addAll(Arrays.asList(resultSet.getString("userId"), 159                             resultSet.getString("userName"), 160                             resultSet.getString("account"), 161                             resultSet.getString("phone"), 162                             resultSet.getString("email"), 163                             resultSet.getString("password"), 164                             resultSet.getString("sex"))); 165  total.addAll(row); 166  } 167                 row = null; 168  } 169  setListDataSend(total); 170             //if(listDataSend != null){
171                 return 1; 172             //}
173         } catch (SQLException e) { 174             // TODO Auto-generated catch block
175  e.printStackTrace(); 176  } 177         return 0; 178  } 179 }

 RegisterDB.java:

 1 package com.yuw.accessDB;  2 
 3 import java.sql.Connection;  4 import java.sql.PreparedStatement;  5 import java.sql.SQLException;  6 import java.util.List;  7 
 8 import com.yuw.dataAccess.InsertData;  9 import com.yuw.jdbc.example.JDBCDataBase; 10 import com.yuw.transfer.DataTransfer; 11 
12 public class RegisterDB implements InsertData { 13     
14     // 接收数据
15     private List<Object> listDataReceive = null; 16     private Connection connection = null; 17     private PreparedStatement preparedStatement = null; 18     
19     public RegisterDB(){ 20         
21  } 22     /*
23  * @base 当前数据库连接 24  * @dataTransfer 当前数据库连接的数据 25      */
26     public RegisterDB(DataTransfer<List<Object>> dataTransfer , JDBCDataBase base){ 27         this.connection = base.example(); 28         this.listDataReceive = dataTransfer.transfer(); 29  } 30     /*
31  * @see dataAccess.InsertData#insert(java.lang.String) 32      */
33     public int insert(String sql) { 34         int msg = 0; 35         try { 36             if(listDataReceive != null){ 37                 preparedStatement = connection.prepareStatement(sql); 38                 int index = 1; 39                 for(Object object : listDataReceive){ 40                     preparedStatement.setString(index++, (String)object); 41  } 42                 msg = preparedStatement.executeUpdate(); 43  } 44         } catch (SQLException e) { 45             // TODO Auto-generated catch block
46  e.printStackTrace(); 47         }finally{ 48  close(); 49  } 50         return msg; 51  } 52     /*
53  * 关闭 54      */
55     public void close(){ 56         if(preparedStatement != null){ 57             try { 58  preparedStatement.close(); 59             } catch (SQLException e) { 60                 // TODO Auto-generated catch block
61  e.printStackTrace(); 62  } 63  } 64         if(connection != null){ 65             try { 66  connection.close(); 67             } catch (SQLException e) { 68                 // TODO Auto-generated catch block
69  e.printStackTrace(); 70  } 71  } 72  } 73 }

 

AlterData.java:

1 package com.yuw.dataAccess; 2 
3 /*
4  * 修改数据 5  */
6 public interface AlterData 7 { 8     int alter(String sql); 9 }

DeleteData.java:

1 package com.yuw.dataAccess; 2 /*
3  * 删除数据 4  */
5 public interface DeleteData 6 { 7 
8    int delete(String sql); 9 }

InsertData.java:

1 package com.yuw.dataAccess; 2 
3 /*
4  * 插入数据 5  */
6 public interface InsertData{ 7 
8     int insert(String sql); 9 }

SelectData.java:

 1 package com.yuw.dataAccess;  2 /*
 3  * 查询数据  4  */
 5 public interface SelectData  6 {  7     
 8     int select(String sql);  9     
10     int selectAll(String sql); 11 }

JDBCDataBase.java:

 1 package com.yuw.jdbc.example;  2 
 3 import java.sql.Connection;  4 /**  5  * 数据库连接  6  */
 7 public interface JDBCDataBase{  8     
 9  Connection example(); 10 }

SQLserverJDBC.java:

 1 package com.yuw.jdbc.example;  2 
 3 import java.sql.Connection;  4 import java.sql.DriverManager;  5 /*
 6  * 连接 sql server 2012 数据库  7  */
 8 public class SQLserverJDBC implements JDBCDataBase{  9     private static final String DriverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; 10     private static final String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=testDB"; 11     private static final String UserName = "sa"; 12     private static final String UserCipher = "123456"; 13     /*
14  * 单例模式:整个应用只实例化JDBC一个 15      */
16     private SQLserverJDBC() { 17     
18  } 19     private static class LazyHolder { 20            private static final SQLserverJDBC sqlserverJDBC = new SQLserverJDBC(); 21  } 22     
23     public static final SQLserverJDBC getInstance() { 24            return LazyHolder.sqlserverJDBC; 25  } 26     public Connection example() { 27         Connection dataBase = null; 28         try{ 29  Class.forName(DriverName); 30             dataBase = DriverManager.getConnection(URL, UserName, UserCipher); 31         } catch (Exception e ){ 32             // TODO Auto-generated catch block
33             System.out.println("连接失败"); 34  e.printStackTrace(); 35  } 36         return dataBase; 37  } 38 
39 }

 

LoginServlet.java:

 1 package com.yuw.servlet;  2 
 3 import java.io.IOException;  4 import java.io.UnsupportedEncodingException;  5 import java.util.ArrayList;  6 import java.util.Arrays;  7 import java.util.List;  8 
 9 import javax.servlet.ServletException; 10 import javax.servlet.http.HttpServlet; 11 import javax.servlet.http.HttpServletRequest; 12 import javax.servlet.http.HttpServletResponse; 13 
14 import com.yuw.accessDB.LoginDB; 15 import com.yuw.dataAccess.SelectData; 16 import com.yuw.jdbc.example.SQLserverJDBC; 17 import com.yuw.transfer.DataTransfer; 18 
19 
20 public class LoginServlet extends HttpServlet implements DataTransfer<List<Object>>{ 21 
22     private static final long serialVersionUID = 1L; 23     // 发送数据
24     private List<Object> listDataSend = null; 25     
26     public List<Object> getListDataSend() { 27         return listDataSend; 28  } 29 
30     public void setListDataSend(List<Object> listDataSend) { 31         this.listDataSend = listDataSend; 32  } 33 
34     public void doPost(HttpServletRequest request, HttpServletResponse response) 35  throws ServletException, IOException { 36         response.setContentType("text/plain; charset=utf-8"); 37         
38         List<Object> data = new ArrayList<Object>(); 39         data.addAll(Arrays.asList(toCharacterEncoding(request.getParameter("account")), 40                 toCharacterEncoding(request.getParameter("passwords")))); 41  setListDataSend(data); 42         final String sql = "select * from user_Account where account = ? and password = ?;"; 43         int t = select(sql); 44         request.setAttribute("is",t); 45         request.setAttribute("ACCOUNT",request.getParameter("account")); 46         request.getRequestDispatcher("index.jsp").forward(request, response); 47 
48         
49  } 50     /*
51  * 查询 52      */
53     public int select(String sql){ 54         //正在发送数据信息
55         LoginDB loginDB = new LoginDB(this, SQLserverJDBC.getInstance()); 56         return selectUsersAccount(loginDB,sql); 57         
58  } 59     private int selectUsersAccount(SelectData selectData ,String sql){ 60         
61         return selectData.select(sql); 62         
63  } 64     public List<Object> transfer() { 65         // TODO Auto-generated method stub
66         return this.listDataSend; 67  } 68     /*
69  * 处理乱码 70      */
71     public String toCharacterEncoding(String str) throws UnsupportedEncodingException{ 72         
73         return new String(str.getBytes("iso-8859-1"),"utf-8"); 74         
75  } 76 
77 }

MainServlet.java:

 1 package com.yuw.servlet;  2 
 3 import java.io.IOException;  4 import java.io.UnsupportedEncodingException;  5 import java.util.ArrayList;  6 import java.util.Arrays;  7 import java.util.List;  8 
 9 import javax.servlet.ServletException;  10 import javax.servlet.http.HttpServlet;  11 import javax.servlet.http.HttpServletRequest;  12 import javax.servlet.http.HttpServletResponse;  13 
 14 import org.junit.Test;  15 
 16 import com.yuw.accessDB.MainDB;  17 import com.yuw.dataAccess.DeleteData;  18 import com.yuw.dataAccess.InsertData;  19 import com.yuw.dataAccess.SelectData;  20 import com.yuw.jdbc.example.SQLserverJDBC;  21 import com.yuw.transfer.DataTransfer;  22 import com.yuw.transfer.DataTransferReport;  23 
 24 public class MainServlet extends HttpServlet implements DataTransfer<List<Object>>{  25 
 26     private static final long serialVersionUID = 1L;  27     private static final int ONE = 1;  28     // 发送数据
 29     private List<Object> listDataSend = null;  30     // 接收数据
 31     private List<Object> listDataReceive = null;  32     private MainDB mainDB = null;  33     //前台标识
 34     private final String[] flag = new String[]{"userId","userName","account","passwords","phone","email","sex"};  35     static String le = "";  36     public List<Object> getListDataReceive() {  37         return listDataReceive;  38  }  39 
 40     public void setListDataReceive(DataTransferReport<List<Object>> dataTransferReport) {  41         this.listDataReceive = dataTransferReport.transfer();  42  }  43 
 44     public List<Object> getListDataSend() {  45         return listDataSend;  46  }  47 
 48 
 49     public void setListDataSend(List<Object> listDataSend) {  50         this.listDataSend = listDataSend;  51  }  52     
 53     public void doPost(HttpServletRequest request, HttpServletResponse response)  54  throws ServletException, IOException {  55 
 56         response.setContentType("text/plain; charset=utf-8");  57         List<Object> data = new ArrayList<Object>();  58         if("select".equals(request.getParameter("Type"))){  59             data.addAll(Arrays.asList(toCharacterEncoding(request.getParameter("accounts"))));  60  setListDataSend(data);  61             final String sql = "select users.*,user_Account.password from users,user_Account where users.account = user_Account.account and user_Account.account = ?;";  62             int index = 0;  63             if(select(sql) == ONE){  64                 for(Object object : listDataReceive){  65                     request.setAttribute(flag[index++], (String)object);  66  }  67                 request.setAttribute("isSelect", "1");  68                 request.getRequestDispatcher("main.jsp").forward(request, response);  69  }  70         }else if("saves".equals(request.getParameter("Type"))){  71             data.addAll(Arrays.asList(toCharacterEncoding(request.getParameter("account")),  72                     toCharacterEncoding(request.getParameter("account")),  73                     toCharacterEncoding(request.getParameter("account")),  74                     toCharacterEncoding(request.getParameter("password")),  75                     toCharacterEncoding(request.getParameter("ids")),  76                     toCharacterEncoding(request.getParameter("name")),  77                     toCharacterEncoding(request.getParameter("account")),  78                     toCharacterEncoding(request.getParameter("phone")),  79                     toCharacterEncoding(request.getParameter("email")),  80                     toCharacterEncoding(request.getParameter("sex"))));  81  setListDataSend(data);  82             final String sql = "begin tran saves "+
 83                        "delete users where account=?;"+
 84                        "delete user_Account where account=?;"+
 85                        "insert into user_Account values(?,?);"+
 86                        "insert into users values(?,?,?,?,?,?);"+
 87                        "commit tran saves";  88             if(insert(sql) == ONE){  89                 request.setAttribute("isInsert", "1");  90                 request.getRequestDispatcher("main.jsp").forward(request, response);  91  }  92         }else if("cancel".equals(request.getParameter("Type"))){  93             data.addAll(Arrays.asList(toCharacterEncoding(request.getParameter("accounts")),  94                     toCharacterEncoding(request.getParameter("accounts"))));  95  setListDataSend(data);  96             final String sql ="begin tran deletes "+ 
 97                         "delete users where account=?;"+
 98                        "delete user_Account where account=?;"+
 99                        "commit tran deletes"; 100             if(delete(sql) == ONE){ 101                 request.setAttribute("isDelete", "1"); 102                 request.getRequestDispatcher("main.jsp").forward(request, response); 103  } 104         }else if("all".equals(request.getParameter("Type"))){ 105             final String sql = "select users.*,user_Account.password from users, user_Account where users.account = user_Account.account;"; 106             if(selectAll(sql) == ONE){ 107                 request.setAttribute("isSelectAll", "1"); 108                 request.setAttribute("listAllData", listDataReceive); 109                 request.getRequestDispatcher("main.jsp").forward(request, response); 110  } 111  } 112  } 113  @Test 114     public void TestselectAll(){ 115         final String sql = "select * from users, user_Account where users.account = user_Account.account;"; 116         MainServlet mainServlet = new MainServlet(); 117         if(mainServlet.selectAll(sql) ==1){ 118             for(Object object : listDataReceive){ 119                 System.out.println(object); 120  } 121  } 122  } 123     public int selectAll(String sql){ 124         //正在发送数据信息
125         mainDB = new MainDB(this, SQLserverJDBC.getInstance()); 126         return selectAllUsersAccount(mainDB,sql); 127  } 128 
129     private int selectAllUsersAccount(SelectData selectData,String sql){ 130         int t = selectData.selectAll(sql); 131  setListDataReceive(mainDB); 132         return t; 133  } 134     public int delete(String sql){ 135         //正在发送数据信息
136         mainDB = new MainDB(this, SQLserverJDBC.getInstance()); 137         return deleteUsersAccount(mainDB,sql); 138  } 139     
140     private int deleteUsersAccount(DeleteData deleteData,String sql){ 141         return deleteData.delete(sql); 142  } 143     
144     public int insert(String sql){ 145         //正在发送数据信息
146         mainDB = new MainDB(this, SQLserverJDBC.getInstance()); 147         return insertUsersAccount(mainDB,sql); 148  } 149     
150     private int insertUsersAccount(InsertData insertData,String sql){ 151         return insertData.insert(sql); 152  } 153     
154     public int select(String sql){ 155         //正在发送数据信息
156         mainDB = new MainDB(this, SQLserverJDBC.getInstance()); 157         return selectUsersAccount(mainDB,sql); 158         
159  } 160     
161     private int selectUsersAccount(SelectData selectData ,String sql){ 162         int t = selectData.select(sql); 163  setListDataReceive(mainDB); 164         return t; 165         
166  } 167     
168     public List<Object> transfer() { 169         // TODO Auto-generated method stub
170         return this.listDataSend; 171  } 172     
173     public String toCharacterEncoding(String str) throws UnsupportedEncodingException{ 174         return new String(str.getBytes("iso-8859-1"),"utf-8"); 175         
176  } 177 }

RegisterServlet.java:

 1 package com.yuw.servlet;  2 
 3 import java.io.IOException;  4 import java.io.UnsupportedEncodingException;  5 import java.util.ArrayList;  6 import java.util.Arrays;  7 import java.util.List;  8 
 9 import javax.servlet.ServletException; 10 import javax.servlet.http.HttpServlet; 11 import javax.servlet.http.HttpServletRequest; 12 import javax.servlet.http.HttpServletResponse; 13 
14 import com.yuw.accessDB.RegisterDB; 15 import com.yuw.dataAccess.InsertData; 16 import com.yuw.jdbc.example.SQLserverJDBC; 17 import com.yuw.transfer.DataTransfer; 18 
19 
20 public class RegisterServlet extends HttpServlet implements DataTransfer<List<Object>>{ 21 
22     private static final long serialVersionUID = 1L; 23     // 发送数据
24     private List<Object> listDataSend = null; 25 
26     public List<Object> getListDataSend() { 27         return listDataSend; 28  } 29 
30 
31     public void setListDataSend(List<Object> listDataSend) { 32         this.listDataSend = listDataSend; 33  } 34 
35     
36     public void doPost(HttpServletRequest request, HttpServletResponse response) 37  throws ServletException, IOException { 38 
39         response.setContentType("text/plain; charset=utf-8"); 40         List<Object> data = new ArrayList<Object>(); 41         data.addAll(Arrays.asList(toCharacterEncoding(request.getParameter("account")), 42                 toCharacterEncoding(request.getParameter("password1")), 43                 toCharacterEncoding(request.getParameter("user_id")), 44                 toCharacterEncoding(request.getParameter("user_name")), 45                 toCharacterEncoding(request.getParameter("account")), 46                 toCharacterEncoding(request.getParameter("phone")), 47                 toCharacterEncoding(request.getParameter("email")), 48                 toCharacterEncoding(request.getParameter("sex")))); 49         
50  setListDataSend(data); 51         final String sql = "begin tran insets "+
52                             "insert into user_Account values(?,?);"+
53                             "insert into users values(?,?,?,?,?,?);"+
54                             "commit tran insets"; 55         int t = insert(sql); 56         request.setAttribute("is",t); 57         request.getRequestDispatcher("register.jsp").forward(request, response); 58  } 59     /*
60  * 插入 61      */
62     public int insert(String sql) { 63         //正在发送数据信息
64         RegisterDB registerDB = new RegisterDB(this, SQLserverJDBC.getInstance()); 65         return insertUser(registerDB,sql); 66  } 67     /*
68  * 插入 69      */
70     private int insertUser(InsertData insertData , String sql){ 71         
72         return insertData.insert(sql); 73         
74  } 75     
76     public String toCharacterEncoding(String str) throws UnsupportedEncodingException{ 77         return new String(str.getBytes("iso-8859-1"),"utf-8"); 78         
79  } 80 
81     public List<Object> transfer() { 82         // TODO Auto-generated method stub
83         return this.listDataSend; 84  } 85 }

DataTransfer.java:

1 package com.yuw.transfer; 2 
3 public interface DataTransfer<T>{ 4     /*
5  * 数据集通讯 6  * Selvlet与DB进行数据交互的中间件 7      */
8  T transfer(); 9 }

DataTransferReport.java:

 1 package com.yuw.transfer;  2 
 3 public interface DataTransferReport<T>
 4 {  5 
 6     /*
 7  * 数据集通讯(回送)  8  * DB与Servlet进行数据交互的中间件  9      */
10  T transfer(); 11     
12 }


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM