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 stubresponse.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 stubresponse.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 stubresponse.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 stubdoGet(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 stubresponse.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 stubresponse.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 stubString 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 stubresponse.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 stubString 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 stubresponse.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 stubresponse.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. 思考

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

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

解线性方程组——(Jacobi)雅克比迭代法 | 北太天元

一、Jacobi迭代法 n 3 n3 n3 , 阶数为 3 时 A ( a 11 a 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33 ) , b ( b 1 b 2 b 3 ) , A\begin{pmatrix} a_{11} & a_{12} &a_{13}\\ a_{21} & a_{22} &a_{23}\\ a_{31} & a_{32} &a_{33}\\ \end{pmatrix} ,\qua…

广东海洋大学成功部署(泰迪智能科技)大数据人工智能实验室建设

广东海洋大学简称广东海大&#xff0c;坐落于广东省湛江市&#xff0c;是国家海洋局与广东省人民政府共建的省属重点建设大学、广东省高水平大学重点学科建设高校、粤港澳高校联盟成员 &#xff0c;入选卓越农林人才教育培养计划&#xff0c;是教育部本科教学水平评估优秀院校。…

vuex中mutations和actions 异步同步实现方法

一 mutations 和 actions 优缺点及使用场景 同步性&#xff1a; Mutations是同步的&#xff0c;这意味着它们会在提交后立即执行。而Actions是异步的&#xff0c;提交后会被排队&#xff0c;在稍后执行。 用途&#xff1a; Mutations适用于简单的状态修改&#xff0c;如递增/…

【Java基础】压测工具JMeter使用简介

1. JMeter介绍 Apache JMeter是一个基于Java开发的开源性能测试工具&#xff0c;由Apache软件基金会维护 JMeter最初设计用于Web应用测试&#xff0c;但它的功能已经扩展到其他测试领域。JMeter可以用于测试静态和动态资源&#xff0c;如静态文件、Java小服务程序、CGI脚本、J…

力扣HOT100 - 543. 二叉树的直径

解题思路&#xff1a; class Solution {int ans;//记录节点数public int diameterOfBinaryTree(TreeNode root) {ans 1;depth(root);return ans - 1;//节点数减 1 就是路径长度}public int depth(TreeNode root) {if (root null) return 0;int l depth(root.left);int r de…

中红医疗:纷享销客CRM系统如何助力​数字化“狂飙”

纷享销客深耕 CRM 多年&#xff0c;可以顺畅打通 CRM 和 ERP 系统客户资源池&#xff0c;将金蝶苍穹平台的物料、产品基础主数据作为档案同步到纷享销客&#xff0c;以便商务维护好产品及库存。 纷享销客通过成熟的集成方案提高系统耦合性&#xff0c;让销售实时获得新产品及营…

123.Mit6.S081-实验1-Xv6 and Unix utilities

今天我们来进行Mit6.S081实验一的内容。 实验任务 一、启动xv6(难度&#xff1a;Easy) 获取实验室的xv6源代码并切换到util分支。 $ git clone git://g.csail.mit.edu/xv6-labs-2020 Cloning into xv6-labs-2020... ... $ cd xv6-labs-2020 $ git checkout util Branch util …

uniapp微信小程序(商城项目)

最近&#xff0c;闲来无事&#xff0c;打算学一下uniapp小程序 于是在跟着某站上学着做了一个小程序&#xff0c;主要是为了学uniapp和vue。某站黑马优购 完成的功能主要有&#xff1a;首页、搜索、分类和购物车。 有人问了为什么没有登录、和添加订单呢&#xff1f;问的很好…

linux负载均衡 和 系统负载分析笔记

1 负载均衡 1.1 计算负载 1.1.1 PELT算法简介 从Linux3.8内核以后进程的负载计算不仅考虑权重&#xff0c;⽽且跟踪每个调度实体的历史负载情况&#xff0c;该算法称为PELT(Per-entity Load Tracking) 《奔跑吧Linux内核》卷1&#xff1a;基础架构&#xff1b;P505 相关资料…

kubectl常用命令行介绍

1、kubectl用法概述 kubectl命令⾏的语法如下&#xff1a; $ kubectl [command] [type] [name] [flags] command&#xff1a;命令&#xff0c;用于操作Kubernetes集群资源对象的命令&#xff0c;例如create、delete、describe、get、apply等TYPE&#xff1a;资源对象的类型&am…

婴儿洗衣机全自动哪个好?推荐四款实惠耐用的婴儿洗衣机

婴儿的衣物对于卫生要求需要高一些&#xff0c;其抵抗力是比较弱的&#xff0c;再加上普通洗衣机无法对婴儿的衣物进行有效的消毒处理&#xff0c;轻则会对婴儿的健康造成威胁&#xff0c;重则会导致皮肤病的发生。因此&#xff0c;一台可以对衣物进行高温除菌的婴儿洗衣机非常…

运营高手都在用的9款办公软件!一定要收藏

最近&#xff0c;运营群里的00后天天都在搞新花样&#xff0c;每天都有新的idea&#xff0c;各种跟热点、做品牌联名、拍好玩的视频、做创意海报……。但奇怪的是&#xff0c;工作量增加了、业绩增长了&#xff0c;却不见有人加班。一问&#xff0c;原来因为用上了办公神器啊&a…

数据结构(C):时间复杂度和空间复杂度

目录 &#x1f680; 0.前言 &#x1f680; 1.为何会有时间复杂度和空间复杂度的概念 &#x1f680; 2.时间复杂度 2.1初步时间复杂度 2.2大O表示法 2.2.1.O&#xff08;N*N&#xff09; 2.2.2.O&#xff08;N&#xff09; 2.2.3.O&#xff08;1&#xff09; 2.3最坏情况…

揭秘分销系统:商业模式的新风向

大家好&#xff0c;我是微三云周丽&#xff0c;今天给大家分析当下市场比较火爆的商业模式&#xff01; 小编今天跟大伙们分享什么是分销系统&#xff1f; 在数字化浪潮席卷全球的今天&#xff0c;电子商务以其独特的优势&#xff0c;正在重塑商业世界的格局。其中&#xff0…

大模型产业盛典上石景山智能算力中心绽放新光芒

2024年4月16日&#xff0c;由中关村数智人工智能产业联盟主办的“2024人工智能大模型产业发展大会”圆满闭幕。在这场盛会中&#xff0c;企商在线石景山智能算力中心以其作为北京最大规模的公共智能算力中心的身份亮相&#xff0c;为首都建设全球数字标杆城市注入了新的活力。 …

KingbaseES数据库bulkload快速导入导出数据

数据库版本&#xff1a;KingbaseES V008R006C008B0014 简介 sys_bulkload 是 kingbase 快速将 CSV 文件导入数据库的命令行工具&#xff0c;它支持串行和并行的方式&#xff0c;是目前导入数据最快的工具。 文章目录如下 1. 基础语法 1.1. 语法说明 1.2. 参数选项 1.3. 配置…

C语言进阶课程学习记录- 函数与宏分析

C语言进阶课程学习记录- 函数与宏分析 实验-宏和函数实验-宏的副作用实验-宏的妙用小结 本文学习自狄泰软件学院 唐佐林老师的 C语言进阶课程&#xff0c;图片全部来源于课程PPT&#xff0c;仅用于个人学习记录 实验-宏和函数 #include <stdio.h>#define RESET(p, len) …

贪心算法练习day.1

理论基础 贪心算法是一种常见的解决优化问题的方法&#xff0c;其基本思想就是在问题的每个决策阶段&#xff0c;都选择当前看起来最优的选择&#xff0c;即贪心地做出局部的最优决策&#xff0c;以此得到全局的最优解&#xff0c;例如在十张面额不同的钞票&#xff0c;让我们…

批量修改kingbase数据库中表未生成的rowid字段

批量修改生成kingbase的rowid列 show default_with_rowid; 如果结果是off&#xff0c;说明不会生成rowid的列&#xff0c;则无法查询rowid列 想要查询需要手动将表得rowid列加上或者修改上面参数后重新迁移数据批量修改对应用户对应模式下所有表的rowid的存储过程如下&#xf…

【C++】详解初始化列表,隐式类型转化,类静态成员,友元

前言 初始化列表是对构造函数内容的补充&#xff0c;小编会详细的讲解初始化列表的概念&#xff0c;特性&#xff0c;注意点。这是本篇内容的重头戏&#xff0c;小编会先提一个问题来抛砖引玉。 隐式类型转换顾名思义&#xff0c;首先它不需要主动转换&#xff0c;类似于把浮点…