jdbc操作数据库 and 一个商品管理页面

文章目录

  • 1. 介绍
    • 1.1 应用知识介绍
    • 1.2 项目介绍
  • 2. 文件目录
    • 2.1 目录
    • 2.2 介绍以下(从上到下)
  • 3. 相关代码
    • 3.1 DBConnection.java
    • 3.2 MysqlUtil.java
    • 3.3 AddServlet.java
    • 3.4 CommodityServlet.java
    • 3.5 DelectServlet.java
    • 3.6 SelectByIdServlet.java
    • 3.7 SelectServlet.java
    • 3.8 UpdataServlet.java
    • 3.9 style.css
    • 3.10 index.js
    • 3.11 jquery-3.7.1.min.js(略)
    • 3.12 index.html
  • 4. 效果展示
  • 5. 链接
  • 6. 思考

很丑,主要学习方法

1. 介绍

1.1 应用知识介绍

基础知识:mySQL,jbdc,JQuery,ajax

mySQL中对于表的增删改查
jQuery对于前端元素的获取
ajax传递数据和获取数据

1.2 项目介绍

是一个商品管理系统,需要自己先创建好一个表如图:
表
其中类型就不多说了。
前端交互界面设计:交互
对商品数据进行增删改查

2. 文件目录

2.1 目录

目录

2.2 介绍以下(从上到下)

DBConnection.java:用于连接数据库
MysqlUtil.java:操作数据库
AddServlet.java:增加商品
CommodityServlet.java:初始化时候进行查询
DelectServlet.java:删除数据库中的相关数据
SelectByIdServlet.java:通过id获取数据
SelectServlet.java:通过名字获取数据,用于查询
UpdataServlet.java:更新数据


style.css:样式
index.js:写js
jquery-3.7.1.min.js:引入jquery
index.html:写界面

3. 相关代码

3.1 DBConnection.java

package com.qcby.db;

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

public class DBConnection {

	public static void main(String[] args) {

	}

	String driver = "com.mysql.jdbc.Driver";
	String url = "jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC&useSSL=false";
	String user = "root";
	String password = "root";

	public Connection conn;

	public DBConnection() {

		try {
			Class.forName(driver);
			conn = (Connection) DriverManager.getConnection(url, user, password);//

			// if(!conn.isClosed())
			// System.out.println("Succeeded connecting to the Database!");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public void close() {
		try {
			this.conn.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

3.2 MysqlUtil.java

package com.qcby.db;

import java.rmi.StubNotFoundException;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MysqlUtil {

	public static void main(String[] args) {
		
//		String sqlcount = "select count(*) from admin";
//		String sql = "select * from admin";
//		String[] colums = {"id","account","password"};
//		String json = getJsonBySql(sqlcount, sql, colums);
//		System.out.println(json);
		
		/*String sql = "insert into t_student(name,age,sex) values(\"张三\",21,\"男\")";
        System.out.println(add(sql));*/
		
		
		/*String sqldel = "delete from gq_user where id=11";
        System.out.println(del(sqldel));*/

		/*
		 * String sqlupdate ="update user set age = 60 where name=\"you\"";
		 * System.out.println(update(sqlupdate));
		 */

		/*String sql = "select count(*) from gq_user";
		System.out.println(getCount(sql));*/
		
		/*String[] col = {"id","name","age"};
		String sql = "select * from t_student";
		String sqlCount = "select count(*) from t_student";
		String strJson = getJsonBySql(sqlCount,sql,col);
        System.out.println(strJson);*/
		
		/*String sqlcount = "select count(*) from gq_user";
		String sql="select * from gq_user";
		String[] col = {"username","age","id","sex","salary"};
		System.out.println(getJsonBySql(sqlcount, sql, col));*/

		/*
		 * String sql = "select * from user"; String[] column =
		 * {"id","name","age","entrydate"}; ArrayList<String[]> strings =
		 * MysqlUtil.showUtil(sql, column); for (String[] string : strings) {
		 * System.out.println(Arrays.toString(string)); }
		 */
	}
	/*添加*/
	public static int add(String sql) {
		// System.out.println("sql语句是:" + sql);
        int i=0;
        //数据库连接
        DBConnection db = new DBConnection();
        try {        
            PreparedStatement preStmt = (PreparedStatement) db.conn.prepareStatement(sql);
            i=preStmt.executeUpdate();
            preStmt.close();
            db.close();//关闭连接 
            System.out.println("数据插入成功,sql语句是:" + sql);
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println(i);
        return i;//返回影响的行数,1为执行成功;
    }



   /*修改数据*/
    public static int update(String sql) {
        int i =0;
        DBConnection db = new DBConnection();
        try {
            PreparedStatement preStmt = (PreparedStatement) db.conn.prepareStatement(sql);
            i = preStmt.executeUpdate();
            preStmt.close();
            db.close();
            System.out.println("数据更新成功,sql语句是:" + sql);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return i;
    }
    

    /*删除*/
    public static int del(String delstr) {
        int i=0;
        DBConnection db = new DBConnection();
        try {    
            PreparedStatement preStmt = (PreparedStatement) db.conn.prepareStatement(delstr);
            i=preStmt.executeUpdate();
            //executeUpdate()返回受影响的行数
            preStmt.close();
            db.close();
            System.out.println("数据删除成功,sql语句是:" + delstr);
        } catch (SQLException e){
            e.printStackTrace();
        }
        return i;
    }

    /*查询数量*/
    public static int getCount(String sql) {
        int sum = 0;
        DBConnection db = new DBConnection();
        try {
            Statement stmt = (Statement) db.conn.createStatement();
            ResultSet rs = (ResultSet) stmt.executeQuery(sql);
            while (rs.next()) {
                sum += rs.getInt(1);
            }
            rs.close();
            db.close();
        } catch (Exception e) {
            // TODO: handle exception
        }
        return sum;
    }

    /**
     *功能描述 查询json数据带数据总量
     * @author 郭帅
     * @date 2021-03-22 10:30
     * @param sqlcount 查询数量的sql
     * @param sql 查询具体数据的sql
     * @param colums 查询的字段
     * @return java.lang.String
     */
    public static String getJsonBySqlDataGrid( String sqlcount,String sql,String[] colums){
        int count = getCount(sqlcount);
        System.err.println("标红信息展示sql:" + sql);
        ArrayList<String[]>  result = new ArrayList<String[]>();
        DBConnection db = new DBConnection();
        try {
            Statement stmt = (Statement) db.conn.createStatement();
            ResultSet rs = (ResultSet) stmt.executeQuery(sql);
            while(rs.next()){
                String[] dataRow = new String[colums.length];
                for( int i = 0; i < dataRow.length; i++ ) {
                    dataRow[i] = rs.getString( colums[i] );
                }
                result.add(dataRow);
            }
            rs.close();
            db.close();//
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return listToJsonDataGrid(result,colums,count);
    }
    
    /**
     *功能描述 查询json数据
     * @author 郭帅
     * @date 2021-03-22 10:30
     * @param sql 查询具体数据的sql
     * @param colums 查询的字段
     * @return java.lang.String
     */
    public static String getJsonBySql( String sql,String[] colums){
       
        System.err.println("标红信息展示sql:" + sql);
        ArrayList<String[]>  result = new ArrayList<String[]>();
        DBConnection db = new DBConnection();
        try {
            Statement stmt = (Statement) db.conn.createStatement();
            ResultSet rs = (ResultSet) stmt.executeQuery(sql);
            while(rs.next()){
                String[] dataRow = new String[colums.length];
                for( int i = 0; i < dataRow.length; i++ ) {
                    dataRow[i] = rs.getString( colums[i] );
                }
                result.add(dataRow);
            }
            rs.close();
            db.close();//
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return listToJson(result,colums);
    }

    /**
     *功能描述 查询数据
     * @author 郭帅
     * @date 2021-03-22 10:38
     * @param sql 查询具体数据的sql
     * @param colums  查询的字段
     * @return java.util.ArrayList<java.lang.String[]>
     */
    public static ArrayList<String[]> showUtil( String sql, String[] colums){

        ArrayList<String[]>  result = new  ArrayList<String[]>();
        DBConnection db = new DBConnection();
        try {
            Statement stmt = (Statement) db.conn.createStatement();
            ResultSet rs = (ResultSet) stmt.executeQuery(sql);

            while(rs.next()){
                String[] dataRow = new String[colums.length];
                for( int i = 0; i < dataRow.length; i++ ) {
                    dataRow[i] = rs.getString( colums[i] );
                }
                result.add(dataRow);
            }
            rs.close();
            db.close();//
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return result;
    }

    /**
     * 转化为json数据字符串
     * @param
     * @return
     */
    public static String listToJsonDataGrid( ArrayList<String[]> list,String[] colums,int count) {

    	String jsonStr = "{\"code\":0,\"msg\":\"成功了\",\"count\":"+count+",\"data\":[";
    			for(int i = 0; i < list.size(); i++) {
    				String arr = "{";
    				for( int j = 0; j < list.get(0).length; j++) {
    					
    					if( list.get(i)[j] == null || "NULL".equals(list.get(i)[j])) {
    						arr += "\"" + colums[j] + "\":\"\"";
    					}else {
    						arr += "\"" + colums[j] + "\""+":" ;
    						arr +=  "\"" + list.get(i)[j].replace("\"","\\\"") + "\"";
    					}
    					
    					if( j < list.get(0).length - 1 ) {
    						arr += ",";
    					}
    				}
    				arr += "}";
    				if( i < list.size() - 1 ) {
						arr += ",";
					}
    				
    				jsonStr += arr;
    			}
    			jsonStr += "]}";
    	
    	return jsonStr;
    }
    
    /**
     * 转化为json数据字符串
     * @param
     * @return
     */
    public static String listToJson( ArrayList<String[]> list,String[] colums) {

    	String jsonStr = "{\"code\":0,\"msg\":\"成功了\",\"data\":[";
    			for(int i = 0; i < list.size(); i++) {
    				String arr = "{";
    				for( int j = 0; j < list.get(0).length; j++) {
    					
    					if( list.get(i)[j] == null || "NULL".equals(list.get(i)[j])) {
    						arr += "\"" + colums[j] + "\":\"\"";
    					}else {
    						arr += "\"" + colums[j] + "\""+":" ;
    						arr +=  "\"" + list.get(i)[j].replace("\"","\\\"") + "\"";
    					}
    					
    					if( j < list.get(0).length - 1 ) {
    						arr += ",";
    					}
    				}
    				arr += "}";
    				if( i < list.size() - 1 ) {
						arr += ",";
					}
    				
    				jsonStr += arr;
    			}
    			jsonStr += "]}";
    	
    	return jsonStr;
    }

}

3.3 AddServlet.java

package com.qcby.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.qcby.db.MysqlUtil;

/**
 * Servlet implementation class AddServlet
 */
@WebServlet("/add")
public class AddServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public AddServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.getWriter().append("Served at: ").append(request.getContextPath());
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.setCharacterEncoding("utf-8");
		request.setCharacterEncoding("utf-8");
		String name = request.getParameter("name");
		String number = request.getParameter("num");
		String price = request.getParameter("price");
		String sql = "insert into commodity(name, num, price) VALUES ('"+ name + "', " + number + ", "+ price + ");";
		int num = MysqlUtil.add(sql);
		response.getWriter().write(num + "");
	}
}

3.4 CommodityServlet.java

package com.qcby.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.qcby.db.MysqlUtil;

/**
 * Servlet implementation class CommodityServlet
 */
@WebServlet("/commodity")
public class CommodityServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public CommodityServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.setCharacterEncoding("utf-8");
		request.setCharacterEncoding("utf-8");
		//设置返回数据的格式
		response.setContentType("text/json;charset:utf-8");
		String sql = "select * from commodity";
		String[] column ={"id","name","num","price"};
		String res = MysqlUtil.getJsonBySql(sql, column);
		System.out.println(res);
		// 响应数据
		response.getWriter().write(res);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

3.5 DelectServlet.java

package com.qcby.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.qcby.db.MysqlUtil;

/**
 * Servlet implementation class DelectServlet
 */
@WebServlet("/del")
public class DelectServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public DelectServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.getWriter().append("Served at: ").append(request.getContextPath());
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		// 接受参数
		String id = request.getParameter("id");
		String sql = "delete from commodity where id = " + id;
		int num = MysqlUtil.del(sql);
		response.getWriter().write(num);
	}

}

3.6 SelectByIdServlet.java

package com.qcby.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.qcby.db.MysqlUtil;

/**
 * Servlet implementation class SelectByIdServlet
 */
@WebServlet("/selectById")
public class SelectByIdServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public SelectByIdServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.getWriter().append("Served at: ").append(request.getContextPath());
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		String id = request.getParameter("id");
		String sql = "select * from commodity where id ='" + id +"';";
		response.setCharacterEncoding("utf-8");
		request.setCharacterEncoding("utf-8");
		//设置返回数据的格式
		response.setContentType("text/json;charset:utf-8");
		String[] column ={"id","name","num","price"};
		String res = MysqlUtil.getJsonBySql(sql, column);
		System.out.println(res);
		// 响应数据
		response.getWriter().write(res);
	}

}

3.7 SelectServlet.java

package com.qcby.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.qcby.db.MysqlUtil;

/**
 * Servlet implementation class SelectServlet
 */
@WebServlet("/select")
public class SelectServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public SelectServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.getWriter().append("Served at: ").append(request.getContextPath());
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		String name = request.getParameter("name");
		String sql = "select * from commodity where name ='" + name +"';";
		response.setCharacterEncoding("utf-8");
		request.setCharacterEncoding("utf-8");
		//设置返回数据的格式
		response.setContentType("text/json;charset:utf-8");
		String[] column ={"id","name","num","price"};
		String res = MysqlUtil.getJsonBySql(sql, column);
		System.out.println(res);
		// 响应数据
		response.getWriter().write(res);
	}

}

3.8 UpdataServlet.java

package com.qcby.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.qcby.db.MysqlUtil;

/**
 * Servlet implementation class UpdataServlet
 */
@WebServlet("/updata")
public class UpdataServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public UpdataServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.getWriter().append("Served at: ").append(request.getContextPath());
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.setCharacterEncoding("utf-8");
		request.setCharacterEncoding("utf-8");
		String id = request.getParameter("id");
		String name = request.getParameter("name");
		String number = request.getParameter("num");
		String price = request.getParameter("price");
		String sql = "update commodity set  name = '" + name + "', num = "+ number +", price="+ price +" where id = " + id +";";
		int num = MysqlUtil.update(sql);
		response.getWriter().write(num + "");
	}

}

3.9 style.css

*{
    margin: 0;
    padding: 0;
}
@font-face {
    font-family: YUZ;
    src: url(./YXZ.ttf);
}
body{
	position: relative;
	padding-top: 100px;
}
#todo {
    width: 500px;
    min-width: 500px;
    padding: 5px;
    background:linear-gradient(red,blue);
    background:-moz-linear-gradient(left,#ace,#f96);
    background:-webkit-gradient(linear,0 50%,100% 50%,from(#ace),to(#f96));
    background:-webkit-linear-gradient(left,#ace,#f96);
    background:-o-linear-gradient(left,#ace,#f96);
    margin: auto;
    border-radius: 10px;
    border: solid 1px wheat;
}
#todo .cmmodityName{
	width: 50%;
    height:25px;
    line-height:30px;
    border-radius: 10px 10px 10px 10px;
    border: solid 1px rgb(255, 255, 255);
    margin-bottom: 10px;
    padding-left: 10px;
    font-size: 20px;
}

#todo .add, #todo .select{
    width: 15%;
    height:30px;
    line-height:30px;
    border-radius: 10px 10px 10px 10px;
    background-color: rgb(39, 160, 225);
    border: solid 1px rgb(255, 255, 255);
    margin-bottom: 10px;
}
#todo #add{
    width: 40%;
    border-radius: 0px 10px 10px 0px;
    background-color: rgb(39, 160, 225);
    border: 0;
    cursor: pointer;
    color: rgb(255, 255, 255);
}
#todoList{
    width: 100%;
    border-radius: 10px;
    overflow: hidden;
    color: white;
}
#todoList thead {
    background-color: rgb(39, 160, 225);
}
#todoList thead td:first-child {
    width: 20%;
    border-radius: 10px 0px 0px 0px;
}
#todoList thead td:last-child {
    border-radius: 0px 10px 0px 0px;
}
#todoList tr{
    width: 100%;
    height: 40px;
    text-align: center;
    color: rgb(51, 51, 51);
}
#todoList td{
    border: solid 1px white ; 
}
#todoList tr td input{
    width: 45px;
    height: 25px;
    line-height: 25px;
    font-family: Arial, Helvetica, sans-serif;
    background-color: #ace;
    border: solid 1px white;
    color: rgb(67, 67, 67);
}
#todoList tr td input:first-child{
    border-radius: 5px 0 0 5px;
}
#todoList tr td input:last-child{
    border-radius: 0 5px 5px 0;
    border-left: 0;
}
#add_div, #add_div2{
	position: absolute;
	top: 0;
    left: 0;
    background-color: rgba(255, 255, 255, 0.95);
    width: 100%;
    height: 100vh;
}
#add_div .add_div{
    margin: auto;
    padding: 5px;
    border: solid 2px #ac0f0f;
    border-radius: 3px;
    position: absolute;
    width: 20%;
    height: 20%;
    top: 40%;
    left: 40%;
}
#add_div .add_div input{
    height: 20px;
    width: 150px;
    padding-left: 5px;
}
#add_div2 .add_div{
    margin: auto;
    padding: 5px;
    border: solid 2px #ac0f0f;
    border-radius: 3px;
    position: absolute;
    width: 20%;
    height: 20%;
    top: 40%;
    left: 40%;
}
#add_div2 .add_div tr th{
    width: 100px;
    height: 30px;
}
#add_div2 .add_div span{
    height: 20px;
    width: 100px;
    padding-left: 5px;
}
#add_div2 .add_div input{
    height: 20px;
    width: 200px;
}

3.10 index.js

// 初始化
$.ajax({
	url:"commodity",
	type: "get",
	success:function(value){
		console.log(value);
		var arr = value.data;
		for(let i = 0 ; i < arr.length; i ++){
			$("#one").append("<tr>" + 
				"<td>" + arr[i].name +"</td>"+
				"<td>" + arr[i].num +"</td>"+
				"<td>" + arr[i].price +"</td>"+
                "<td>" + "<input type=\"button\" value=\"修改\" class=\"reUpdata\" index = \"" + arr[i].id + "\">" + 
    			"<input type=\"button\" class = \"del\" value=\"删除\" index = \""+ arr[i].id +"\">" + "</td>")
		}
	},
	error:function(){
		alert("失败了!!");
	}
})
// 删除
$("tbody").on("click",".del", function(){
	var id = $(this).attr("index");
	$.ajax({
		url:"del",
		type:"post",
		data:{
			id
		},
		success:function(value){
			location.reload();
		},
		error: function(){
			alert("失败了!!");
		}
	})
})
var flag = 1;
// 点击添加
$(".add").on("click",function(){
	$("#add_div").css("display","block");
	$(".name").val("");
	$(".num").val("");
	$(".price").val("");
	$(".upData").val("添加商品");
	flag = 1;
})
// 点击取消
$(".back").on("click", function(){
	$("#add_div").css("display","none");
})
// 取消查找
$(".back2").on("click", function(){
	$("#add_div2").css("display","none");
})
// 点击查找
$(".select").on("click",function(){
	var name = $(".cmmodityName").val();
	if(name==""){
		alert("输入正确的格式!!!");
		return;
	}
	$.ajax({
		url:"select",
		type:"post",
		data:{
			name
		},
		success:function(value){
			if(value.data.length == 0){
				alert("不存在该物品");
				return;
			}
			var arr = value.data[0];
			$(".Cname").text(arr.name);
			$(".Cnum").text(arr.num);
			$(".Cprice").text(arr.price);
			$("#add_div2").css("display","block");
		},
		error:function(){
			alert("不存在该物品");
		}
	});
	
})
// 点击第二个添加,更新数据
$(".upData").on("click", function(){
	// 是1,就是添加
	if(flag ==1){
		var name = $(".name").val();
		var num = $(".num").val();
		var price = $(".price").val();
		$.ajax({
			url:"add",
			type:"post",
			data:{
				name,num,price
			},
			success:function(value){
				console.log(value);
				if(value=="0"){
					alert("请输入正确格式!!!");
				}else{
					location.reload();
					alert("添加成功!!!");
				}
			},
			error:function(){
				alert("失败了")
			}
		})
	}else{
		var id = $(".Cid").val();
		var name = $(".name").val();
		var num = $(".num").val();
		var price = $(".price").val();
		$.ajax({
			url:"updata",
			type:"post",
			data:{
				id, name, num, price
			},
			success:function(value){
				console.log(value);
				if(value=="0"){
					alert("请输入正确格式!!!");
				}else{
					location.reload();
					alert("修改成功!!!")
				}
			},
			error:function(){
				alert("失败了");
			}
		})
	}
})
// 点击修改
$("tbody").on("click",".reUpdata", function(){
	$("#add_div").css("display","block");
	id = $(this).attr("index");
	$.ajax({
		url:"selectById",
		type:"post",
		data:{
			id
		},
		success:function(value){
			flag = 0;
			var arr = value.data[0];
			$(".Cid").val(arr.id);
			$(".name").val(arr.name);
			$(".num").val(arr.num);
			$(".price").val(arr.price);
			$(".upData").val("修改");
		},
		error: function(){
			alert("失败了!!");
		}
	})
})

