数据库

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. 语言I博客作业04

    问题 答案 这个作业属于哪个课程 C语言程序设计II 这个作业的要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-3/homework/9771 我 ...

  2. 【转帖】Linux的桌面环境gnome、kde、xfce、lxde 等等使用比较

    Linux的桌面环境gnome.kde.xfce.lxde 等等使用比较 https://www.cnblogs.com/chenmingjun/p/8506995.html 文章目录 图形界面架起用 ...

  3. /tmp/orbit-oracle/目录inode耗尽

    [root@iZ25zpeock2Z orbit-oracle]# cd /[root@iZ25zpeock2Z /]# du -cks * |sort -nr|head -n 20du: canno ...

  4. Oracle的查询-条件表达式

    给emp表中员工起中文名 select e.ename from emp e; select e.ename, case e.ename when 'SMITH' then '曹贼' when 'AL ...

  5. SpringBoot集成MybatisPlus报错

    SpringBoot集成MybatisPlus报错 启动的时候总是报如下错误: java.lang.annotation.AnnotationFormatError: Invalid default: ...

  6. PHP以table形式导出数据表实现单元格内换行

    <br style='mso-data-placement:same-cell;'>

  7. python-day6(正式学习)

    流程控制之while循环 语法 循环就是一个重复的过程,人需要重复做某项工作,那么计算机也一样.当ATM验证失败,那么计算机就会让我们再输入一次密码.这时候我们说的循环就是while循环,while循 ...

  8. LeetCode面试常见100题( TOP 100 Liked Questions)

    LeetCode面试常见100题( TOP 100 Liked Questions) 置顶 2018年07月16日 11:25:22 lanyu_01 阅读数 9704更多 分类专栏: 面试编程题真题 ...

  9. gflags 编译动态库

    gflags 编译动态库 这里涉及到gflags的安装,原来使用 sudo apt-get install libgflags-dev 但是后面有人在环境中下载安装了libgflags的安装包,解压后 ...

  10. Git——文件初始化及设置签名

    1. 本地库初始化 命令: git init 效果: