数据库

CREATE DATABASE crmweb;

CREATE TABLE `customerstatus` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '序号',
`customerstatus` varchar(100) DEFAULT NULL COMMENT '客户状态',
`customerdescription` varchar(100) DEFAULT NULL COMMENT '客户描述',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

C3P0

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<named-config name="webs001"> <!-- 自定义配置 -->
<!-- mysql驱动 -->
<property name="driverClass">com.mysql.jdbc.Driver</property>
<!-- 数据库连接 -->

<property name="jdbcUrl">jdbc:mysql://localhost:3306/crmweb?characterEncoding=utf-8</property>

<!-- 数据库用户名 -->
<property name="user">root</property>
<!-- 数据库密码 -->
<property name="password">mysql</property>
<!-- 初始化连接池大小 -->
<property name="initialPoolSize">10</property>
<!-- 最大空闲时间(秒) - 若为0则永不丢弃 -->
<property name="maxIdleTime">30</property>
<!--每40秒检查所有连接池中的空闲连接。Default: 0 -->
<property name="idleConnectionTestPeriod">40</property>
<!-- 连接池中保留的最大连接数 -->
<property name="maxPoolSize">100</property>
<!-- 最小保留连接数 -->
<property name="minPoolSize">10</property>
<!-- 最大连接数 -->
<property name="maxStatements">200</property>
</named-config>
</c3p0-config>

WEB.xml

<!-- Customerstatus查询 -->

<servlet-mapping>
<servlet-name>Customerstatus</servlet-name>
<url-pattern>/Customerstatus/ajxsel</url-pattern>
</servlet-mapping>

<!-- Customerstatus增加 -->

<servlet-mapping>
<servlet-name>Customerstatus</servlet-name>
<url-pattern>/Customerstatus/ajxadd</url-pattern>
</servlet-mapping>

<!-- Customerstatus删除 -->
<servlet-mapping>
<servlet-name>Customerstatus</servlet-name>
<url-pattern>/Customerstatus/ajxdel</url-pattern>
</servlet-mapping>

Customerstatus.jsp页面

<script type="text/javascript" src="js/jquery-3.2.1.min.js" ></script>

<div class="a">
<label>请输入客户状态:</label>
<input type="text" class="inp" />
<input type="button" value="查询" class="inp2"/>
<a href="customerstatustoadd.jsp">
<input type="button" value="添加" class="inp3"/>
</a>
</div>
<div class="d"></div>
<div class="b">
<table>
<tr style="background: #cdeaf9;"><th class="widt">序号</th><th class="width1">客户状态</th><th class="width">状态描述</th><th class="wid">基本操作</th></tr>
<tbody id="td">

</tbody>

<%-- <c:forEach var="v" items="${list }" varStatus="status" >
<tr><td class="widt">${status.index+1}</td>
<td class="width1">${v.customerstatus }</td>
<td class="width">${v.customerdescription }</td>

<td class="wid">
<a href="Customerstatus/delete?id=${v.id }">
<img src="data:images/del.gif"/>
删除</a>
</td>
</tr>
</c:forEach> --%>
</table>

</div>
<div class="c">
<span class="if">共有3条记录,当前第1/1页</span>
<img class="img1" src="data:images/first.gif" />
<img src="data:images/back.gif" />
<img src="data:images/next.gif" />
<img src="data:images/last.gif" />
<font>转到第
<input type="text" class="else"/>
页</font>
<img src="data:images/go.gif" />
</div>

<script type="text/javascript">
$(".inp2").click(function(){
var s=$(".inp").val();
$("tr").each(function(i,x){
if($(x).children().eq(1).text().indexOf(s)<0){
$(x).hide();
}else{$(x).show();}
});
});
$(function(){
$("#td").html("");
sele();
})
function sele(){
$.ajax({
type:"post",
url:"Customerstatus/ajxsel",
data:"",
dataType:"json",
success:function(data){
var html="";
$.each(data,function(i,v){
html+="<tr><td>"+v.id+"</td><td>"+v.customerstatus+"</td><td>"+v.customerdescription+"</td><td><img src='images/del.gif'/><span onclick='dele("+v.id+")'>删除</span></td></tr>"
})
$("#td").html(html);
}
})
}
function dele(v){
var r=confirm("是否确认删除?");
if(!r){return;}
$.ajax({
type:"post",
url:"Customerstatus/ajxdel",
data:{id:v},
dataType:"json",
success:function(data){
if(data.msg){
sele();
}
}
})
}
</script>