3.11 jquery-3.7.1.min.js(略)

3.12 index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title></title>
    <link rel="stylesheet" href="css/style.css">
    <script src="js/jquery-3.7.1.min.js"></script>
    <script src="js/index.js" defer></script>
</head>
<body>
    <!-- <div>demo</div>
    <a href="test">你好</a> -->
    <div id="todo">
    商品名称:<input type="text" class="cmmodityName"><input type="button"  class="select" value="查找"><input type="button"  class="add" value="添加">
        <table id="todoList" cellpadding="0" cellspacing="0" >
            <thead>
                <td>商品名字</td>
                <td>数量</td>
                <td>价格</td>
                <td>操作</td>
            </thead>
            <tbody id ="one">
                
            </tbody>
        </table>
    </div>
    <div id="add_div" style="display:none">
        <table class="add_div">
            <tr>
                <th>商品名称:</th>
                <th><input type="text" class="name"></th>
            </tr>
            <tr>
                <th>商品数量:</th>
                <th><input type="text" class="num"></th>
            </tr>
            <tr>
                <th>商品价格:</th>
                <th><input type="text" class="price"></th>
            </tr>
            <tr>
                <th> <input type="button" value="添加" class="upData"></th>
                <th><input type="button" value="取消" class="back"></th>
            </tr>
        </table>
    </div>
    <div id="add_div2" style="display:none">
        <span class="Cid" style="display:none">1</span>
        <table class="add_div">
            <tr>
                <th>商品名称:</th>
                <th><span class="Cname">XXX</span></th>
            </tr>
            <tr>
                <th>商品数量:</th>
                <th><span class="Cnum">XXX</span></th>
            </tr>
            <tr>
                <th>商品价格:</th>
                <th><span class="Cprice">XXX</span></th>
            </tr>
            <tr>
                <th colspan="2"><input type="button" value="取消" class="back2"></th>
            </tr>
        </table>
    </div>
    
    
