[聚合文章] 移动App,AJAX异步请求,实现简单的增、删、改、查

JavaScript 2017-12-20 15 阅读

用ajax发异步请求时,要注意url。“AppServer”为后台项目名,“LoginServlet.action”为web.xml中的<url-pattern></url-pattern>标签中的内容。

前台代码如下(核心代码):

index.html:

 1             $(function() { 2                 $('#login').click(function() { 3                     var account = $("#account").val(); 4                     var passwords = $('#passwords').val(); 5                     $.ajax({ 6                         url: "http://localhost:8080/AppServer/LoginServlet.action?ajaxType=jsonp", 7                         dataType: "jsonp", 8                         jsonpCallback: "jsonpCallback", 9                         jsonp: "callback",10                         data: {11                             account: account,12                             passwords: passwords,13                         },14                         success: function(server) {15                             if (server.is) {16                                 alert("登录成功");17                                 $(location).attr('href', 'main.html?account=' + account);18                             } else {19                                 alert("登录失败:" + server.err);20                             }21                         },22                         error: function(server) {23                             alert("连接服务器失败");24                         },25                     });26                 });27                 $('#register').click(function() {28                     $(location).attr('href', 'register.html');29                 });30             })

register.html:

 1             $(function() { 2                 $('#register').click(function() { 3                     var islen = ($('#password1').val().length >= 6 && $('#password1').val().length <= 12) && ($('#password2').val().length >= 6 && $('#password2').val().length <= 12); 4                     var isID = $('#user_id').val().length > 0 && $('#user_id').val().length <= 18; 5                     if (islen && isID) { 6                         if ($('#password1').val() == $('#password2').val()) { 7                             $.ajax({ 8                                 type: "post", 9                                 url: "http://localhost:8080/AppServer/RegisterServlet.action?ajaxType=jsonp",10                                 dataType: "jsonp",11                                 jsonpCallback: "jsonpCallback",12                                 jsonp: "callback",13                                 data: {14                                     account: $('#account').val(),15                                     passwords: $('#password1').val(),16                                     phone: $('#phone').val(),17                                     email: $('#email').val(),18                                     userId: $('#user_id').val(),19                                     userName: $('#user_name').val(),20                                     sex: $('input:radio:checked').val(),21                                 },22                                 success: function(server) {23                                     if (server.is) {24                                         alert("注册成功");25                                         $(location).attr('href', 'index.html');26                                     } else {27                                         alert("注册失败");28                                     }29                                 },30                                 error: function(server) {31                                     alert("连接服务器失败");32                                 },33                             });34                         } else {35                             alert('密码不一致!');36                         }37                     } else {38                         if (!isID) {39                             alert('请输入正确的身份证!');40                         } else if (!islen) {41                             alert('密码长度不一致');42                         } else {43                             alert('请输入合法的信息!');44                         }45                     }46                 });47             })

