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 }
转载于:https://www.cnblogs.com/YuWeiXiF/p/8385363.html
jsp + servlet 实现简单的增、删、改、查相关推荐
- 表单的增 删 改 查
django单表操作 增 删 改 查 一.实现:增.删.改.查 1.获取所有数据显示在页面上 model.Classes.object.all(),拿到数据后,渲染给前端;前端通过for循环的方式,取 ...
- properties(map)增.删.改.查.遍历
import java.util.Map; import java.util.Properties; import java.util.Set;/*** properties(map)增.删.改.查. ...
- python学生姓名添加删除_python-函数-实现学生管理系统,完成对学员的增,删,改,查和退出学生管理系统。...
实现学生管理系统,完成对学员的增,删,改,查和退出学生管理系统. 要求1:使用一个list用于保存学生的姓名. 要求2:输入0显示所有学员信息,1代表增加,2代表删除,3代表修改,4代表查询,exit ...
- PySpark︱DataFrame操作指南:增/删/改/查/合并/统计与数据处理
笔者最近需要使用pyspark进行数据整理,于是乎给自己整理一份使用指南.pyspark.dataframe跟pandas的差别还是挺大的. 文章目录 1.-------- 查 -------- -- ...
- 简单的php数据库操作类代码(增,删,改,查)
数据库操纵基本流程为: 1.连接数据库服务器 2.选择数据库 3.执行SQL语句 4.处理结果集 5.打印操作信息 其中用到的相关函数有 •resource mysql_connect ( [stri ...
- pyRedis - 操作指南:增/删/改/查、管道与发布订阅功能
文章目录 1 redis docker 部署与安装 2 py - redis的使用 2.1 redis的连接 2.2 常规属性查看 2.2.2 关于删除 2.3 STRING 字符串的操作 2.4 H ...
- list 增 删 改 查 及 公共方法
1 # 热身题目:增加名字,并且按q(不论大小写)退出程序 2 li = ['taibai','alex','wusir','egon','女神'] 3 while 1: 4 username = i ...
- Python 操作 Elasticsearch 实现 增 删 改 查
Github 地址:https://github.com/elastic/elasticsearch-py/blob/master/docs/index.rst 官网地址:https://elasti ...
- Linux技术--mysql数据库增-删-改-查
# mysql 数据库 ## 数据库的操作 ### 五个单位 * 数据库服务器 Linux或者 windows * 数据库 * 数据表 * 数据字段 * 数据行 ### 连接数据库 ``` 1 ...
最新文章
- pytorch中网络loss传播和参数更新理解
- AutoFac在项目中的应用
- 中国非动物胶市场来产销需求及发展潜力研究报告2022版
- 【Android笔记】MediaPlayer基本使用方式
- windows 包管理器scoop的使用
- 江湖急诏令:腾讯数据库王者挑战赛赏金万两募英豪!
- MIP技术进展月报第2期: 数据绑定,异步脚本加速
- respondsToSelector的相关使用
- Java的重写equals但不重写hashCode方法的影响
- Python天天学_03_基础三
- 分享一些使用电脑的小技巧
- selenium爬取裁判文书网
- 你是探索者,还是归客?用大数据说话
- dfuse——最顺畅的区块链 API 现已接入 Worbli
- python实现图片rgb通道分离
- NonlinearFactorGraph.h/NonlinearFactorGraph.cpp
- 改造Android手机为,便携式linux服务器,跑tomcat
- MPLAB 创建新项目
- STM32 OLED显示屏--SPI通信知识汇总
- 统计学 回归分析( Regression Analysis)