</body>
</html>

4. 效果展示

查找不存在的物品:
查找1
查找成功:
查找2
点击添加:
在这里插入图片描述

添加成功:
在这里插入图片描述
在这里插入图片描述

添加失败:
在这里插入图片描述

点击删除就直接没了

点击修改:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5. 链接

javaWeb项目创建

史上最全MySQL基本操作(这一篇就够用了!!!)

6. 思考

目前还是不完美的,当添加商品时,商品已经存在表里,仍然能添加上,就交给你去修改了。(因为我比较懒。。。。)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/567195.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Springboot 结合PDF上传到OSS

目录 一、首先注册阿里云OSS&#xff08;新用户免费使用3个月&#xff09; 二、步骤 2.1 将pdf模板上传到oos 2.2 这里有pdf地址,将读写权限设置为共工读 ​编辑 三、代码 3.1 pom.xml 3.2 配置文件 3.3 oss model 3.4 配置类(不需要修改) 3.5 将配置类放入ioc容器 3.…

【C++】:构造函数和析构函数

目录 前言一&#xff0c;构造函数**1.1 什么是构造函数****1.2 构造函数的特性**1.3 总结 二&#xff0c;析构函数**2.1 什么是析构函数****2.2 析构函数的特性****2.3 总结** 前言 如果一个类中什么成员都没有&#xff0c;简称为空类。 空类中真的什么都没有吗&#xff1f;并…

