移动App,AJAX异步请求,实现简单的增、删、改、查

时间:2023-01-31 09:52:02

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

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

index.html:

             $(function() {
$('#login').click(function() {
var account = $("#account").val();
var passwords = $('#passwords').val();
$.ajax({
url: "http://localhost:8080/AppServer/LoginServlet.action?ajaxType=jsonp",
dataType: "jsonp",
jsonpCallback: "jsonpCallback",
jsonp: "callback",
data: {
account: account,
passwords: passwords,
},
success: function(server) {
if (server.is) {
alert("登录成功");
$(location).attr('href', 'main.html?account=' + account);
} else {
alert("登录失败:" + server.err);
}
},
error: function(server) {
alert("连接服务器失败");
},
});
});
$('#register').click(function() {
$(location).attr('href', 'register.html');
});
})

register.html:

             $(function() {
$('#register').click(function() {
var islen = ($('#password1').val().length >= 6 && $('#password1').val().length <= 12) && ($('#password2').val().length >= 6 && $('#password2').val().length <= 12);
var isID = $('#user_id').val().length > 0 && $('#user_id').val().length <= 18;
if (islen && isID) {
if ($('#password1').val() == $('#password2').val()) {
$.ajax({
type: "post",
url: "http://localhost:8080/AppServer/RegisterServlet.action?ajaxType=jsonp",
dataType: "jsonp",
jsonpCallback: "jsonpCallback",
jsonp: "callback",
data: {
account: $('#account').val(),
passwords: $('#password1').val(),
phone: $('#phone').val(),
email: $('#email').val(),
userId: $('#user_id').val(),
userName: $('#user_name').val(),
sex: $('input:radio:checked').val(),
},
success: function(server) {
if (server.is) {
alert("注册成功");
$(location).attr('href', 'index.html');
} else {
alert("注册失败");
}
},
error: function(server) {
alert("连接服务器失败");
},
});
} else {
alert('密码不一致!');
}
} else {
if (!isID) {
alert('请输入正确的身份证!');
} else if (!islen) {
alert('密码长度不一致');
} else {
alert('请输入合法的信息!');
}
}
});
})

main.html:

             $(function() {
var loc = location.href;
var n1 = loc.length; //地址的总长度
var n2 = loc.indexOf("="); //取得=号的位置
var accounts = decodeURI(loc.substr(n2 + 1, n1 - n2));
$('#select').click(function() {
$('#div2').show(1500);
$('#div3').hide(1500);
$.ajax({
url: "http://localhost:8080/AppServer/MainServlet.action?ajaxType=jsonp&Type=select",
dataType: "jsonp",
jsonpCallback: "jsonpCallback",
jsonp: "callback",
data: {
account: accounts,
},
success: function(server) {
if (server.is) {
$('#account').val(server.account);
$('#phone').val(server.phone);
$('#email').val(server.email);
$('#ids').val(server.userId);
$('#name').val(server.userName);
$('#password').val(server.passwords);
$('#sex').val(server.sex);
} else {
alert("查看失败!");
}
},
error: function(server) {
alert("连接服务器失败!");
},
});
});
$('#save').click(function() {
var islen = $('#password').val().length >= 6 && $('#password').val().length <= 12;
var isID = $('#ids').val().length > 0 && $('#ids').val().length <= 18;
if (islen && isID) {
$.ajax({
async: true,
type: "post",
url: "http://localhost:8080/AppServer/MainServlet.action?ajaxType=jsonp&Type=save",
dataType: "jsonp",
jsonpCallback: "jsonpCallback",
jsonp: "callback",
data: {
account: $('#account').val(),
passwords: $('#password').val(),
phone: $('#phone').val(),
email: $('#email').val(),
userId: $('#ids').val(),
userName: $('#name').val(),
sex: $('#sex').val(),
},
success: function(server) {
if (server.is) {
alert("修改成功!");
$('#div2').hide(1500);
} else {
alert("修改失败!");
}
},
error: function(server) {
alert("连接服务器失败!");
},
});
} else {
if (!isID) {
alert('请输入正确的身份证!');
} else if (!islen) {
alert('密码长度不一致');
} else {
alert('请输入合法的信息!');
}
}
});
$('#cancel').click(function() {
$.ajax({
url: "http://localhost:8080/AppServer/MainServlet.action?ajaxType=jsonp&Type=cancel",
dataType: "jsonp",
jsonpCallback: "jsonpCallback",
jsonp: "callback",
data: {
account: accounts,
},
success: function(server) {
if (server.is) {
alert("注销成功!");
$(location).attr('href', 'index.html');
} else {
alert("注销失败!");
}
},
error: function(server) {
alert("连接服务器失败!");
},
});
});
$('#all').click(function() {
$('#div3').show(1500);
$('#div2').hide(1500);
$.ajax({
url: "http://localhost:8080/AppServer/MainServlet.action?ajaxType=jsonp&Type=all",
dataType: "jsonp",
jsonpCallback: "jsonpCallback",
jsonp: "callback",
success: function(server) {
if (server.is) {
alert("查看成功!");
var arrData = [];
var arr = null;
for (i = 0; i < server.data.length; i++) {
if (arr == null) {
arr = new Array;
}
arr.push(server.data[i].userId);
arr.push(server.data[i].userName);
arr.push(server.data[i].account);
arr.push(server.data[i].phone);
arr.push(server.data[i].email);
arr.push(server.data[i].passwords);
arr.push(server.data[i].sex);
arrData.push(arr);
arr = null;
}
var td = "";
var table = "";
if(arrData != null){
for(var i=0 ; i<arrData.length ; i++){
var tr = "<tr>";
for(var j=0 ; j<arrData[i].length; j++){
td += '<td>' + arrData[i][j] + '</td>';
}
var tr2 = "</tr>";
table += (tr + td + tr2);
td = "";
}
$('#bodys').html(table);
}
} else {
alert("查看失败!");
}
},
error: function(server) {
alert("连接服务器失败!");
},
});
});
})

