Jsp+Ajax+Servlet+Mysql实现增删改查(一)

引言:我们通常在java  web开发中,通常使用表单提交,这种提交方式比较简单,但是如果我们想添加或者删除后提示一条添加成功,或者删除成功该如何实现呢,这个时候就需要ajax进行校验了。ajax提交form表单的好处就是可以得到一个返回值,那么服务端servlet如何回应一个字符串给ajax呢,这是个难点。本章节一我们演示增加记录,稍后的会逐步添加上。


1、实体类:

package edu.jmi.model;

import java.io.Serializable;
import java.sql.Date;

public class Admin implements Serializable{
    
    @Override
    public String toString() {
        return "Admin [id=" + id + ", username=" + username + ", password=" + password + ", creatTime=" + createTime
                + ", status=" + status + "]";
    }
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    
    public Integer getStatus() {
        return status;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }
    private Integer id;
    private String username;
    private String password;
    private Date createTime;
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    private Integer status;
    

}


2、数据库连接

package edu.jmi.util;

import java.sql.Connection;
import java.sql.DriverManager;


public class DBUtils {
    final static String DRIVER="com.mysql.jdbc.Driver";
    final static String URL="jdbc:mysql://localhost:3306/meal?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull";
    final static String USER="root";
    final static String PASSWORD="123456";
    public static Connection getConnection(){
        try{
            Class.forName(DRIVER);
            Connection connection=DriverManager.getConnection(URL,USER,PASSWORD);
            System.out.println("连接成功数据库");
            return connection;
        }catch(Exception e){
            e.printStackTrace();
            return null;
        }
    }
    
    public static void closeConnection(Connection con){
        try{
            con.close();
        }catch(Exception e){
            e.printStackTrace();
        }
    } 
    
    public static void main(String[] args){
        DBUtils db=new DBUtils();
        DBUtils.getConnection();
        //System.out.print(c);
    }


}
 


3、Dao层

public boolean insert(Admin admin){
            Connection c=null;
            try{
                c=DBUtils.getConnection();
                String sql="insert into admin(username,password,createTime,status) values (?,?,?,?)";
                PreparedStatement pst=c.prepareStatement(sql);
                pst.setString(1,admin.getUsername());
                pst.setString(2, admin.getPassword());
                pst.setString(3,String.valueOf(admin.getCreateTime()));
                pst.setInt(4, admin.getStatus());
            
                pst.execute();
                return true;
            }catch(Exception e){
                e.printStackTrace();
                return false;
            }finally{
                DBUtils.closeConnection(c);
            }
            
        }
    


4、表单       

<form id="addForm" method="post" onSubmit="return add(this)">
                    <input class="form-control" name="username" type="text" placeholder="Enter full UserName">
                    <input class="form-control " name="password" type="text" placeholder="Enter full PassWord">       
                  <input  type="date" class="form-control "  name="createTime" />
                  <button class="btn btn-primary" id="addButton">OK</button>
              </form>


5、js部分,记得引入jiquery的jar包

<script type="text/javascript">
      function add(form){
            if(form.username.value==""){
                alert("管理员用户名不能为空");
                form.username.focus();
                return false;
            }
            if(form.password.value==""){
                alert("管理员密码不能为空");
                form.password.focus();
                return false;
            }
  
  } 

$(document).ready(function(){
      $("#addButton").click(function(){
          $.ajax({
                type: "post",
                url: "<%=path %>/AdminServlet?method=insertAdmin",
                data: $("#addForm").serialize(),
                dataType:'json',
                success: function(data){
                    console.log(data.type);
                    console.log(data.status);
                    if(data.type =="ok"){
                        alert("插入成功");
                        window.location.href="<%=path%>/LoginServlet?method=FindAllAct";
                  
                    } else{
                        alert("插入失败");
                    }
                }
            }); 
        });

  });

</script>


3、服务端servlet

private void insert(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");

AdminDao adminDao=new AdminDao();
        Map<String, String> ret=new HashMap<String, String>();
        String uname=request.getParameter("username");
        String pwd=request.getParameter("password");
        
        Date createTime=Date.valueOf(request.getParameter("createTime"));
        
        Admin admin=new Admin();
        admin.setUsername(uname);
        admin.setPassword(pwd);
        admin.setStatus(1);
        admin.setCreateTime(createTime);
        boolean b=adminDao.insert(admin);
        System.out.println(b);
        if(b==true){
            ret.put("type", "ok");
          response.getWriter().write(JSONObject.toJSONString(ret));
            return;
        }else{
            response.sendRedirect("/WEB-INF/views/admin/addAdmin.jsp");
        }
    }


6、效果图

 

 

 

ajax发出请求执行增加记录的数据,服务端通过response.getWriter.wirte(JSONobject.toJSONString(ret);返回一个OK,成功之后在执行刷新页面的servlet,

package shoppingcart.biz; import java.util.HashMap; import java.util.Iterator; import java.util.Map; /** * 购物车 */ public class ShoppingCart { private Map cartMap = null; //保存Product的Map /** * 购物车构造函数 */ public ShoppingCart(){ cartMap = new HashMap(); } /** * 取得存放产品的cartMap */ public Map getCartMap(){ return this.cartMap; } /** * 向购物车中添加产品 */ public boolean addProduct(String productId){ if(existProduct(productId)){ // 产品已存在则增加数量 Product product = cartMap.get(productId); product.setProductNum(product.getProductNum() + 1); return true; } else{ // 否则新加入该产品 Product product = new Product(productId); if(product.getProductId()==null){ return false; // 数据库中无该产品 }else{ cartMap.put(productId, product); return false; } } } /** * 检查购物车里是否已存在该产品 */ public boolean existProduct(String productId){ Iterator hmkey = cartMap.keySet().iterator(); while(hmkey.hasNext()){ String pid = hmkey.next(); if(pid.equals(productId)){ return true; } } return false; } /** * 从购物车中移除指定产品 */ public void delProduct(String productId){ cartMap.remove(productId); } /** * 获取购物车产品数量 */ public int getProductNum(){ int productNum = 0; Iterator hmEntry = cartMap.values().iterator(); while(hmEntry.hasNext()){ productNum += hmEntry.next().getProductNum(); } return productNum; } /** * 统计购物车商品总价 */ public double getTotalprice(){ double totalPrice = 0.0; Iterator hmkey = cartMap.keySet().iterator(); Product product = null; while(hmkey.hasNext()){ product = cartMap.get(hmkey.next()); totalPrice += product.getProductPirce() * product.getProductNum(); } return totalPrice; } /** * 清空购物车 */ public void clearCart(){ cartMap.clear(); } }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

源码客栈-逍遥游

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值