JetBrains PhpStorm v2024.1 安装教程 (PHP集成开发IDE)

前言 PhpStorm是由JetBrains推出的一款轻量级集成开发环境&#xff0c;专为PHP开发者而设计。该软件融合了智能的HTML/CSS/JavaScript/PHP编辑器、代码质量分析工具、版本控制系统集成&#xff08;包括SVN和GIT&#xff09;、调试和测试等功能。除此之外&#xff0c;PhpStorm还…

画图的神器及必备的调色和选图工具

大学生研究生论文写作及画图的神器 前言常用的工具集合画图工具配色参考画图神器词云 最后下篇 前言 好久没有更博&#xff0c;来更一下吧。最近刚好被问到平常是用什么来画图的&#xff0c;包括会议论文&#xff0c;各种类型的PPT汇报以及项目报告等等里面的图怎么画好。所以…

CSS动画(css、js动画库:各种动画效果)

第一种方法&#xff1a;文字从上到下显示动画&#xff1b; <div class"text-container"><div class"text">文字从上到下显示</div></div><style scoped> /*确保 keyframes 规则在引用它的任何选择器之前定义&#xff0c;以避…

Linux服务器网络问题排查思路

服务器网络问题排查 一.测试是否能ping通其他服务器 ping <其他电脑的IP>如图是网段互通的情况 如图是不互通的情况 该命令是最常用的命令&#xff0c;主要功能如下&#xff1a; 网络连通性&#xff1a; ping 用于检查两台主机之间是否可以相互通信。如果目标主机可达…

DB索引B+树SQL优化

数据库的索引就像一本书的目录&#xff0c;查数据快人一步&#xff0c;快速定位&#xff0c;精准打击&#xff01; 什么是数据库的索引&#xff1f; 官方介绍索引是帮助MySQL高效获取数据的数据结构。更通俗的说&#xff0c;数据库索引好比是一本书前面的目录&#xff0c;能加…

invidia-smi占用显存,无法显示PID

如果是动用了子线程创建进程&#xff0c;比如利用accelerate训练脚本&#xff0c;那么大概率可以通过这种方式解决&#xff1a;nvidia-smi没有进程&#xff0c;但是显存占用_nvidia-smi有的卡是0%-CSDN博客 如果这种方法不可用&#xff0c;请尝试直接查询所有python进程&#x…

BI建设案例:FineBI大数据分析平台助力工程机械行业降本增效

工程机械行业作为国民经济的重要支柱&#xff0c;产品多样化、应用广泛&#xff0c;市场集中度高。其上游涉及原材料和核心零部件&#xff0c;下游则与房地产、基建工程和采矿等行业紧密相连。 如今&#xff0c;中国已崛起为全球工程机械制造大国&#xff0c;各类机械产品产量…

关于MCU核心板的一些常见问题

BGA植球与焊接&#xff08;多涂焊油&#xff09;&#xff1a; 【BGA芯片是真麻烦&#xff0c;主要是植锡珠太麻烦了&#xff0c;拆一次就得重新植】https://www.bilibili.com/video/BV1vW4y1w7oNvd_source3cc3c07b09206097d0d8b0aefdf07958 / NC电容一般有两种含义&#xff1…

Rust Tracing 入门