Customerstatustoadd.jsp页面

<script type="text/javascript" src="js/jquery-3.2.1.min.js" ></script>

<body>
<form id="asdasf">
<table>
<tr><td>
<span>请输入客户类型的详细信息</span>
</td></tr>
<tr><td>
<font>客户状态名称:</font>
<input type="text" name="name" class="a" />
</td></tr>
<tr><td>
<font>客户状态描述:</font>
<input type="text" name="description" class="a" />
</td></tr>
<tr><td>
<input type="button" value="提交" class="b" id="but"/>

<input type="button" value="返回" class="b"/>
</td></tr>
</table>

</form>
</body>
<script type="text/javascript">
$("#but").click(function(){
$.ajax({
type:"post",
url:"Customerstatus/ajxadd",
data:$("#asdasf").serialize(),
dateType:"json",
success: function(data){
window.location.href="customerstatus.jsp"
}
})
});

</script>

Customerstatus.java

protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

Connection connection = null;
String url = request.getServletPath();

if (url.contains("Customerstatus/ajxsel")) {
try {
connection = DButil.getConn();
String sql = "SELECT * FROM customerstatus";
PreparedStatement p = connection.prepareStatement(sql);
ResultSet set = p.executeQuery();
List<ProCustomerstatus> list = new ArrayList<ProCustomerstatus>();
while(set.next()){
ProCustomerstatus v = new ProCustomerstatus();
v.setId(set.getInt("id"));
v.setCustomerstatus(set.getString("customerstatus"));
v.setCustomerdescription(set.getString("customerdescription"));
list.add(v);
}
p.close();
DButil.cClose(connection);
System.out.println(JSONArray.fromObject(list));
response.setCharacterEncoding("utf-8");
response.getWriter().write(JSONArray.fromObject(list).toString());
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
else if (url.contains("Customerstatus/ajxdel")) {
int id = Integer.parseInt(request.getParameter("id"));
String sql = "DELETE FROM customerstatus WHERE id=?";
try {
connection = DButil.getConn();
PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setInt(1, id);
preparedStatement.execute();
preparedStatement.close();DButil.cClose(connection);
boolean msg = true;
String json = "{msg:"+msg+"}";
System.out.println(JSONObject.fromObject(json));
response.getWriter().write(JSONObject.fromObject(json).toString());
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
else if (url.contains("Customerstatus/ajxadd")) {
request.setCharacterEncoding("utf-8");
String name = request.getParameter("name");
String description =request.getParameter("description");
response.setContentType("text/html;charset=utf-8");
try {
connection = DButil.getConn();
String sql = "INSERT INTO customerstatus(customerstatus,customerdescription)VALUES(?,?)";
PreparedStatement p = connection.prepareStatement(sql);
p.setString(1, name);
p.setString(2, description);
p.execute();
p.close();
DButil.cClose(connection);
boolean b = true;
String json = "{b:"+b+"}";
System.out.println(JSONObject.fromObject(json).toString());
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}

AJAX增删查的更多相关文章

  1. 一套手写ajax加一般处理程序的增删查改

    倾述下感受:8天16次驳回.这个惨不忍睹. 好了不说了,说多了都是泪. 直接上代码 : 这个里面的字段我是用动软生成的,感觉自己手写哪些字段太浪费时间了,说多了都是泪 ajax.model层的代码: ...

  2. EasyUI的增删查改(后台ASP.NET)

    转自:http://www.cnblogs.com/dedeyi/archive/2013/04/22/3035057.html 某某人曾经跟我说,你们做系统不就是增删查改吗. 是啊,很多时候我们就是 ...

  3. ASP.NET动态的网页增删查改

    动态页面的增删查改,不多说了,直接上代码 跟前面的一般处理程序一样我上用的同一套三层,只是UI层的东西不一样,在纠结着要不要重新在上一次以前上过的代码: 纠结来纠结去,最后我觉得还上上吧,毕竟不上为我 ...

  4. knockout+MVC+webapi+sqlserver完成增删查改

    快过年了,公司的事情较少,想着开始学习点新东西.这段时间一个项目用到了mvc和webapi,然后一直对knockout比较感兴趣,就想着用这个框架做一个小实例.数据库采用的是sqlserver.话不多 ...

  5. JAVA原生mvc实现用户信息的增删查改

    笔者最近学完jsp和servlet,于是心血来潮的打算写个简单的用户案例 环境准备: 开发工具eclipse jdk-1.8.0_72 tomcat-9.0.5 前端部分: 1.自己手写了一套样式 2 ...

  6. 学习记录——使用PHP实现数据增删查改等基本功能(前后端分离)

    萌新初次学习服务器端语言,分享学习经验 实现功能:1.显示数据表    2.对数据进行分页    3.对数据进行增删查改 由于本萌新采用前后端完全分离方案,所以数据传输用的ajax,为了提高代码的复用 ...

  7. 6.在MVC中使用泛型仓储模式和依赖注入实现增删查改

    原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...

  8. 3.EF 6.0 Code-First实现增删查改

    原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-entity-framework-5-0-code- ...

  9. 4.在MVC中使用仓储模式进行增删查改

    原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-using-the-repository-pattern-in-mvc/ 系列目录: ...

随机推荐

  1. MySQL优化心得

    一打开科技类论坛,最常看到的文章主题就是MySQL性能优化了,为什么要优化呢? 因为: 数据库出现瓶颈,系统的吞吐量出现访问速度慢 随着应用程序的运行,数据库的中的数据会越来越多,处理时间变长 数据读 ...

  2. springboot 论坛项目

    项目演示地址:http://www.mawen.co/ 快速搭建sprintboot项目 运行第一个springboot项目 leaf package hello; import org.spring ...

  3. OpenVZ平台 Google BBR加速

    前言  一直以来用的都是搬瓦工的VPS,不得不说比国内那些大厂的性价比高得不知道哪里去了.  当做梯子来用的话搬瓦工年付19.9美元的方案就够用了,网上还有一些官方优惠码(折扣6%: BWH1ZBPV ...

  4. 基于Springboot后台,前台 vue.js 跨域 Activiti6 工作流(用到websocket技术) 的项目

    工作流模块----------------------------------------------------------------------------------------------- ...

  5. 百度音乐接口api

    百度音乐接口   百度音乐全接口 http://tingapi.ting.baidu.com/v1/restserver/ting 请求方式:GET 参数处理:format=json&calb ...

  6. Vue 表情输入组件,微信face表情组件

    VUE表情包输入组件,先来张成品图看看. 年底了没事干,把以前做过的项目中的组件拿出来再复习一下, 先说说思路吧. 注意: 1. 项目是用vue-cli3.0搭建起来的项目, 参考cli3.0官网地址 ...

  7. 15-Perl 格式化输出

    1.Perl 格式化输出Perl 是一个非常强大的文本数据处理语言.Perl 中可以使用 format 来定义一个模板,然后使用 write 按指定模板输出数据.Perl 格式化定义语法格式如下:fo ...

  8. Autofac通过配置的方式

    autofac是比较简单易用的IOC容器.下面我们展示如何通过json配置文件,来进行控制反转. 需要用到以下程序集.可以通过nugget分别安装 Microsoft.Extensions.Confi ...

  9. npm install 常用的几个参数

    npm install moduleName # 安装模块到项目目录下 npm install -g moduleName # -g 的意思是将模块安装到全局,具体安装到磁盘哪个位置,要看 npm c ...

  10. vue学习(5)-评论功能(利用父组件的方法)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...