main.html:

  1             $(function() {  2                 var loc = location.href;  3                 var n1 = loc.length; //地址的总长度  4                 var n2 = loc.indexOf("="); //取得=号的位置  5                 var accounts = decodeURI(loc.substr(n2 + 1, n1 - n2));  6                 $('#select').click(function() {  7                     $('#div2').show(1500);  8                     $('#div3').hide(1500);  9                     $.ajax({                 10                         url: "http://localhost:8080/AppServer/MainServlet.action?ajaxType=jsonp&Type=select", 11                         dataType: "jsonp", 12                         jsonpCallback: "jsonpCallback", 13                         jsonp: "callback", 14                         data: { 15                             account: accounts, 16                         }, 17                         success: function(server) { 18                             if (server.is) { 19                                 $('#account').val(server.account); 20                                 $('#phone').val(server.phone); 21                                 $('#email').val(server.email); 22                                 $('#ids').val(server.userId); 23                                 $('#name').val(server.userName); 24                                 $('#password').val(server.passwords); 25                                 $('#sex').val(server.sex); 26                             } else { 27                                 alert("查看失败!"); 28                             } 29                         }, 30                         error: function(server) { 31                             alert("连接服务器失败!"); 32                         }, 33                     }); 34                 }); 35                 $('#save').click(function() { 36                     var islen = $('#password').val().length >= 6 && $('#password').val().length <= 12; 37                     var isID = $('#ids').val().length > 0 && $('#ids').val().length <= 18; 38                     if (islen && isID) { 39                         $.ajax({ 40                             async: true, 41                             type: "post", 42                             url: "http://localhost:8080/AppServer/MainServlet.action?ajaxType=jsonp&Type=save", 43                             dataType: "jsonp", 44                             jsonpCallback: "jsonpCallback", 45                             jsonp: "callback", 46                             data: { 47                                 account: $('#account').val(), 48                                 passwords: $('#password').val(), 49                                 phone: $('#phone').val(), 50                                 email: $('#email').val(), 51                                 userId: $('#ids').val(), 52                                 userName: $('#name').val(), 53                                 sex: $('#sex').val(), 54                             }, 55                             success: function(server) { 56                                 if (server.is) { 57                                     alert("修改成功!"); 58                                     $('#div2').hide(1500); 59                                 } else { 60                                     alert("修改失败!"); 61                                 } 62                             }, 63                             error: function(server) { 64                                 alert("连接服务器失败!"); 65                             }, 66                         }); 67                     } else { 68                         if (!isID) { 69                             alert('请输入正确的身份证!'); 70                         } else if (!islen) { 71                             alert('密码长度不一致'); 72                         } else { 73                             alert('请输入合法的信息!'); 74                         } 75                     } 76                 }); 77                 $('#cancel').click(function() { 78                     $.ajax({ 79                         url: "http://localhost:8080/AppServer/MainServlet.action?ajaxType=jsonp&Type=cancel", 80                         dataType: "jsonp", 81                         jsonpCallback: "jsonpCallback", 82                         jsonp: "callback", 83                         data: { 84                             account: accounts, 85                         }, 86                         success: function(server) { 87                             if (server.is) { 88                                 alert("注销成功!"); 89                                 $(location).attr('href', 'index.html'); 90                             } else { 91                                 alert("注销失败!"); 92                             } 93                         }, 94                         error: function(server) { 95                             alert("连接服务器失败!"); 96                         }, 97                     }); 98                 }); 99                 $('#all').click(function() {100                     $('#div3').show(1500);101                     $('#div2').hide(1500);102                     $.ajax({103                         url: "http://localhost:8080/AppServer/MainServlet.action?ajaxType=jsonp&Type=all",104                         dataType: "jsonp",105                         jsonpCallback: "jsonpCallback",106                         jsonp: "callback",107                         success: function(server) {108                             if (server.is) {109                                 alert("查看成功!");110                                 var arrData = [];111                                 var arr = null;112                                 for (i = 0; i < server.data.length; i++) {113                                     if (arr == null) {114                                         arr = new Array;115                                     }116                                     arr.push(server.data[i].userId);117                                     arr.push(server.data[i].userName);118                                     arr.push(server.data[i].account);119                                     arr.push(server.data[i].phone);120                                     arr.push(server.data[i].email);121                                     arr.push(server.data[i].passwords);122                                     arr.push(server.data[i].sex);123                                     arrData.push(arr);124                                     arr = null;125                                 }126                                 var td = "";127                                 var table = "";128                                 if(arrData != null){                                    129                                     for(var i=0 ; i<arrData.length ; i++){130                                         var tr = "<tr>";131                                         for(var j=0 ; j<arrData[i].length; j++){132                                             td += '<td>' + arrData[i][j] + '</td>';133                                         }134                                         var tr2 = "</tr>";135                                         table += (tr + td + tr2);136                                         td = "";137                                     }138                                     $('#bodys').html(table);139                                 }140                             } else {141                                 alert("查看失败!");142                             }143                         },144                         error: function(server) {145                             alert("连接服务器失败!");146                         },147                     });148                 });149             })

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>RegisterServlet</servlet-name>10     <servlet-class>com.yuw.servlet.RegisterServlet</servlet-class>11   </servlet>12   <servlet>13     <servlet-name>MainServlet</servlet-name>14     <servlet-class>com.yuw.servlet.MainServlet</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>RegisterServlet</servlet-name>22     <url-pattern>/RegisterServlet.action</url-pattern>23   </servlet-mapping>24   <servlet-mapping>25     <servlet-name>MainServlet</servlet-name>26     <url-pattern>/MainServlet.action</url-pattern>27   </servlet-mapping>28 </web-app>

 后台代码:

项目结构:

AccessData.java(与数据库交互)

  1 package com.yuw.jdbc;  2   3 import java.io.IOException;  4 import java.io.PrintWriter;  5 import java.io.UnsupportedEncodingException;  6 import java.sql.Connection;  7 import java.sql.PreparedStatement;  8 import java.sql.ResultSet;  9 import java.sql.SQLException; 10 import java.util.List; 11  12 import javax.servlet.http.HttpServletRequest; 13 import javax.servlet.http.HttpServletResponse; 14  15 import com.yuw.servlet.example.JDBCDataBase; 16 import com.yuw.transfer.DataTransfer; 17  18 /** 19  *  20  * @author Yuw 21  * @data 2017-12-20 22  */ 23 public abstract class AccessData { 24     public static final int ONE = 1; 25     protected Connection connection = null; 26     protected PreparedStatement preparedStatement = null; 27     protected ResultSet resultSet = null; 28     // 接收数据 29     protected List<Object> listDataReceive = null; 30     public AccessData() { 31  32     } 33     /* 34      * @dataBase 数据库连接 35      * @dataTransfer 获得每次连接的数据信息 36      */ 37     public void connectionJDBC(JDBCDataBase dataBase,DataTransfer<List<Object>> dataTransfer) { 38         if(this.connection == null){ 39             this.connection = dataBase.example(); 40             this.listDataReceive = dataTransfer.transfer(); 41         } 42     } 43     /* 44      * 删除 45      */ 46     public int deleteData(String sql){ 47         int msg = 0; 48         try { 49             if(listDataReceive != null){ 50                 preparedStatement = connection.prepareStatement(sql); 51                 int index = 1; 52                 for(Object object : listDataReceive){ 53                     preparedStatement.setString(index++, (String)object); 54                 } 55                 msg = preparedStatement.executeUpdate(); 56             } 57         } catch (SQLException e) { 58             // TODO Auto-generated catch block 59             e.printStackTrace(); 60         }finally{ 61             close(); 62         } 63         return msg; 64     } 65     /* 66      * 插入 67      */ 68     public int insertData(String sql){ 69         int msg = 0; 70         try { 71             if(listDataReceive != null){ 72                 preparedStatement = connection.prepareStatement(sql); 73                 int index = 1; 74                 for(Object object : listDataReceive){ 75                     preparedStatement.setString(index++, (String)object); 76                 } 77                 msg = preparedStatement.executeUpdate(); 78             } 79         } catch (SQLException e) { 80             // TODO Auto-generated catch block 81             e.printStackTrace(); 82         }finally{ 83             close(); 84         } 85         return msg; 86          87     } 88     /* 89      * 查询 90      */ 91     public int selectData(String sql){ 92         PreparedStatement preparedStatement = setPreparedStatement(sql); 93         try { 94             if(listDataReceive != null){ 95                 int index = 1; 96                 for(Object object : listDataReceive){ 97                     preparedStatement.setString(index++, (String)object);                 98                     System.out.println((String)object);                 99                 }100                 resultSet = preparedStatement.executeQuery();101                 return returnONE(resultSet);            102             }103             104         } catch (SQLException e) {105             // TODO Auto-generated catch block106             e.printStackTrace();107         }finally{108             close();109         }110         return 0;111         112     }113     /*114      * 判断结果集是否只有一行115      */116     public int returnONE(ResultSet resultSet){117         try {118             resultSet.last();119             if(resultSet.getRow() == ONE){120                 return ONE;121             }122         } catch (SQLException e) {123             // TODO Auto-generated catch block124             e.printStackTrace();125         }126         return 0;127         128     }129     130     public PreparedStatement setPreparedStatement(String sql){131         try {132             if(this.preparedStatement == null){133                 this.preparedStatement = connection.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);134             }135         } catch (SQLException e) {136             // TODO Auto-generated catch block137             e.printStackTrace();138         }139         return preparedStatement;140         141     }142     /*143      * 处理乱码144      */145     public String toCharacterEncoding(String str) throws UnsupportedEncodingException{146         if(str == null){147             System.out.println("请传参");148         }149         return new String(str.getBytes("iso-8859-1"),"utf-8");150         151     }152     /*153      * 关闭连接154      */155     public void close(){156         if(preparedStatement != null){157             try {158                 preparedStatement.close();159             } catch (SQLException e) {160                 // TODO Auto-generated catch block161                 e.printStackTrace();162             }163         }164         if(connection != null){165             try {166                 connection.close();167             } catch (SQLException e) {168                 // TODO Auto-generated catch block169                 e.printStackTrace();170             }171         }172     }173     /*174      * 与前台交互175      */176     public void WriteMsg(int msg,int t,HttpServletRequest request,HttpServletResponse response){177         try {178             if(t == msg){179                 String jsonp = request.getParameter("callback");180                 PrintWriter out =  response.getWriter();181                 out.write(jsonp+"({\"is\":true})");182             }else{183                 String jsonp = request.getParameter("callback");184                 PrintWriter out =  response.getWriter();185                 out.write(jsonp+"({\"is\":false,\"err\":"+"\"账号或密码错误!\""+"})");186             }187         } catch (IOException e) {188             // TODO Auto-generated catch block189             e.printStackTrace();190         }191     }192 193 }

 

 LoginServlet.java(登录)

 1 package com.yuw.servlet; 2  3 import java.io.IOException; 4 import java.util.ArrayList; 5 import java.util.Arrays; 6 import java.util.List; 7  8 import javax.servlet.ServletException; 9 import javax.servlet.http.HttpServlet;10 import javax.servlet.http.HttpServletRequest;11 import javax.servlet.http.HttpServletResponse;12 13 import com.yuw.jdbc.AccessData;14 import com.yuw.servlet.example.SQLserverJDBC;15 import com.yuw.transfer.DataTransfer;16 17 /**18  * @author Yuw19  * @data 2017-12-2020  * 21  */22 public class LoginServlet extends HttpServlet implements23         DataTransfer<List<Object>> {24 25     private static final long serialVersionUID = 1L;26     // 数据传送27     private List<Object> listDataSend = null;28 29     public List<Object> getListDataSend() {30         return listDataSend;31     }32 33     public void setListDataSend(List<Object> listDataSend) {34         this.listDataSend = listDataSend;35     }36 37     public void doGet(HttpServletRequest request, HttpServletResponse response)38             throws ServletException, IOException {39 40         doPost(request, response);41     }42 43     public void doPost(HttpServletRequest request, HttpServletResponse response)44             throws ServletException, IOException {45         response.setContentType("text/plain; charset=utf-8");46 47         ActionListen actionListen = new ActionListen();48         List<Object> list = new ArrayList<Object>();49         list.addAll(Arrays.asList(50                 actionListen.toCharacterEncoding(request.getParameter("account")),51                 actionListen.toCharacterEncoding(request.getParameter("passwords"))));52         setListDataSend(list);53         // 发起数据库连接54         actionListen.connectionJDBC(SQLserverJDBC.getInstance(), this);55         final String sql = "select * from user_Account where account = ? and password = ?";56         // 与前台交互57         actionListen.WriteMsg(ActionListen.ONE,actionListen.selectData(sql), request, response);58         59     }60     /*61      * 监听类62      */63     private class ActionListen extends AccessData {64 65         public ActionListen() {66 67         }68 69     }70 71     public List<Object> transfer() {72         // TODO Auto-generated method stub73         return this.listDataSend;74     }75 76 }

 

 

MainServlet.java(主要功能)

  1 package com.yuw.servlet;  2   3 import java.io.IOException;  4 import java.io.PrintWriter;  5 import java.sql.PreparedStatement;  6 import java.sql.SQLException;  7 import java.util.ArrayList;  8 import java.util.Arrays;  9 import java.util.List; 10  11 import javax.servlet.ServletException; 12 import javax.servlet.http.HttpServlet; 13 import javax.servlet.http.HttpServletRequest; 14 import javax.servlet.http.HttpServletResponse; 15  16 import org.junit.Test; 17  18 import com.yuw.jdbc.AccessData; 19 import com.yuw.servlet.example.SQLserverJDBC; 20 import com.yuw.transfer.DataTransfer; 21 import com.yuw.transfer.DataTransferReport; 22 /** 23  * @author Yuw  24  * @data 2017-12-21  25  *  26  */ 27 public class MainServlet extends HttpServlet implements DataTransfer<List<Object>>{ 28      29     private static final long serialVersionUID = 1L; 30     //数据传送 31     private List<Object> listDataSend = null; 32     //数据接收 33     private List<Object> listDataReceive = null; 34      35     public MainServlet(){ 36          37     } 38      39     public List<Object> getListDataReceive() { 40         return listDataReceive; 41     } 42  43     public void setListDataReceive(DataTransferReport<List<Object>> dataTransferReport) { 44         this.listDataReceive = dataTransferReport.transfer(); 45     } 46  47     public List<Object> getListDataSend() { 48         return listDataSend; 49     } 50  51     public void setListDataSend(List<Object> listDataSend) { 52         this.listDataSend = listDataSend; 53     } 54  55     public void doGet(HttpServletRequest request, HttpServletResponse response) 56             throws ServletException, IOException { 57          58         doPost(request, response); 59     } 60  61     public void doPost(HttpServletRequest request, HttpServletResponse response) 62             throws ServletException, IOException { 63         response.setContentType("text/plain; charset=utf-8"); 64         ActionListen actionListen = new ActionListen(); 65         List<Object> list = new ArrayList<Object>(); 66         // 查看个人信息 67         if("select".equals(request.getParameter("Type"))){ 68             System.out.println(request.getParameter("account")); 69             list.add(actionListen.toCharacterEncoding(request.getParameter("account"))); 70             setListDataSend(list); 71             actionListen.connectionJDBC(SQLserverJDBC.getInstance(), this); 72             final String sql = "select users.*,user_Account.password from users,user_Account where users.account = user_Account.account and user_Account.account = ?;"; 73             int t = actionListen.selectData(sql); 74             setListDataReceive(actionListen); 75             actionListen.WriteMsg(ActionListen.ONE,t,request,response,listDataReceive); 76         }else if("save".equals(request.getParameter("Type"))){ // 保存 77             list.addAll(Arrays.asList(actionListen.toCharacterEncoding(request.getParameter("account")), 78                     actionListen.toCharacterEncoding(request.getParameter("account")), 79                     actionListen.toCharacterEncoding(request.getParameter("account")), 80                     actionListen.toCharacterEncoding(request.getParameter("passwords")), 81                     actionListen.toCharacterEncoding(request.getParameter("userId")),                 82                     actionListen.toCharacterEncoding(request.getParameter("userName")), 83                     actionListen.toCharacterEncoding(request.getParameter("account")), 84                     actionListen.toCharacterEncoding(request.getParameter("phone")), 85                     actionListen.toCharacterEncoding(request.getParameter("email")),                                 86                     actionListen.toCharacterEncoding(request.getParameter("sex")))); 87             setListDataSend(list); 88             actionListen.connectionJDBC(SQLserverJDBC.getInstance(), this); 89             final String sql = "begin tran saves "+ 90                                "delete users where account=?;"+ 91                                "delete user_Account where account=?;"+ 92                                "insert into user_Account values(?,?);"+ 93                                "insert into users values(?,?,?,?,?,?);"+ 94                                "commit tran saves"; 95             actionListen.WriteMsg(ActionListen.ONE,actionListen.insertData(sql), request, response); 96         }else if("cancel".equals(request.getParameter("Type"))){ // 注销 97             list.addAll(Arrays.asList(actionListen.toCharacterEncoding(request.getParameter("account")), 98                     actionListen.toCharacterEncoding(request.getParameter("account")))); 99             setListDataSend(list);100             actionListen.connectionJDBC(SQLserverJDBC.getInstance(), this);101             final String sql = "begin tran deletes "+ 102                         "delete users where account=?;"+103                        "delete user_Account where account=?;"+104                        "commit tran deletes";105             actionListen.WriteMsg(ActionListen.ONE,actionListen.deleteData(sql), request, response);106         }else if("all".equals(request.getParameter("Type"))){ // 查看所有107             actionListen.connectionJDBC(SQLserverJDBC.getInstance(), this);108             final String sql = "select users.*,user_Account.password from users, user_Account where users.account = user_Account.account;";109             int t = actionListen.selectAllData(sql);110             setListDataReceive(actionListen);111             if(t == 1){112                 // 拼接JSON数据113                 int index = 0;114                 String str = "";115                 String str1 = "";116                 String str2 = "";117                 String str3 = "},";118                 for(int i=0 ; i<listDataReceive.size() ; i++){119                     120                     if(index <= 6){121                         for(int j=0 ; j<1 ; j++){122                             str2 += "\"" + actionListen.flag[index] + "\"" + ":" + "\"" + listDataReceive.get(i) + "\"" +",";                        123                         }124                         if(index++ == 6){125                             str1 = "{";126                             index = 0;127                             str += (str1+str2+str3);128                             str2 = "";                        129                         }                        130                     }                                                131                 }132                 System.out.println(str);133                 String jsonp = request.getParameter("callback");134                 PrintWriter out =  response.getWriter();135                 out.write(jsonp+"({\"is\":true" + "," + "\"data\"" + ":" + "[" + str + "]" + "})");136                 137             }138         }139         140     }141 142     /*143      * 监听类144      */145     private class ActionListen extends AccessData implements DataTransferReport<List<Object>>{146         //发送数据147         private List<Object> listDataSend = null;148         // 前台标志149         private final String[] flag = new String[]{"userId","userName","account","phone","email","passwords","sex"};        150         @SuppressWarnings("unused")151         public List<Object> getListDataSend() {152             return listDataSend;153         }154 155         public void setListDataSend(List<Object> listDataSend) {156             this.listDataSend = listDataSend;157         }158 159         public ActionListen() {160 161         }162         public int selectAllData(String sql){163             List<Object> total = new ArrayList<Object>();164             List<Object> row = null;165             try {166                 PreparedStatement preparedStatement = setPreparedStatement(sql);167                 resultSet = preparedStatement.executeQuery();168                 while (resultSet.next()) {169                     if(row == null){170                         row = new ArrayList<Object>();171                         row.addAll(Arrays.asList(resultSet.getString("userId"),172                                 resultSet.getString("userName"),173                                 resultSet.getString("account"),174                                 resultSet.getString("phone"),175                                 resultSet.getString("email"),176                                 resultSet.getString("password"),177                                 resultSet.getString("sex")));178                         total.addAll(row);179                     }180                     row = null;                181                 }182                 setListDataSend(total);183                 //if(listDataSend != null){184                     return 1;185                 //}186             } catch (SQLException e) {187                 // TODO Auto-generated catch block188                 e.printStackTrace();189             }190             return 0;191             192         }193         /*194          * 与前台交互195          */196         public void WriteMsg(int msg, int t, HttpServletRequest request,197                 HttpServletResponse response,List<Object> list) {198             String data = "";199             int index = 0;200             try {201                 if(t == msg){202                     String jsonp = request.getParameter("callback");203                     PrintWriter out =  response.getWriter();204                     for(Object object : list){205                         data += "," + "\"" + flag[index++] + "\"" + ":" + "\"" + (String)object + "\"";206                     }207                     System.out.println("DATA:"+data);208                     out.write(jsonp+"({\"is\":true" + data + "})");209                 }else{210                     String jsonp = request.getParameter("callback");211                     PrintWriter out =  response.getWriter();212                     out.write(jsonp+"({\"is\":false,\"err\":"+"\"账号或密码错误!\""+"})");213                 }214             } catch (IOException e) {215                 // TODO Auto-generated catch block216                 e.printStackTrace();217             }218         }219         /*220          * 查询221          * @see com.yuanwei.jdbc.AccessData#selectData(java.lang.String)222          */223         @Override224         public int selectData(String sql) {225             PreparedStatement preparedStatement = setPreparedStatement(sql);226             try {227                 if(super.listDataReceive != null){228                     int index = 1;229                     for(Object object : super.listDataReceive){230                         preparedStatement.setString(index++, (String)object);                231                         System.out.println((String)object);                232                     }233                     resultSet = preparedStatement.executeQuery();234                     while(resultSet.next()){235                         List<Object> list = new ArrayList<Object>();236                         list.addAll(Arrays.asList(resultSet.getString("userId"),237                                 resultSet.getString("userName"),238                                 resultSet.getString("account"),239                                 resultSet.getString("phone"),240                                 resultSet.getString("email"),241                                 resultSet.getString("password"),242                                 resultSet.getString("sex")));243                         setListDataSend(list);244                     }                                    245                     return returnONE(resultSet);246                 }247                 248             } catch (SQLException e) {249                 // TODO Auto-generated catch block250                 e.printStackTrace();251             }finally{252                 close();253             }254             return 0;255             256         }257 258         public List<Object> transfer() {259             // TODO Auto-generated method stub260             return this.listDataSend;261         }262 263     }264 265     public List<Object> transfer() {266         // TODO Auto-generated method stub267         return this.listDataSend;268     }269 270 }

 

RegisterServlet.java(注册)

 1 package com.yuw.servlet; 2  3 import java.io.IOException; 4 import java.util.ArrayList; 5 import java.util.Arrays; 6 import java.util.List; 7  8 import javax.servlet.ServletException; 9 import javax.servlet.http.HttpServlet;10 import javax.servlet.http.HttpServletRequest;11 import javax.servlet.http.HttpServletResponse;12 13 import com.yuw.jdbc.AccessData;14 import com.yuw.servlet.example.SQLserverJDBC;15 import com.yuw.transfer.DataTransfer;16 17 /**18  * 19  * @author Yuw20  * @data 2017-12-2021  * 22  */23 public class RegisterServlet extends HttpServlet implements24         DataTransfer<List<Object>> {25 26     private static final long serialVersionUID = 1L;27     // 数据传送28     private List<Object> listDataSend = null;29 30     public List<Object> getListDataSend() {31         return listDataSend;32     }33 34     public void setListDataSend(List<Object> listDataSend) {35         this.listDataSend = listDataSend;36     }37 38     public void doGet(HttpServletRequest request, HttpServletResponse response)39             throws ServletException, IOException {40 41         doPost(request, response);42     }43 44     public void doPost(HttpServletRequest request, HttpServletResponse response)45             throws ServletException, IOException {46         ActionListen actionListen = new ActionListen();47         List<Object> list = new ArrayList<Object>();48         list.addAll(Arrays.asList(actionListen.toCharacterEncoding(request.getParameter("account")),49                 actionListen.toCharacterEncoding(request.getParameter("passwords")),50                 actionListen.toCharacterEncoding(request.getParameter("userId")),                51                 actionListen.toCharacterEncoding(request.getParameter("userName")),52                 actionListen.toCharacterEncoding(request.getParameter("account")),53                 actionListen.toCharacterEncoding(request.getParameter("phone")),54                 actionListen.toCharacterEncoding(request.getParameter("email")),                                55                 actionListen.toCharacterEncoding(request.getParameter("sex"))));56         setListDataSend(list);57         // 发起数据库连接58         actionListen.connectionJDBC(SQLserverJDBC.getInstance(), this);59         final String sql = "begin tran inserta "+60                 "insert into user_Account values(?,?);"+61                 "insert into users values(?,?,?,?,?,?);"+62                 "commit tran inserta";63         // 与前台交互64         actionListen.WriteMsg(ActionListen.ONE,actionListen.insertData(sql), request, response);65     }66 67     private class ActionListen extends AccessData {68 69         public ActionListen() {70 71         }72 73     }74 75     public List<Object> transfer() {76         // TODO Auto-generated method stub77         return this.listDataSend;78     }79 80 }

 

 JDBCDataBase.java(连接数据库的接口)

 1 package com.yuw.servlet.example; 2  3 import java.sql.Connection; 4 /** 5  *  6  * @author Yuw  7  * @data 2017-12-20 8  * 数据库连接 9  */10 public interface JDBCDataBase{11     12     Connection example();   13 }

 

SQLserverJDBC.java(具体实现类)

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

 

DataTransfer.java(servlet向数据层发送数据的中间价)

1 package com.yuw.transfer;2 3 public interface DataTransfer<T>{4     /*5      * 数据集通讯6      */7     T transfer();8 }

 

DataTransferReport.java数据层向servlet发送数据的中间价)

 1 package com.yuw.transfer; 2  3 /* 4  * 回送 5  */ 6 public interface DataTransferReport<T> 7 { 8  9     /*10      * 数据集通讯11      */12     T transfer();13 }

注:本文内容来自互联网,旨在为开发者提供分享、交流的平台。如有涉及文章版权等事宜,请你联系站长进行处理。