Tracing 是一个强大的工具&#xff0c;开发人员可以使用它来了解代码的行为、识别性能瓶颈和调试问题。 Rust 是一种以其性能和安全保证而闻名的语言&#xff0c;在它的世界中&#xff0c;跟踪在确保应用程序平稳高效运行方面发挥着至关重要的作用。 在本文中探讨Tracing 的概…

数据结构之顺序表的实现(C语言版)

Hello, 大家好&#xff0c;我是一代&#xff0c;今天给大家带来有关顺序表的有关知识 所属专栏&#xff1a;数据结构 创作不易&#xff0c;望得到各位佬们的互三呦 一.前言 1.首先在讲顺序表之前我们先来了解什么是数据结构 数据结构是由“数据”和“结构”两词组合⽽来。 什…

安全特低电压 SELV(Safety Extra Low Voltage,缩写SELV) 是不接地系统的安全特低电压

SELV LED驱动器 市场上有很多LED灯是非隔离的&#xff0c;甚至还有灯条要100多伏特电压才能点亮的&#xff0c;安全吗&#xff1f; 国外多数LED驱动器标注了SELV&#xff0c;为什么&#xff1f; 安全特低电压 SELV(Safety Extra Low Voltage&#xff0c;缩写SELV) 是不接地系…

谈谈前端CSS盒模型

前言&#xff1a; 什么是CSS盒模型&#xff1f;盒模型的构造&#xff1f; 在前端开发中&#xff0c;CSS 盒模型是一种非常基础且核心的概念&#xff0c;它描述了文档中的每个元素被框架处理的方式。 ---- 打开浏览器开发者工具&#xff0c;查看Elements右侧下的Styles底部。 …

上手GitHub Copilot让AI写代码,效率飞起!

1 GitHub Copilot介绍 GitHub Copilot 由 GitHub 和 OpenAI 共同开发的人工智能代码辅助工具&#xff0c;可自动地生成高质量代码片段、上下文信息等。通过自然语言处理和机器学习技术&#xff0c;通过分析程序员编写的代码、注释和上下文信息&#xff0c;自动生成代码&#x…

【JAVA】UDP与TCP套接字编程

目录 一、UDP数据报套接字编程 1、DatagramSocket API 2、DatagramPacket API 3、InetSocketAddress API 4、示例一 5、示例二 二、TCP流套接字编程 1、ServerSocket API 2、Socket API 3、TCP中的长短连接 4、示例一 5、示例二 一、UDP数据报套接字编程 1、Datag…

山岭隧道及道路3D建模教程【Blender】

创建具有恒定坡度的山路、隧道的信息和技术似乎散布在互联网上。 在这篇文章中&#xff0c;我将它们全部收集在一起。 这篇文章的大纲如下&#xff1a; 创建一座山创建一条路挖一条隧道 道路的坡度将固定为常数&#xff0c;从而消除颠簸。 NSDT工具推荐&#xff1a; Three.j…

yolo-驾驶行为监测:驾驶分心检测-抽烟打电话检测

在现代交通环境中&#xff0c;随着汽车技术的不断进步和智能驾驶辅助系统的普及&#xff0c;驾驶安全成为了公众关注的焦点之一 。 分心驾驶&#xff0c;尤其是抽烟、打电话等行为&#xff0c;是导致交通事故频发的重要因素。为了解决这一问题&#xff0c;研究人员和工程师们…

Nginx目录浏览

类似 在nginx的配置文件中的server内配置&#xff0c;想给哪个网站开启&#xff0c;就在该网站的server中配置 server {listen 81;server_name localhost;autoindex on; # 开启目录浏览功能。autoindex_exact_size off; # 显示文件大小的时候带单位location / {root …

美国站群服务器的SEO优化策略助力提升网站流量?

美国站群服务器的SEO优化策略助力提升网站流量? 在当今数字化时代&#xff0c;网站的成功与否与其在搜索引擎结果页面上的排名密切相关。对于那些利用美国站群服务器运营多个网站的企业来说&#xff0c;通过SEO优化策略提升网站流量成为了至关重要的任务。然而&#xff0c;要…