AJAX增删查
数据库
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增删查的更多相关文章
- 一套手写ajax加一般处理程序的增删查改
倾述下感受:8天16次驳回.这个惨不忍睹. 好了不说了,说多了都是泪. 直接上代码 : 这个里面的字段我是用动软生成的,感觉自己手写哪些字段太浪费时间了,说多了都是泪 ajax.model层的代码: ...
- EasyUI的增删查改(后台ASP.NET)
转自:http://www.cnblogs.com/dedeyi/archive/2013/04/22/3035057.html 某某人曾经跟我说,你们做系统不就是增删查改吗. 是啊,很多时候我们就是 ...
- ASP.NET动态的网页增删查改
动态页面的增删查改,不多说了,直接上代码 跟前面的一般处理程序一样我上用的同一套三层,只是UI层的东西不一样,在纠结着要不要重新在上一次以前上过的代码: 纠结来纠结去,最后我觉得还上上吧,毕竟不上为我 ...
- knockout+MVC+webapi+sqlserver完成增删查改
快过年了,公司的事情较少,想着开始学习点新东西.这段时间一个项目用到了mvc和webapi,然后一直对knockout比较感兴趣,就想着用这个框架做一个小实例.数据库采用的是sqlserver.话不多 ...
- JAVA原生mvc实现用户信息的增删查改
笔者最近学完jsp和servlet,于是心血来潮的打算写个简单的用户案例 环境准备: 开发工具eclipse jdk-1.8.0_72 tomcat-9.0.5 前端部分: 1.自己手写了一套样式 2 ...
- 学习记录——使用PHP实现数据增删查改等基本功能(前后端分离)
萌新初次学习服务器端语言,分享学习经验 实现功能:1.显示数据表 2.对数据进行分页 3.对数据进行增删查改 由于本萌新采用前后端完全分离方案,所以数据传输用的ajax,为了提高代码的复用 ...
- 6.在MVC中使用泛型仓储模式和依赖注入实现增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...
- 3.EF 6.0 Code-First实现增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-entity-framework-5-0-code- ...
- 4.在MVC中使用仓储模式进行增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-using-the-repository-pattern-in-mvc/ 系列目录: ...
随机推荐
- 关于Dev-c++运行时与Windows不兼容问题
问题描述. 解决方案 1.鼠标右键点击图标,进入属性. 2.点击上方的兼容性. 3.在兼容模式中勾选以兼容模式运行这个程序并选择windows7. 4.再点击以管理员身份运行此程序. 5.点击应用. ...
- 啃掉Hadoop系列笔记(03)-Hadoop运行模式之本地模式
Hadoop的本地模式为Hadoop的默认模式,不需要启用单独进程,直接可以运行,测试和开发时使用. 在<啃掉Hadoop系列笔记(02)-Hadoop运行环境搭建>中若环境搭建成功,则直 ...
- 【LOJ】#3043. 「ZJOI2019」线段树
LOJ#3043. 「ZJOI2019」线段树 计数转期望的一道好题-- 每个点设两个变量\(p,q\)表示这个点有\(p\)的概率有标记,有\(q\)的概率到祖先的路径上有个标记 被覆盖的点$0.5 ...
- tp5定时任务
第一步: a.App/模块/ 下创建command文件夹 b.我这边是创建在crontab模块里面,在command文件夹下创建一个Task.php文件(具体名字自己根据需求定) c.复制下面的代码到 ...
- 老贾的幸福生活day 04
变量 变量名的规则: 变量名由字母,数字,下划线组成 变量名不能以数字开头 变量名要具有可描述性 变量名要区分大小写 变量名禁止使用python关键字 变量名不能使用中文和拼音 变量名推荐写法: 驼峰 ...
- MySQL 事务、视图、索引
一.事务(Transaction) 1.1 什么是事务? SQL中,事务是指将一系列数据操作捆绑成为一个整体进行统一管理. 如果一个事务执行成功,该事务中进行的所有数据均会提交,称为数据库中的永久组成 ...
- How to enable remote connections to SQL Server
<img src="https://miro.medium.com/max/1400/1*18lrHvJ8YtADJDT7hxIThA.jpeg" class="g ...
- squoosh
谷歌在线压缩图片
- luogu P4688 [Ynoi2016]掉进兔子洞
luogu 我们要求的答案应该是三个区间长度\(-3*\)在三个区间中都出现过的数个数 先考虑数列中没有相同的数怎么做,那就是对三个区间求交,然后交集大小就是要求的那个个数.现在有相同的数,考虑给区间 ...
- JavaScript中变量声明效率问题
1 var theString1 = "字符串1"; var theString2 = "字符串1"; var theString3 = "字符串1& ...