web.xml:

 <?xml version="1.0" encoding="UTF-8"?>
<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">
<display-name></display-name>
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>com.yuw.servlet.LoginServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>RegisterServlet</servlet-name>
<servlet-class>com.yuw.servlet.RegisterServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>MainServlet</servlet-name>
<servlet-class>com.yuw.servlet.MainServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/LoginServlet.action</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>RegisterServlet</servlet-name>
<url-pattern>/RegisterServlet.action</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>MainServlet</servlet-name>
<url-pattern>/MainServlet.action</url-pattern>
</servlet-mapping>
</web-app>

 后台代码:

项目结构:

移动App,AJAX异步请求,实现简单的增、删、改、查

AccessData.java(与数据库交互)

 package com.yuw.jdbc;

 import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import com.yuw.servlet.example.JDBCDataBase;
import com.yuw.transfer.DataTransfer; /**
*
* @author Yuw
* @data 2017-12-20
*/
public abstract class AccessData {
public static final int ONE = 1;
protected Connection connection = null;
protected PreparedStatement preparedStatement = null;
protected ResultSet resultSet = null;
// 接收数据
protected List<Object> listDataReceive = null;
public AccessData() { }
/*
* @dataBase 数据库连接
* @dataTransfer 获得每次连接的数据信息
*/
public void connectionJDBC(JDBCDataBase dataBase,DataTransfer<List<Object>> dataTransfer) {
if(this.connection == null){
this.connection = dataBase.example();
this.listDataReceive = dataTransfer.transfer();
}
}
/*
* 删除
*/
public int deleteData(String sql){
int msg = 0;
try {
if(listDataReceive != null){
preparedStatement = connection.prepareStatement(sql);
int index = 1;
for(Object object : listDataReceive){
preparedStatement.setString(index++, (String)object);
}
msg = preparedStatement.executeUpdate();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
close();
}
return msg;
}
/*
* 插入
*/
public int insertData(String sql){
int msg = 0;
try {
if(listDataReceive != null){
preparedStatement = connection.prepareStatement(sql);
int index = 1;
for(Object object : listDataReceive){
preparedStatement.setString(index++, (String)object);
}
msg = preparedStatement.executeUpdate();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
close();
}
return msg; }
/*
* 查询
*/
public int selectData(String sql){
PreparedStatement preparedStatement = setPreparedStatement(sql);
try {
if(listDataReceive != null){
int index = 1;
for(Object object : listDataReceive){
preparedStatement.setString(index++, (String)object);
System.out.println((String)object);
}
resultSet = preparedStatement.executeQuery();
return returnONE(resultSet);
} } catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
close();
}
return 0; }
/*
* 判断结果集是否只有一行
*/
public int returnONE(ResultSet resultSet){
try {
resultSet.last();
if(resultSet.getRow() == ONE){
return ONE;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return 0; } public PreparedStatement setPreparedStatement(String sql){
try {
if(this.preparedStatement == null){
this.preparedStatement = connection.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return preparedStatement; }
/*
* 处理乱码
*/
public String toCharacterEncoding(String str) throws UnsupportedEncodingException{
if(str == null){
System.out.println("请传参");
}
return new String(str.getBytes("iso-8859-1"),"utf-8"); }
/*
* 关闭连接
*/
public void close(){
if(preparedStatement != null){
try {
preparedStatement.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(connection != null){
try {
connection.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/*
* 与前台交互
*/
public void WriteMsg(int msg,int t,HttpServletRequest request,HttpServletResponse response){
try {
if(t == msg){
String jsonp = request.getParameter("callback");
PrintWriter out = response.getWriter();
out.write(jsonp+"({\"is\":true})");
}else{
String jsonp = request.getParameter("callback");
PrintWriter out = response.getWriter();
out.write(jsonp+"({\"is\":false,\"err\":"+"\"账号或密码错误!\""+"})");
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }

 LoginServlet.java(登录)

 package com.yuw.servlet;

 import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import com.yuw.jdbc.AccessData;
import com.yuw.servlet.example.SQLserverJDBC;
import com.yuw.transfer.DataTransfer; /**
* @author Yuw
* @data 2017-12-20
*
*/
public class LoginServlet extends HttpServlet implements
DataTransfer<List<Object>> { private static final long serialVersionUID = 1L;
// 数据传送
private List<Object> listDataSend = null; public List<Object> getListDataSend() {
return listDataSend;
} public void setListDataSend(List<Object> listDataSend) {
this.listDataSend = listDataSend;
} public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { doPost(request, response);
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/plain; charset=utf-8"); ActionListen actionListen = new ActionListen();
List<Object> list = new ArrayList<Object>();
list.addAll(Arrays.asList(
actionListen.toCharacterEncoding(request.getParameter("account")),
actionListen.toCharacterEncoding(request.getParameter("passwords"))));
setListDataSend(list);
// 发起数据库连接
actionListen.connectionJDBC(SQLserverJDBC.getInstance(), this);
final String sql = "select * from user_Account where account = ? and password = ?";
// 与前台交互
actionListen.WriteMsg(ActionListen.ONE,actionListen.selectData(sql), request, response); }
/*
* 监听类
*/
private class ActionListen extends AccessData { public ActionListen() { } } public List<Object> transfer() {
// TODO Auto-generated method stub
return this.listDataSend;
} }

MainServlet.java(主要功能)

 package com.yuw.servlet;

 import java.io.IOException;
import java.io.PrintWriter;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.junit.Test; import com.yuw.jdbc.AccessData;
import com.yuw.servlet.example.SQLserverJDBC;
import com.yuw.transfer.DataTransfer;
import com.yuw.transfer.DataTransferReport;
/**
* @author Yuw
* @data 2017-12-21
*
*/
public class MainServlet extends HttpServlet implements DataTransfer<List<Object>>{ private static final long serialVersionUID = 1L;
//数据传送
private List<Object> listDataSend = null;
//数据接收
private List<Object> listDataReceive = null; public MainServlet(){ } public List<Object> getListDataReceive() {
return listDataReceive;
} public void setListDataReceive(DataTransferReport<List<Object>> dataTransferReport) {
this.listDataReceive = dataTransferReport.transfer();
} public List<Object> getListDataSend() {
return listDataSend;
} public void setListDataSend(List<Object> listDataSend) {
this.listDataSend = listDataSend;
} public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { doPost(request, response);
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/plain; charset=utf-8");
ActionListen actionListen = new ActionListen();
List<Object> list = new ArrayList<Object>();
// 查看个人信息
if("select".equals(request.getParameter("Type"))){
System.out.println(request.getParameter("account"));
list.add(actionListen.toCharacterEncoding(request.getParameter("account")));
setListDataSend(list);
actionListen.connectionJDBC(SQLserverJDBC.getInstance(), this);
final String sql = "select users.*,user_Account.password from users,user_Account where users.account = user_Account.account and user_Account.account = ?;";
int t = actionListen.selectData(sql);
setListDataReceive(actionListen);
actionListen.WriteMsg(ActionListen.ONE,t,request,response,listDataReceive);
}else if("save".equals(request.getParameter("Type"))){ // 保存
list.addAll(Arrays.asList(actionListen.toCharacterEncoding(request.getParameter("account")),
actionListen.toCharacterEncoding(request.getParameter("account")),
actionListen.toCharacterEncoding(request.getParameter("account")),
actionListen.toCharacterEncoding(request.getParameter("passwords")),
actionListen.toCharacterEncoding(request.getParameter("userId")),
actionListen.toCharacterEncoding(request.getParameter("userName")),
actionListen.toCharacterEncoding(request.getParameter("account")),
actionListen.toCharacterEncoding(request.getParameter("phone")),
actionListen.toCharacterEncoding(request.getParameter("email")),
actionListen.toCharacterEncoding(request.getParameter("sex"))));
setListDataSend(list);
actionListen.connectionJDBC(SQLserverJDBC.getInstance(), this);
final String sql = "begin tran saves "+
"delete users where account=?;"+
"delete user_Account where account=?;"+
"insert into user_Account values(?,?);"+
"insert into users values(?,?,?,?,?,?);"+
"commit tran saves";
actionListen.WriteMsg(ActionListen.ONE,actionListen.insertData(sql), request, response);
}else if("cancel".equals(request.getParameter("Type"))){ // 注销
list.addAll(Arrays.asList(actionListen.toCharacterEncoding(request.getParameter("account")),
actionListen.toCharacterEncoding(request.getParameter("account"))));
setListDataSend(list);
actionListen.connectionJDBC(SQLserverJDBC.getInstance(), this);
final String sql = "begin tran deletes "+
"delete users where account=?;"+
"delete user_Account where account=?;"+
"commit tran deletes";
actionListen.WriteMsg(ActionListen.ONE,actionListen.deleteData(sql), request, response);
}else if("all".equals(request.getParameter("Type"))){ // 查看所有
actionListen.connectionJDBC(SQLserverJDBC.getInstance(), this);
final String sql = "select users.*,user_Account.password from users, user_Account where users.account = user_Account.account;";
int t = actionListen.selectAllData(sql);
setListDataReceive(actionListen);
if(t == 1){
// 拼接JSON数据
int index = 0;
String str = "";
String str1 = "";
String str2 = "";
String str3 = "},";
for(int i=0 ; i<listDataReceive.size() ; i++){ if(index <= 6){
for(int j=0 ; j<1 ; j++){
str2 += "\"" + actionListen.flag[index] + "\"" + ":" + "\"" + listDataReceive.get(i) + "\"" +",";
}
if(index++ == 6){
str1 = "{";
index = 0;
str += (str1+str2+str3);
str2 = "";
}
}
}
System.out.println(str);
String jsonp = request.getParameter("callback");
PrintWriter out = response.getWriter();
out.write(jsonp+"({\"is\":true" + "," + "\"data\"" + ":" + "[" + str + "]" + "})"); }
} } /*
* 监听类
*/
private class ActionListen extends AccessData implements DataTransferReport<List<Object>>{
//发送数据
private List<Object> listDataSend = null;
// 前台标志
private final String[] flag = new String[]{"userId","userName","account","phone","email","passwords","sex"};
@SuppressWarnings("unused")
public List<Object> getListDataSend() {
return listDataSend;
} public void setListDataSend(List<Object> listDataSend) {
this.listDataSend = listDataSend;
} public ActionListen() { }
public int selectAllData(String sql){
List<Object> total = new ArrayList<Object>();
List<Object> row = null;
try {
PreparedStatement preparedStatement = setPreparedStatement(sql);
resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
if(row == null){
row = new ArrayList<Object>();
row.addAll(Arrays.asList(resultSet.getString("userId"),
resultSet.getString("userName"),
resultSet.getString("account"),
resultSet.getString("phone"),
resultSet.getString("email"),
resultSet.getString("password"),
resultSet.getString("sex")));
total.addAll(row);
}
row = null;
}
setListDataSend(total);
//if(listDataSend != null){
return 1;
//}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return 0; }
/*
* 与前台交互
*/
public void WriteMsg(int msg, int t, HttpServletRequest request,
HttpServletResponse response,List<Object> list) {
String data = "";
int index = 0;
try {
if(t == msg){
String jsonp = request.getParameter("callback");
PrintWriter out = response.getWriter();
for(Object object : list){
data += "," + "\"" + flag[index++] + "\"" + ":" + "\"" + (String)object + "\"";
}
System.out.println("DATA:"+data);
out.write(jsonp+"({\"is\":true" + data + "})");
}else{
String jsonp = request.getParameter("callback");
PrintWriter out = response.getWriter();
out.write(jsonp+"({\"is\":false,\"err\":"+"\"账号或密码错误!\""+"})");
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/*
* 查询
* @see com.yuanwei.jdbc.AccessData#selectData(java.lang.String)
*/
@Override
public int selectData(String sql) {
PreparedStatement preparedStatement = setPreparedStatement(sql);
try {
if(super.listDataReceive != null){
int index = 1;
for(Object object : super.listDataReceive){
preparedStatement.setString(index++, (String)object);
System.out.println((String)object);
}
resultSet = preparedStatement.executeQuery();
while(resultSet.next()){
List<Object> list = new ArrayList<Object>();
list.addAll(Arrays.asList(resultSet.getString("userId"),
resultSet.getString("userName"),
resultSet.getString("account"),
resultSet.getString("phone"),
resultSet.getString("email"),
resultSet.getString("password"),
resultSet.getString("sex")));
setListDataSend(list);
}
return returnONE(resultSet);
} } catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
close();
}
return 0; } public List<Object> transfer() {
// TODO Auto-generated method stub
return this.listDataSend;
} } public List<Object> transfer() {
// TODO Auto-generated method stub
return this.listDataSend;
} }

RegisterServlet.java(注册)

 package com.yuw.servlet;

 import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import com.yuw.jdbc.AccessData;
import com.yuw.servlet.example.SQLserverJDBC;
import com.yuw.transfer.DataTransfer; /**
*
* @author Yuw
* @data 2017-12-20
*
*/
public class RegisterServlet extends HttpServlet implements
DataTransfer<List<Object>> { private static final long serialVersionUID = 1L;
// 数据传送
private List<Object> listDataSend = null; public List<Object> getListDataSend() {
return listDataSend;
} public void setListDataSend(List<Object> listDataSend) {
this.listDataSend = listDataSend;
} public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { doPost(request, response);
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ActionListen actionListen = new ActionListen();
List<Object> list = new ArrayList<Object>();
list.addAll(Arrays.asList(actionListen.toCharacterEncoding(request.getParameter("account")),
actionListen.toCharacterEncoding(request.getParameter("passwords")),
actionListen.toCharacterEncoding(request.getParameter("userId")),
actionListen.toCharacterEncoding(request.getParameter("userName")),
actionListen.toCharacterEncoding(request.getParameter("account")),
actionListen.toCharacterEncoding(request.getParameter("phone")),
actionListen.toCharacterEncoding(request.getParameter("email")),
actionListen.toCharacterEncoding(request.getParameter("sex"))));
setListDataSend(list);
// 发起数据库连接
actionListen.connectionJDBC(SQLserverJDBC.getInstance(), this);
final String sql = "begin tran inserta "+
"insert into user_Account values(?,?);"+
"insert into users values(?,?,?,?,?,?);"+
"commit tran inserta";
// 与前台交互
actionListen.WriteMsg(ActionListen.ONE,actionListen.insertData(sql), request, response);
} private class ActionListen extends AccessData { public ActionListen() { } } public List<Object> transfer() {
// TODO Auto-generated method stub
return this.listDataSend;
} }

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

 package com.yuw.servlet.example;

 import java.sql.Connection;
/**
*
* @author Yuw
* @data 2017-12-20
* 数据库连接
*/
public interface JDBCDataBase{ Connection example();
}

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 block
35 System.out.println("连接失败");
36 e.printStackTrace();
37 }
38 return dataBase;
39 }
40
41 }

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

 package com.yuw.transfer;

 public interface DataTransfer<T>{
/*
* 数据集通讯
*/
T transfer();
}

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

 package com.yuw.transfer;

 /*
* 回送
*/
public interface DataTransferReport<T>
{ /*
* 数据集通讯
*/
T transfer();
}