添加购物车前提条件:你的商品的页面有已经设计成功,有全选,全不选,反选这些操作的实现

  1. 通过checkbox复选框的id进行添加商品,从而获取商品的名字和其他的信息
  2. 增加成功后通过Ajax请求进行相关的页面的加载
  3. 创建一个Cart实体类进行购物车的设计。
  4. 有一个加入购物车的button进行点击时发生点击事件,从而进行添加商品。
  5. 添加成功进行购物车的显示的功能。

商品分页功能的实现

  1. 创建一个实现类,里面封装了分页的常用属性, private int currentPageNum;//当前大峡谷页
    private int pageSize=3;//每页显示条数,
    private int totalRecords;//总记录条数,数据库查出来的
    private int totalPageNum;//总页数,计算出来的
    private List list;//已经分好页的结果集

  2. 需要在dao的实现类中进行相关的说记录数的查询,和分页查询
    sql语句,select count(*) from table_name;select *from table_name limit ?,?;

  3. 里面的两个参数?,? 的设置 (currentNum-1)/pageSize,和pageSize

  4. 然后通过封装好的PageBean进行相关的显示

  5. 设置页面的默认的pageSize的大小
    5.首页,尾页,前一页,后一页都可以通过Js进行实现
    LoginServlet:

package com.nt.servlet;import com.alibaba.fastjson.JSONObject;
import com.nt.pojo.Menu;
import com.nt.pojo.User;
import com.nt.service.UserService;
import com.nt.service.impl.UserServiceimpl;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;@WebServlet(urlPatterns = "/login")
public class Loginservlet extends javax.servlet.http.HttpServlet {private UserService userService=new UserServiceimpl();@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("utf-8");resp.setContentType("text/html;charset=utf-8");String username = req.getParameter("username");String password = req.getParameter("password");User user=new User(username,password);userService.queryUserByUsernameAndPassword(user);
/*
//        Ajax不可以重定向和转发List<Menu> list = userService.queryMenuByRoleId(user.getRole().getRoleId());//将Object类型转换成json字符串String json = JSONObject.toJSONString(list);*/PrintWriter writer = resp.getWriter();HttpSession session = req.getSession();session.setAttribute("user",user);
//        session.setAttribute("menus",list);if(user!=null){//            登录成功根据RoleId 查询权限信息查询//            登录成功输出1writer.println(1);}else {writer.println(0);}writer.flush();writer.close();}
}

ListCartServlet:

package com.nt.servlet;import com.nt.pojo.Cart;
import com.nt.service.CartService;
import com.nt.service.impl.CartServiceimpl;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 java.io.IOException;
import java.util.List;@WebServlet(name = "ListCartServlet",urlPatterns = "/listcart")
public class ListCartServlet extends HttpServlet {private CartService cartService=new CartServiceimpl();@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {List<Cart> list = cartService.listAllCart();req.setAttribute("list",list);req.getRequestDispatcher("listcart.jsp").forward(req,resp);}
}

ListGoodServlet:

package com.nt.servlet;import com.nt.pojo.Goods;
import com.nt.pojo.PageBean;
import com.nt.service.GoodsService;
import com.nt.service.impl.GoodsServiceimpl;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 java.io.IOException;
import java.io.PrintWriter;@WebServlet(name = "ListGoodsServlet",urlPatterns = "/listpage")
public class ListGoodsServlet extends HttpServlet {private GoodsService goodsService=new GoodsServiceimpl();@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String type = req.getParameter("type");//        type==null type.equals(" ")不相等if (type==null){listpage(req,resp);}if(type.equals("del")){delGoods(req,resp);}if(type.equals("plsc")){plsc(req,resp);}//        不可以用== 用equals比较内容是否相等if (type.equals("load")){listone(req,resp);}if (type.equals("update")){updateGoods(req,resp);}if(type.equals("add")){addGoods(req,resp);}}private void delGoods(HttpServletRequest req, HttpServletResponse resp) throws IOException {int id = Integer.parseInt(req.getParameter("id"));int i = goodsService.deleteByGoodsId(id);if(i>0){PrintWriter writer = resp.getWriter();writer.println("<script>alert('删除成功') </script>");resp.sendRedirect("listpage");}}private void addGoods(HttpServletRequest req, HttpServletResponse resp) throws IOException {String goodsname = req.getParameter("goodsname");String category = req.getParameter("category");String priceStr = req.getParameter("price");double price = Double.parseDouble(priceStr);Integer stock = Integer.parseInt(req.getParameter("stock") );Goods goods=new Goods(goodsname,category,price,stock);goodsService.addGoods(goods);resp.sendRedirect("listpage");}private void updateGoods(HttpServletRequest req, HttpServletResponse resp) throws IOException {int id = Integer.parseInt(req.getParameter("id"));String goodsname = req.getParameter("goodsname");String category = req.getParameter("category");String priceStr = req.getParameter("price");double price = Double.parseDouble(priceStr);Integer stock = Integer.parseInt(req.getParameter("stock") );Goods goods=new Goods(goodsname,category,price,stock);goodsService.updateGoodsById(goods,id);resp.sendRedirect("listpage");}private void listpage(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//    从前端获取currentNum数据String currentNumStr  = req.getParameter("currentNum");String pageSizeStr = req.getParameter("pageSize");if(pageSizeStr==null){pageSizeStr="2";}int pageSize = Integer.parseInt(pageSizeStr);if(currentNumStr==null){currentNumStr="1";}//int currentNum = Integer.parseInt(currentNumStr);PageBean<Goods> pageBean = goodsService.queryGoodsByPage(currentNum, pageSize);//        把page设置到request作用域req.setAttribute("page",pageBean);//        进行请求转发req.getRequestDispatcher("listpage.jsp").forward(req,resp);}private void listone(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {int id = Integer.parseInt(req.getParameter("id"));Goods goods = goodsService.queryByGoodsId(id);req.setAttribute("goods",goods);req.getRequestDispatcher("update.jsp").forward(req,resp);}protected void plsc(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//ids 23,24,25String ids = req.getParameter("ids");String[] idArr = ids.split(",");for(String idStr:idArr){int id = Integer.parseInt(idStr);goodsService.deleteByGoodsId(id);}PrintWriter writer = resp.getWriter();writer.println(1);writer.flush();writer.close();}
}

addServlet:

package com.nt.servlet;import com.nt.pojo.Cart;
import com.nt.pojo.Goods;
import com.nt.pojo.User;
import com.nt.service.CartService;
import com.nt.service.impl.CartServiceimpl;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 java.io.IOException;
import java.io.PrintWriter;@WebServlet(name = "AddCartServlet",urlPatterns = "/addCart")
public class AddCartServlet extends HttpServlet {private CartService cartService=new CartServiceimpl();@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String ids = req.getParameter("ids");String[] idsArr = ids.split(",");boolean flag=false;for (String idStr : idsArr) {//商品idint goodsId = Integer.parseInt(idStr);Goods goods=new Goods();goods.setId(goodsId);//            取到用户名User user = (User)req.getSession().getAttribute("user");//            购买数量Cart cart=new Cart(goods,1,user.getUsername());flag = cartService.addCart(cart);}PrintWriter writer = resp.getWriter();if(flag){writer.println(1);//添加成功}else {writer.println(2);//添加失败}writer.flush();writer.close();}
}

listpage.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--Created by IntelliJ IDEA.User: CourageAndLoveDate: 2021/7/24Time: 9:40To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head><title>商品管理页面</title>
</head>
<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script>$(function () {//全选var i=0;var j=0;$("#qx").on("click",function(){if(i==0){//把所有复选框选中$(".one").prop("checked", true);i=1;}else{$(".one").prop("checked", false);i=0;}});//全不选$("#qbx").on("click",function(){if(j==0){//把所有复选框选不选$(".one").prop("checked", false);j=1;}else{$(".one").prop("checked", true);j=0;}});//反选$("#fx").on("click",function(){$(".one").each(function(){//遍历所有复选框,然后取值进行 !非操作$(this).prop("checked", !$(this).prop("checked"));})});//    加入购物车$("#btn").click(function () {//1,2,3var ids="";$(".one:checked").each(function () {var id=$(this).val();ids+=","+id;})//字符串截取第二个ids=ids.substring(1);// alert(ids);$.post("addCart",{ids:ids},//进行后台数据的验证function (data) {//回调函数if(data==1){alert('添加成功');location.href="listcart";//查询所有的购物车信息需要连表查询}else {alert("添加失败");}})})})function plsc() {var ids="";$(".one:checked").each(function () {var id=$(this).val();ids+=","+id;})ids=ids.substring(1);alert(ids);$.post("listpage",{type:"plsc",ids:ids},function (data) {if(data==1){alert("删除成功");location.href="listpage";//重新查询所有}else{alert("删除失败");}})}</script><body><center><%--${requestScope.page}--%><h2>商品管理页面</h2><table width="50%" height="40%"><input type="checkbox" id="qx">全选<input type="checkbox" id="qbx">全不选<input type="checkbox" id="fx">反选<tr><td>编号</td><td>商品名字</td><td>商品类别</td><td>商品价格</td><td>商品库存</td><td><a href="add.jsp">添加学生</a><input type="button" value="批量删除" onclick="plsc()"></td></tr><c:forEach var="p" items="${requestScope.page.list}"><tr><td><input type="checkbox" class="one" value="${p.id}"></td><td>${p.id}</td><td>${p.goodsname}</td><td>${p.category}</td><td>${p.price}</td><td>${p.stock}</td><td><%--                注意一下 id是现有的值用&获取即可 ,不可以用?进行参数的传值获取--%><a href="listpage?type=load&id=${p.id}">修改商品</a><a href="listpage?type=del&id=${p.id}">删除商品</a></td></tr></c:forEach><tr><td colspan="6"><input type="button" value="加入购物车" id="btn"></td></tr></table><input type="button" onclick="toFirstpage()" value="首页"><input type="button" onclick="toPrepage()" value="上一页">当前页|${requestScope.page.currentPageNum}总页数|${requestScope.page.totalPageNum}每页显示条数| <input type="text" name="pageSize" value="${requestScope.page.pageSize}" size="1"><input type="button" onclick="toNextpage()" value="下一页"><input type="button" onclick="toLastpage()" value="尾页"></center><script>
<%--    当前页--%>var currentNum=${requestScope.page.currentPageNum};
<%--    总页数--%>var totalPages=${requestScope.page.totalPageNum};<%--var pageSize=${requestScope.page.pageSize};--%>function toFirstpage() {window.location="listpage?currentNum=1";}function toPrepage() {if(currentNum==1){window.location="listpage?currentNum=1";}else {window.location="listpage?currentNum="+(currentNum-1);}}function toNextpage() {if(currentNum==totalPages){window.location="listpage?currentNum="+totalPages;}else {window.location="listpage?currentNum="+(currentNum+1);}}function toLastpage() {window.location="listpage?currentNum="+totalPages;}</script></body>
</html>

login.jsp:

<%--Created by IntelliJ IDEA.User: CourageAndLoveDate: 2021/7/23Time: 17:03To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script>$(function () {//文档就绪函数$("#btn").click(function () {$.post(//post请求"login",//url路径$("form").serialize(),//传输的数据function (data) {//回调函数就是后台执行完毕再执行的逻辑if(data==1){alert("登录成功");location.href="listpage";//登录成功跳转}else{alert("登录失败");}})})})
</script>
<link href="css/body.css" type="text/css" rel="stylesheet"></link>
<body><h1>登录页面</h1>
<!--前端访问后台资源 不加/-->
<form>用户名: <input type="text" name="username"><br/>密码: <input type="password" name="password"><br/><input type="button" value="登录" id="btn"><a href="register.jsp"> 注册</a>
</form></body>
</html>

listcart.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--Created by IntelliJ IDEA.User: CourageAndLoveDate: 2021/7/25Time: 22:55To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head><title>购物车页面</title>
</head>
<!-- 引入Sementic的UI -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/semantic-ui@2.4.2/dist/semantic.min.css">
<body><center>
<h2 class="ui teal header">购物车管理页面</h2><div class="ui container"><table width="50%" height="35%" class="ui celled table"><thead><td>购物车编号</td><td>商品数量</td><td>用户名</td><td>商品名字</td><td>商品分类</td><td>商品价格</td><td>商品库存</td></thead><tbody><c:forEach var="c" items="${requestScope.list}"><tr><td>${c.itemId}</td><td>${c.nums}</td><td>${c.username}</td><td>${c.goods.goodsname}</td><td>${c.goods.category}</td><td>${c.goods.price}</td><td>${c.goods.stock}</td></tr></c:forEach></tbody><tfoot></tfoot></table></div></center><script src="https://cdn.jsdelivr.net/npm/jquery@3.2/dist/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/semantic-ui@2.4.2/dist/semantic.min.js"></script>
</body>
</html>

Cart:

package com.nt.pojo;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@AllArgsConstructor
@NoArgsConstructor
public class Cart {private int itemId;private Goods goods;private int nums;//购买数量private String username;public Cart(Goods goods, int nums, String username) {this.goods = goods;this.nums = nums;this.username = username;}
}

Goods:

package com.nt.pojo;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@AllArgsConstructor
@NoArgsConstructor
public class Goods {private Integer id;private String goodsname;private String category;private Double price;private Integer stock;public Goods(String goodsname, String category, Double price, Integer stock) {this.goodsname = goodsname;this.category = category;this.price = price;this.stock = stock;}
}

PageBean:

package com.nt.pojo;import java.util.List;
//T代表任意的类型
public class PageBean <T>{private int currentPageNum;//当前大峡谷页private int pageSize=3;//每页显示条数,private int totalRecords;//总记录条数,数据库查出来的private  int totalPageNum;//总页数,计算出来的private List<T> list;//已经分好页的结果集//   总记录数  每页显示条数  总页数/*  10         5         211        5         3*/public PageBean() {}public int getCurrentPageNum() {return currentPageNum;}public void setCurrentPageNum(int currentPageNum) {this.currentPageNum = currentPageNum;}public int getPageSize() {return pageSize;}public void setPageSize(int pageSize) {this.pageSize = pageSize;}public int getTotalRecords() {return totalRecords;}public void setTotalRecords(int totalRecords) {this.totalRecords = totalRecords;if(this.totalRecords%this.pageSize==0){this.totalPageNum=this.totalRecords/pageSize;}else {this.totalPageNum=this.totalRecords/pageSize+1;}}public int getTotalPageNum() {return totalPageNum;}public void setTotalPageNum(int totalPageNum) {this.totalPageNum = totalPageNum;}public List<T> getList() {return list;}public void setList(List<T> list) {this.list = list;}@Overridepublic String toString() {return "PageBean{" +"currentPageNum=" + currentPageNum +", pageSize=" + pageSize +", totalRecords=" + totalRecords +", totalPageNum=" + totalPageNum +", list=" + list +'}';}
}

User:

package com.nt.pojo;public class User {private Integer id;private String username;private String password;//    一对一的权限private com.nt.pojo.Role role;public User() {}public User(int id, String username, String password, com.nt.pojo.Role role) {this.id = id;this.username = username;this.password = password;this.role = role;}public User(String username, String password) {this.username = username;this.password = password;}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 Role getRole() {return role;}public void setRole(Role role) {this.role = role;}@Overridepublic String toString() {return "User{" +"id=" + id +", username='" + username + '\'' +", password='" + password + '\'' +", role=" + role +'}';}
}

GoodsDao:

package com.nt.dao;import com.nt.pojo.Goods;import java.util.List;public interface GoodsDao {//    查询数据总量public int getTotal();//    分页查询public List<Goods> queryGoodsByPage(int currentNum,int pageSize);int addGoods(Goods goods);int deleteByGoodsId(Integer id);Goods queryByGoodsId(Integer id);int updateGoodsById(Goods goods,Integer id);}

GoodsDaoimpl:

package com.nt.dao.impl;import com.nt.dao.GoodsDao;
import com.nt.pojo.Goods;
import com.nt.util.DButils;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;public class GoodsDaoimpl implements GoodsDao{Connection conn= DButils.getConnection();PreparedStatement pre=null;ResultSet rs=null;@Overridepublic int getTotal() {String sql="select count(*) from goods";conn= DButils.getConnection();PreparedStatement pre=null;ResultSet rs=null;int count=0;try{pre=conn.prepareStatement(sql);rs = pre.executeQuery();if(rs.next()){count = rs.getInt(1);}}catch (Exception e){e.printStackTrace();}finally {DButils.closeAll();}return count;}@Overridepublic List<Goods> queryGoodsByPage(int currentNum, int pageSize) {String sql="select *from goods limit ?,?";Connection conn= DButils.getConnection();PreparedStatement pre=null;ResultSet rs=null;int count=0;Goods goods=null;List<Goods> list=new ArrayList<>();try{pre=conn.prepareStatement(sql);//            第一个参数和当前页面和页面大小的关系
/*            select *from goods limit 0,2;#1select *from goods limit 2,2;#2select *from goods limit 3,2;#3第一个参数为(2-1)*2=2 (1-1)*2 也就是(currentNum-1)*pageSize*/pre.setInt(1,(currentNum-1)*pageSize);pre.setInt(2,pageSize);rs = pre.executeQuery();while(rs.next()){int goodsId=rs.getInt(1);String goodsName = rs.getString(2);String category = rs.getString(3);double price = rs.getDouble(4);int stock = rs.getInt(5);goods=new Goods(goodsId,goodsName,category,price,stock);list.add(goods);}}catch (Exception e){e.printStackTrace();}finally {DButils.closeAll();}return list;}@Overridepublic int addGoods(Goods goods) {String sql="insert into goods(goodsName,category,price,stock) values (?,?,?,?)";Connection conn= DButils.getConnection();PreparedStatement pre=null;int i=0;try{pre=conn.prepareStatement(sql);pre.setString(1,goods.getGoodsname());pre.setString(2,goods.getCategory());pre.setDouble(3,goods.getPrice());pre.setInt(4,goods.getStock());i = pre.executeUpdate();}catch (Exception e){e.printStackTrace();}finally {DButils.closeAll();}return i ;}@Overridepublic int deleteByGoodsId(Integer id) {String sql="delete from goods where id=?";int i=0;try {i = DButils.executeUpdate(sql, id);} catch (SQLException throwables) {throwables.printStackTrace();}return i;}@Overridepublic Goods queryByGoodsId(Integer id) {String sql="select *from goods where id=?";Goods goods=null;try {rs = DButils.executeSelect(sql, id);if (rs.next()){int goodsId=rs.getInt(1);String goodsName = rs.getString(2);String category = rs.getString(3);double price = rs.getDouble(4);int stock = rs.getInt(5);goods=new Goods(goodsId,goodsName,category,price,stock);}} catch (SQLException throwables) {throwables.printStackTrace();}System.out.println(goods);return goods;}@Overridepublic int updateGoodsById(Goods goods,Integer id) {int i=0;String sql="update goods set  goodsname=?,category=?,price=?,stock=? where id=?";try {i = DButils.executeUpdate(sql,goods.getGoodsname(), goods.getCategory(), goods.getPrice(), goods.getStock(),id);} catch (SQLException throwables) {throwables.printStackTrace();}return  i;}public static void main(String[] args) {GoodsDaoimpl goodsDaoimpl=new GoodsDaoimpl();/*  goodsDaoimpl.queryByGoodsId(1);goodsDaoimpl.deleteByGoodsId(1);Goods goods=new Goods("冰箱","家具",3999.57,999);goodsDaoimpl.addGoods(goods); */Goods goods1=new Goods("冰箱","家具",3999.57,999);goodsDaoimpl.updateGoodsById(goods1,2);}}

UserDao:

package com.nt.dao;import com.nt.pojo.Menu;
import com.nt.pojo.User;import java.util.List;public interface UserDao {User queryUserByUsernameAndPassword(User user);//登录public List<Menu> queryMenuByRoleId(int roleid);//根据Roleid查询权限信息}

UserDaoimpl:

package com.nt.dao.impl;import com.nt.dao.UserDao;
import com.nt.pojo.Menu;
import com.nt.pojo.Role;
import com.nt.pojo.User;
import com.nt.util.DButils;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;public class UserDaoimpl implements UserDao {@Overridepublic User queryUserByUsernameAndPassword(User user) {String sql="select *from user u,user_role ur where u.id=ur.uid and username=? and password=?";Connection conn = DButils.getConnection();PreparedStatement pre=null;ResultSet rs=null;User login=null;try{pre = conn.prepareStatement(sql);pre.setString(1,user.getUsername());pre.setString(2,user.getPassword());rs = pre.executeQuery();if(rs.next()){int id = rs.getInt(1);String username = rs.getString(2);String password = rs.getString(3);//            获取角色idint roleId = rs.getInt(4);Role role=new Role();role.setRoleId(roleId);login=new User(id,username,password,role);}}catch (Exception e){e.printStackTrace();}finally {DButils.closeAll();}return login;}@Overridepublic List<Menu> queryMenuByRoleId(int roleid) {String sql="select m.* from role_menu rm,menu m where rm.mid=m.id and rm.rid=?";Connection conn = DButils.getConnection();PreparedStatement pre=null;ResultSet rs=null;List<Menu> list=new ArrayList<Menu>();try{pre = conn.prepareStatement(sql);rs = pre.executeQuery();while(rs.next()){int id = rs.getInt(1);String name = rs.getString(2);String url = rs.getString(3);String target = rs.getString(4);int pId = rs.getInt(5);Menu menu=new Menu(id,name,url,target,pId);list.add(menu);}}catch (Exception e){e.printStackTrace();}finally {DButils.closeAll();}return list;}
}

CartDao:

package com.nt.dao;import com.nt.pojo.Cart;import java.util.List;public interface CartDao {public boolean addCart(Cart cart);List<Cart> listAllCart();
}

CartDaoimpl:

package com.nt.dao;import com.nt.pojo.Cart;import java.util.List;public interface CartDao {public boolean addCart(Cart cart);List<Cart> listAllCart();
}

util包下面的DButils

package com.nt.util;import java.sql.*;//这个是用来进行你的数据库的链接以及对数据库的操作:public class DButils {// 定义你的数据连接的属性:private static final String  driver="com.mysql.jdbc.Driver";private static final String  url="jdbc:mysql://localhost:3306/oneclass?characterEncoding=utf-8";private static final String user="root";private static final String password="roothouzhicong";private static Connection conn=null;private  static PreparedStatement pre=null;private static ResultSet rs=null;//1.加载你的驱动程序static {try {Class.forName(driver);System.out.println("驱动加载成功!!!");} catch (ClassNotFoundException e) {// TODO Auto-generated catch blockSystem.out.println("驱动加载失败!!!!!");e.printStackTrace();}}//2.获取连接public static Connection getConnection() {try {conn=DriverManager.getConnection(url, user, password);System.out.println("已经获取了连接!!");} catch (SQLException e) {// TODO Auto-generated catch blockSystem.out.println("获取连接失败!!!!");e.printStackTrace();}return conn;}// 关闭资源public static  void closeAll(){// 关闭资源的时候try {if(rs !=null)rs.close();} catch (Exception e) {}try {if(pre !=null)pre.close();} catch (Exception e) {}try {if(conn !=null)conn.close();} catch (Exception e) {}}//3.我们把我们的这个数据库的操作进行封装两个方法:(他可以完成的是你的,数据库层面  增,删,改)public static int executeUpdate(String sql, Object...objects) throws SQLException {int count=0;getConnection();pre=conn.prepareStatement(sql);if (objects!=null) {for (int i = 0; i < objects.length; i++) {pre.setObject(i+1, objects[i]);}}count=pre.executeUpdate();closeAll();return count;}//  4. 我们把我们的查询封装一个方法中:所有的查询,单个查询;public static ResultSet executeSelect(String sql,Object...objects) throws SQLException {getConnection();pre=conn.prepareStatement(sql);if (objects!=null) {for (int i = 0; i < objects.length; i++) {pre.setObject(i+1, objects[i]);}}rs=pre.executeQuery();return rs;}public static void main(String[] args) {DButils.getConnection();}}

基本实现了商品增删改查,添加购物车,和一对一表的查询,以及手写分页功能,代码比较的繁琐

商品管理系统商品分页,增删改查的实现增加购物车的功能Cart相关推荐

  1. JDBC——商品品牌数据的增删改查操作

    JDBC练习--完成商品品牌数据的增删改查操作 一.准备环境 1.数据库表tb_brand 2.实体类Brand /*** 品牌* alt+鼠标左键,整列编辑* 在实体类中,基本数据类型建议使用其对应 ...

  2. JDBC练习-完成商品品牌数据的增删改查操作

    准备环境 数据库表tb_brand -- 删除tb_brand表 drop table if exists tb_brand; -- 创建tb_brand表 create table tb_brand ...

  3. 创建一个简单的后台教务管理系统,包含动态增删改查学生,年级和课程信息及查看登录日志等功能,包含表单验证.

    创建一个简单的后台教务管理系统,包含动态增删改查学生,年级和课程信息及查看登录日志等功能,包含表单验证. 一.显示页面 新建一个登录页面,即login.jsp <%--Created by In ...

  4. Django分页+增删改查

    Django分页+增删改查 演示 源码下载地址:https://download.csdn.net/download/qq_35622606/87719248 其他小笔记: django-admin. ...

  5. 创建vue+iview项目实现分页增删改查功能

    iview+vue实现分页增删改查功能 一. 后台代码 二.前端工具是webstorm,直接上测试相应js接口 三.相应的页面 四.效果展示 上一片文章总结了下如何创建一个vue项目,前端框架使用iv ...

  6. 商品品牌信息的增删改查操作步骤_图书信息管理系统

    不仅仅是图书信息管理系统 基于双链表,采用面向对象编程方法制作的图书管理系统 来源微信公众号: 不仅仅是图书信息管理系统​mp.weixin.qq.com 效果演示 框架结构 数据层:双链表管理 核心 ...

  7. 商品品牌信息的增删改查操作步骤_javaweb09-Servlet增删改查

    学习笔记是参考的how2j 本章笔记的目的是介绍如何与JDBC结合,通过servlet对数据库中的数据进行增.删.改.查. 一.前期准备 1.新建一个Dynamic Web Project 步骤为:f ...

  8. JDBC实现学生信息管理系统(仅增删改查)

    思路:将程序简单的分为了一个主要的菜单类和其他的五个功能类,实现对数据库的信息的增删改查. 缺点:写了大量重复代码,实现的功能却不多,将每个类的界面和功能都写到了一个方法里,类与类之间完全分开,没有一 ...

  9. AngularJS 实现管理系统中的增删改查

      前 言 AngularJS 在一个管理系统中,不外乎都是增删改查. 现在有如下图书管理系统,实现简单的增删改查. 需要用到bootstrap.css .angular.js和angular-rou ...

最新文章

  1. 不怕面试被问了!二叉树算法大盘点
  2. 55种网页常用小技巧
  3. HTML5 编辑 API 之 Range 对象(一)
  4. 你写的前端到底用没用到这些
  5. Qt数据库sqlite
  6. 部署OpenStack问题汇总(五)--openstack中删除虚拟主机,状态一直未deleting
  7. leetcood学习笔记-112-路径总和
  8. java开发入行真功夫pdf_Java开发入行真功夫
  9. 软件测试完后,还有bug,责任全在于测试吗?
  10. PAT 1051-1060 题解
  11. 【数字信号】基于matlab GUI数字电子琴【含Matlab源码 272期】
  12. (转)C#Interface简介
  13. 万稞pw80线切割编程软件_数控编程软件(CAM)大盘点,你选用的哪种?
  14. 如何做好终端安全管理?
  15. linux主进程退出时,结束子进程
  16. Tensorflow的安装与报错
  17. 设置WebView字体颜色,背景颜色
  18. 计算机可以是在职研究生,是否有计算机专业在职研究生毕业?
  19. linux 禁用笔记本自带键盘
  20. 【代码审计】--- php代码审计方法

热门文章

  1. 【转】让我们如此享受的慢性毒药
  2. 【阿尼亚喜欢BigData】“红亚杯”常用数据分析Hive SQL应用专题赛——满分解析③
  3. 智能会议-离线语音识别系统
  4. 计算机职称论文算分,计算机职称论文写作技巧有哪些
  5. 人工智能掼蛋大赛参赛记录
  6. 【2023秋招面经】20220713兴业数金前端一面
  7. 掌握4要素,做喜剧短视频剧本简单高效
  8. java毕业设计图书馆座位预约系统源码+lw文档+mybatis+系统+mysql数据库+调试
  9. CDC::SelectStockObject 与CDC::SelectObject
  10. Ajax上传文件,后端返回文件访问路径