AJAX对数据库增删改查实例

前端代码:

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>AJAX小实例</title> <link href="artDialog/css/dialog.css" rel="stylesheet"> <style> a:hover{ color:green; cursor:pointer; } </style> </head> <body> <input id="add" type="button" value="添加"> <table id="table" border="1"> <thead> <tr><td>编号</td><td>姓名</td><td>性别</td><td>操作</td></tr> </thead> <tbody id="tbody"> </tbody> </table> <!-- 添加 --> <fieldset id="showdialog" style="display:none"><legend>添加信息</legend> <form id="form1"> <label for="uname">用户名:</label><input id="uname" type="text" name="uname"><br/> <label for="usex">性别:</label><select id="usex" name="usex"><option>男</option> <option>女</option></select><br/> <input id="addOneData" type="button" value="添加"><input id="updateOneData" type="button" value="修改"><input type="button" value="重置"> </form> </fieldset> </body> <script type="text/javascript" src="js/jquery-1.11.3.js"></script> <!-- artDialog的js文件 --> <script type="text/javascript" src="artDialog/dist/dialog.js"></script> <script type="text/javascript"> /\* app:一个app对象 \*/ var app={ /\* 数据源 \*/ bindData:function(){ $.post("TestUserControl?action=getAllUserInfo",{},function(data){ $("#tbody tr").remove(); $.each(data,function(index,obj){ var tr=$("<tr/>"); $("<td/>").html(obj.uid).appendTo(tr); $("<td/>").html(obj.uname).appendTo(tr); $("<td/>").html(obj.usex).appendTo(tr); var aEdit=$("<a class='aEdit'>编辑<a/>").data("uid",obj.uid).data("user",obj); var aDel=$("<a class='aDel'>删除</a>").data("uid",obj.uid).data("user",obj); $("<td/>").append(aEdit).append(aDel).appendTo(tr); $("#tbody").append(tr); }) }) }, deleteData:function(){ var uid=$(this).data("uid"); if(!confirm("是否确定删除?")){ return false; } $.post("TestUserControl?action=deleteOne",{uid:uid},function(data){ alert(data.msg); app.bindData(); }) }, /\* 添加 \*/ dia:null, showDialog:function(){ app.dia=dialog({ title:"详细信息", modal:true, backdropOpacity:0.4, width:'500px', height:'300px', content:$("#showdialog") }); app.dia.show(); }, addData:function(){ $.post("TestUserControl?action=addOneData",$("#form1").serialize(),function(data){ alert(data.msg); app.bindData(); app.dia.close().remove(); }) }, /\* 修改 \*/ user:null, getUserInfo:function(){ app.user=$(this).data("user"); $("#uname").val(app.user.uname); $("#usex").val(app.user.usex); app.dia=dialog({ title:"详细信息", modal:true, backdropOpacity:0.4, width:'500px', height:'300px', content:$("#showdialog") }); app.dia.show(); }, updateOneData:function(){ app.user.uname=$("#uname").val(); app.user.usex=$("#usex").val();

$.post("TestUserControl?action=updateOneData",app.user,function(data){
alert(data.msg);
app.bindData();
app.dia.close().remove();
})
},
init:function(){
app.bindData();
$("#tbody").on("click",".aDel",app.deleteData);
$("#add").click(app.showDialog);
$("#addOneData").click(app.addData);
$("#tbody").on("click",".aEdit",app.getUserInfo);
$("#updateOneData").click(app.updateOneData);
}
}
app.init();
</script>

</html>

效果:

后台代码:

package controller;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import dao.TestUserDao;
import vo.TestUser;

/**
* Servlet implementation class TestUserControl
*/
@WebServlet("/TestUserControl")
public class TestUserControl extends HttpServlet {
private static final long serialVersionUID = 1L;
private TestUserDao tudao=new TestUserDao();
/**
* Default constructor.
*/
public TestUserControl() {
// TODO Auto-generated constructor stub
}

/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置相应编码以及响应json对象
request.setCharacterEncoding("utf-8");
response.setContentType("application/json;charset=utf-8");
response.setCharacterEncoding("utf-8");

String action=request.getParameter("action");
switch(action){
case"getAllUserInfo":
List<TestUser>list=tudao.getAllTestUser();
//向前台响应
response.getWriter().print(JsonUtils.Utils.toJson(list));
;break;
case"getone":;break;
case"deleteOne":
int uid=Integer.parseInt(request.getParameter("uid"));
tudao.delete(uid);
response.getWriter().print("{\"msg\":\"删除成功!\"}");
;break;
case"addOneData":
String uname=request.getParameter("uname");
String usex=request.getParameter("usex");
if(tudao.insert(new TestUser(uname,usex))>0){
response.getWriter().print("{\"msg\":\"添加成功!\"}");
}else{
response.getWriter().print("{\"msg\":\"添加失败!\"}");
};break;
case"updateOneData":
int uuid=Integer.parseInt(request.getParameter("uid"));
String uuname=request.getParameter("uname");
String uusex=request.getParameter("usex");
if(tudao.update(new TestUser(uuid,uuname,uusex))>0){
response.getWriter().print("{\"msg\":\"修改成功!\"}");
}else{
response.getWriter().print("{\"msg\":\"修改失败!\"}");
}
break;
default:;break;
}
}

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}

心得:该例子采用了artDialog 框架以及采用了张果老师传授的封装数据的理念,在前端只对外只暴露一个方法,有效的保护了数据的安全性以及严谨性。

artDialog下载:http://aui.github.io/artDialog/

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )