问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求 一个 servlet jquery ajax mysql增删改查 简单例子

发布网友 发布时间:2022-04-11 09:37

我来回答

2个回答

懂视网 时间:2022-04-11 13:58

xml version="1.0" encoding="UTF-8"?> <c3p0-config> <!--c3p0配置1--> <named-config name="c3p0"> <!-- 连接参数 --> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="jdbcUrl">jdbc:mysql://localhost:3306/manager</property> <property name="user">root</property> <property name="password">root</property> <!-- 连接池参数 --> <property name="idleConnectionTestPeriodInMinutes" value="240"/> <property name="idleMaxAgeInMinutes" value="60"/> <property name="maxConnectionsPerPartition" value="250"/> <property name="minConnectionsPerPartition" value="40"/> <property name="partitionCount" value="2"/> <property name="acquireIncrement" value="10"/> <property name="statementsCacheSize" value="0"/> <property name="releaseHelperThreads" value="5"/> <property name="connectionTimeoutInMs" value="5000"/> </named-config> </c3p0-config>

 

1.1.获得c3p0数据连接池的数据源

public class ComboPooledDataSourceUtil {
 //无参构造硬编码(配置这个后无需配置xml)
 public static DataSource getDataSource() throws PropertyVetoException {
 ComboPooledDataSource dataSource=new ComboPooledDataSource();
 dataSource.setDriverClass("com.mysql.jdbc.Driver");
 dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/manager");
 dataSource.setUser("root");
 dataSource.setPassword("root");
 return dataSource;
 }
 //xml编码
 public static DataSource getDataSourceByxml(){
 ComboPooledDataSource cpds=new ComboPooledDataSource("c3p0");
 return cpds;
 }
}

 

2. dao层采用dbutils工具类操作数据库语句

 @Override
 public Integer delmany(Integer[] ids) throws SQLException {
 String sql = "delete from `grade` where gradeId=?";
 int n=0;
 for (int i = 0; i <ids.length; i++) {
  n = queryRunner.update(sql, ids[i]);
 }

 return n;
 }

 

3.jsonresult类,向页面输送json格式数据,用于ajax

public class JsonResult {
 private int code;
 private String msg;
 private Object data;

 public JsonResult() {
 super();
 }

 public JsonResult(int code) {
 this.code = code;
 }

 public JsonResult(int code, String msg, Object data) {
 this.code = code;
 this.msg = msg;
 this.data = data;
 }

 public JsonResult(int code, Object data) {
 this.code = code;
 this.data = data;
 }

 public JsonResult(int code, String msg) {
 this.code = code;
 this.msg = msg;
 }

 public int getCode() {
 return code;
 }

 public void setCode(int code) {
 this.code = code;
 }

 public String getMsg() {
 return msg;
 }

 public void setMsg(String msg) {
 this.msg = msg;
 }

 public Object getData() {
 return data;
 }

 public void setData(Object data) {
 this.data = data;
 }
}

 

3.1实体类

public class Grade implements Serializable {


 private Integer gradeid;
 
 private String gradename;
 
 private Integer orderid;

 public Grade(Integer gradeid, String gradename, Integer orderid) {
 this.gradeid = gradeid;
 this.gradename = gradename;
 this.orderid = orderid;
 }
 public Grade() {
 }
 public Integer getGradeid() {
 return gradeid;
 }

 public void setGradeid(Integer gradeid) {
 this.gradeid = gradeid;
 }

 public String getGradename() {
 return gradename;
 }

 public void setGradename(String gradename) {
 this.gradename = gradename;
 }

 public Integer getOrderid() {
 return orderid;
 }

 public void setOrderid(Integer orderid) {
 this.orderid = orderid;
 }
}

 

4.service层,做业务逻辑

 @Override
 public JsonResult delMnayResult(Integer[] ids) {
 JsonResult jsonResult = null;

 try {
  Integer delmany = gradeDao.delmany(ids);
  if (delmany>0){
   jsonResult = new JsonResult(200);
  }else {
  jsonResult = new JsonResult(400);
  }
 } catch (SQLException e) {
  e.printStackTrace();
 }
 return jsonResult;
 }

 

5.创建servlet抽象类,避免以后一个请求建一个servlet处理类

public abstract class BaseServlet extends HttpServlet {
 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 //获取模块中方法标识符
 String action = request.getParameter("action");
 if (action == null) {
  action = "index";
 }
 try {
  //1:获取类的字节码
  Class aClass = this.getClass();

  Object o = aClass.newInstance();// 通过类实例化对象

  //方法 方法都是定义在类中,找方法 在类中
  Method method = aClass.getDeclaredMethod(action,
   HttpServletRequest.class, HttpServletResponse.class);

  Object obj = method.invoke(o, request, response);
  if (obj instanceof String) {
  //转发
  request.getRequestDispatcher(obj.toString()).forward(request, response);
  } else if (obj instanceof JsonResult) {
  //json
  PrintWriter writer = response.getWriter();

  JsonResult jsonResult = (JsonResult) obj;
  String json = JSON.toJSONString(jsonResult);
  writer.print(json);
  }
 } catch (Exception e) {
  e.printStackTrace();
 } finally {
 }
 }
 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 doPost(request, response);
 }
}

 

5.1.批量删除servlet类

@WebServlet("/main/grade")
public class GradeServlet extends BaseServlet {
GradeService service = new GradeServiceImpl();
//批量删除
 public JsonResult delMany(HttpServletRequest request, HttpServletResponse response){
 String[]ids=request.getParameterValues("gIDs");
 Integer[]delIds=new Integer[ids.length];
 for (int i = 0; i < ids.length; i++) {
  delIds[i]=Integer.parseInt(ids[i]);
 }
 JsonResult jsonResult = service.delMnayResult(delIds);
 return jsonResult;
 }
}

 

6. 前端部分代码,此处是列表页面,一般要先做好列表页才能删除,划线代码为预删除勾选按钮

<c:forEach items="${requestScope.grades}" var="grade">
  <tr class="text-c">
   <td><input type="checkbox" value="${grade.gradeid}" id="gIDs" name="gIDs"></td>
  <td id="gid">${grade.gradeid}</td>
  <td><u style="cursor:pointer" class="text-primary">${grade.gradename}</u></td>
  <td>${grade.orderid}</td>
  <td hidden="hidden">13000000000</td>
  <td hidden="hidden">admin@mail.com</td>
  <td class="text-l" hidden="hidden">北京市 海淀区</td>
  <td hidden="hidden">2014-6-11 11:11:42</td>
  <td class="td-status" hidden="hidden"><span class="label label-success radius">已启用</span></td>
  <td class="td-manage"><a style="text-decoration:none" onClick="member_stop(this,‘10001‘)" href="javascript:;" title="停用"><i class="Hui-iconfont"></i></a> <a title="编辑" href="javascript:;" onclick="member_edit(‘编辑‘,‘/main/grade?action=gradePage&gradeId=${grade.gradeid}‘,‘4‘,‘‘,‘510‘)" class="ml-5" style="text-decoration:none"><i class="Hui-iconfont"></i></a> <a style="text-decoration:none" class="ml-5" onClick="change_password(‘修改密码‘,‘change-password.html‘,‘10001‘,‘600‘,‘270‘)" href="javascript:;" title="修改密码"><i class="Hui-iconfont"></i></a> <a title="删除" href="javascript:;" onclick="member_del(${grade.gradeid})" class="ml-5" style="text-decoration:none"><i class="Hui-iconfont"></i></a></td>
  </tr>
  </c:forEach>
/////代码过多已省略,可在H-UI下载模板
<a href="javascript:;" onclick="datadel()" class="btn btn-danger radius"><i class="Hui-iconfont"></i> 批量删除</a>

 

6.1 重点

 /**批量删除*/
 function datadel() {
 $(‘input[name="gIDs"]:checked‘).each(
  function () {
  delgra($(this).val(), this)
  }
 );
 }
 function delgra(id, dome) {
 var url="/main/grade?action=delMany";
 var obj={
  gIDs:id
 }
 $.get(url,obj,function (data) {
  if(data.code=="200"){
  layer.msg("删除成功", {time: 1000, icon: 6, shift: 6});
  location.href="/main/grade";
  }else {
  layer.msg("删除失败", {time: 1000, icon: 5, shift: 6});
  }
 },"json")
 }

 

7.效果图如下:

技术图片

 

 

技术图片

 

mysql+servlet+ajax实现批量删除功能

标签:sql   ems   tst   art   over   protected   dmi   ice   update   

热心网友 时间:2022-04-11 11:06

假设:
1、你的页面在Web-Root下,内容为:  <div id="showMsg"></div><input type="text" id="userName" />,所用编码为utf-8
2、你的servlet为:  HelloWorldServlet.java  映射路径为   servlet/helloWorldServlet
步骤:
1、引入jquery-1.6.4.min.js
2、编写id为userName的输入框的点击触发函数:

     $("#userName").keyup(function(){
            $.ajax({
                  type: "post",
                  url: "servlet/helloWorldServlet?userName="+$(this).val(),
                  dataType: "json",
                  success: function(data){
                        $("#showMsg").html(data.msg);//修改id为showMsg标签的html
                  }, error: function(){
                        alert("请求出错");
                  }
            })
      })

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
南师足贴的功效和用法是什么 五指运湿膏能减肥吗 清颜六白膏真的管用吗 一个手机号建了两个微信号第一个微信号密码忘了怎么找回 ug最好用的版本是什么 带“沙鸥”的诗句大全(87句) 归计狎沙鸥的意思是什么 指期乘禁马,无暇狎沙鸥。 “无机终日狎沙鸥”的出处是哪里 “无暇狎沙鸥”的出处是哪里 压力变送器的选型规则 压力变送器 4~20mA 量程:0~550kpa 当300kpa时 万用表显示多少mA 还有就是计算公式 怎么算出来的 谢谢 详细 防爆智能压力变送器的电机功率大概是多少 急需压力变送器的相关内容 压力变送器需配多大的开关电源 新建100万千瓦发电厂需要多少压力变送器? 电容式压力变送器的技术参数 艾默生3051压力变送器功率多少 怎么算低功耗压力变送器 24V直流供电 4--20mA输出 电流0.1mA 请问这个压力变送器的功耗是多少???? 压力变送器在选型的时候需要用到的参数有哪些? 压力变送器的是如何选型的? 请问PTET系列2088法兰隔膜压力变送器功率是多大的? 智能压力变送器电源一般选用多大的? 请问压力变送器功率一般都是多大? 西红柿怎么吃也不会腻,熟吃和生吃哪个更好? 番茄熟吃、生吃的方式,对吸收的营养侧重有何不同? 天翼高清的初始账号密码是什么啊? 天翼宽带登陆192.168.1.1的登陆账号密码是什么? 约柜的12埃塞俄比亚的约柜编辑 怎么在win10中添加microsoft账户 联想笔记本的word文档无法打开,总出现错误报告怎么办论坛 联想笔记本电脑z400,word打不开是什么回事 新买的联想笔记本电脑,win7的系统,用不了word文档? 天津老房子还可以办理房屋抵押贷款吗? 2011年天津30多年40多平米,老房子能在那家银行做抵押贷款?贷12万还款年限10年以内。 襄阳高新区社保工行 150字小作文当考试卷发下来以后 考试考得非常不好不敢回家见父母150字小作文? 六年级作文《月考后的反思》150字左右 写一次考试时的动作,神态,心理活动的作文150字 写一篇初一的小作文:期中考试考完3科后,心想:…… 150字,心理描 三年级考试后,作文我该怎么学的计划150字 微信上关注的公众号视频如何下载? 急急急。 求关于人物james的一篇英语考试日记 150字 生姜水和白醋水可以一起喝么? 醋泡生姜能放水一起熬吗 生姜兑白醋熬成水 敷脸可以不 用华为开微信分身,两个在一个手机上会被封号吗 请问,华为nova5i 和华为畅享10S哪个更好?从各个方面来看