当前位置: 首页 > 编程日记 > 正文

Java项目:茶叶售卖商城系统(java+SSM+JSP+EasyUi+mysql)

源码获取:博客首页 "资源" 里下载!

这是一个应用SSM框架的项目,前端页面整洁清晰。该系统有两个角色,一个是普通用户,另一个是管理员。

普通用户具有注册、登录、查看商品、添加购物车、添加商品收藏、下订单、商品评价、用户地址管理等等功能。

管理员具有登录、管理用户信息、管理商品信息、管理商品活动信息、管理订单信息、管理用户评论信息的等等功能。

应用技术:Jsp + SSM + EasyUi

运行环境:eclipse/IDEA + MySQL5.7 + Tomcat8.5 + JDK1.8

商品管理服务层:

@WebServlet("/backstage_goodsServlet")
public class GoodsServlet extends HttpServlet{GoodsService service = new GoodsService();@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String action = req.getParameter("action");		switch(action) {case "addGoods":addGoods(req,resp);break;case "getGoodsList":getGoodsList(req,resp);break;case "getGoodsListByName":getGoodsListByName(req,resp);break;case "deleteGoods":deleteGoods(req,resp);break;case "toGoodsUpdatePage":toGoodsUpdatePage(req,resp);break;case "updateGoods":updateGoods(req,resp);break;case "upGoodsImage":upGoodsImage(req,resp);break;case "fastbuy":sendOrder(req,resp);break;}}/*** 提交订单* @throws IOException */public void sendOrder(HttpServletRequest req, HttpServletResponse resp) throws IOException {//设置请求编码格式:req.setCharacterEncoding("utf-8");//设置响应编码格式			resp.setContentType("text/html;charset=utf-8");SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式Orders order = new Orders();order.setNumber(order.getRandomString(10));order.setTime(df.format(new Date()));order.setName(req.getParameter("recipients"));order.setAddress(req.getParameter("address"));order.setPhone(req.getParameter("phone"));order.setAddress_label(req.getParameter("addressLabel"));order.setSex(req.getParameter("sex"));order.setUser("sjb");order.setGoods_id(99);order.setGoods_num(3);order.setGoods_status(1);int d = service.addOrder(order);try {if(d>0) {JSONResult ok = JSONResult.ok();resp.getWriter().println(JsonUtil.javaObjectToJson(ok));}else {JSONResult error = JSONResult.errorMsg("订单提交失败!");resp.getWriter().println(JsonUtil.javaObjectToJson(error));}} catch (Exception e) {e.printStackTrace();}}/*** 保存商品* @throws IOException */public void addGoods(HttpServletRequest req,HttpServletResponse resp) throws IOException {//设置请求编码格式:req.setCharacterEncoding("utf-8");//设置响应编码格式			resp.setContentType("text/html;charset=utf-8");FileUploadUtil upFile = new FileUploadUtil();ServletContext servletContext = req.getSession().getServletContext();List<FileItem> items= upFile.getRequsetFileItems(req,servletContext);//保存所有用户提交的 表单数据 的mapMap<String, String>  formData = new HashMap<>();String savePath = new File(getServletContext().getRealPath("/")).getParentFile().getParentFile().getPath()+"/imgs";try {//遍历for (FileItem file : items) {if(!file.isFormField()) {String fileSuffix = FileUploadUtil.getFileSuffix(file).toUpperCase();//必须是jpg或png  图片文件才能进行上传操作if("JPG".equals(fileSuffix) || "PNG".equals(fileSuffix)) {//生成新图片名String imgName = FileUploadUtil.getImgNewName(fileSuffix);FileUploadUtil.saveFile(file, savePath, imgName);formData.put("imgUrl",imgName);}}else {	//非文件数据存入formData.put(file.getFieldName(), file.getString("utf-8"));	}}} catch (UnsupportedEncodingException e) {e.printStackTrace();}Goods goods = new Goods();goods.setName(formData.get("goodsName"));goods.setNum(Integer.parseInt(formData.get("num")));goods.setPrice(Double.parseDouble(formData.get("price")));goods.setImgurl(formData.get("imgUrl"));goods.setType(formData.get("type"));goods.setDescription(formData.get("description"));goods.setColor(formData.get("color"));goods.setMemory(formData.get("memory"));goods.setCreateDate(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));int d = service.addGoods(goods);try {if(d>0) {JSONResult ok = JSONResult.ok();resp.getWriter().println(JsonUtil.javaObjectToJson(ok));}else {JSONResult errorMsg = JSONResult.errorMsg("添加失败,请重试");resp.getWriter().println(JsonUtil.javaObjectToJson(errorMsg));}} catch (Exception e) {e.printStackTrace();}}/*** 向前端页面返回商品数据列表*/public void getGoodsList(HttpServletRequest req,HttpServletResponse resp) {List<Goods> allGoods = service.getAllGoods();req.setAttribute("goodsList", allGoods);try {req.getRequestDispatcher("/backstage/tgls/goodsManage/goods_list.jsp").forward(req, resp);} catch (ServletException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}	}/*** @throws IOException * 根据商品名查询商品* @param req* @param resp* @throws  */public void getGoodsListByName(HttpServletRequest req,HttpServletResponse resp) throws IOException  {//设置请求编码格式:req.setCharacterEncoding("utf-8");//设置响应编码格式			resp.setContentType("text/html;charset=utf-8");String name = req.getParameter("goodsName");String type = req.getParameter("type");Map<String,String> parmas = new HashMap<>();parmas.put("name", name);parmas.put("type", type);List<Goods> list = service.getGoodsByName(parmas);try {if(list != null) {JSONResult ok = JSONResult.ok(list);resp.getWriter().println(JsonUtil.javaObjectToJson(ok));}else {JSONResult errorMsg = JSONResult.errorMsg("未获取到任何数据,请重试");resp.getWriter().println(JsonUtil.javaObjectToJson(errorMsg));}			} catch (Exception e) {e.printStackTrace();}}/*** 修改商品时,获取此商品的全部数据,并返回至修改页面*/public void toGoodsUpdatePage(HttpServletRequest req,HttpServletResponse resp) {int id = Integer.parseInt(req.getParameter("id"));Goods goods = service.getGoodsInfoById(id);req.setAttribute("goods", goods);try {req.getRequestDispatcher("/backstage/tgls/goodsManage/goods_update.jsp").forward(req, resp);} catch (ServletException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}	}/***修改商品信息时,如果有修改图片,先将图片进行修改* @throws IOException */public void upGoodsImage(HttpServletRequest req,HttpServletResponse resp) throws IOException {//设置请求编码格式:req.setCharacterEncoding("utf-8");//设置响应编码格式			resp.setContentType("text/html;charset=utf-8");FileUploadUtil upFile = new FileUploadUtil();ServletContext servletContext = req.getSession().getServletContext();List<FileItem> items= upFile.getRequsetFileItems(req,servletContext);String savePath = new File(getServletContext().getRealPath("/")).getParentFile().getParentFile().getPath()+"/imgs";String imgName = null;try {//遍历for (FileItem file : items) {if(!file.isFormField()) {String fileSuffix = FileUploadUtil.getFileSuffix(file);//必须是jpg或png  图片文件才能进行上传操作if("jpg".equals(fileSuffix) || "png".equals(fileSuffix)) {//生成新图片名imgName = FileUploadUtil.getImgNewName(fileSuffix);FileUploadUtil.saveFile(file, savePath, imgName);					}}}int d = service.updateGoodsImgById(imgName, Integer.parseInt(req.getParameter("id")));if(d>0) {JSONResult ok = JSONResult.ok(imgName);resp.getWriter().println(JsonUtil.javaObjectToJson(ok));}else {JSONResult errorMsg = JSONResult.errorMsg("修改失败,请重试");resp.getWriter().println(JsonUtil.javaObjectToJson(errorMsg));}		} catch (Exception e) {e.printStackTrace();}	}/***  修改商品* @throws IOException */public void updateGoods(HttpServletRequest req,HttpServletResponse resp) throws IOException {//设置请求编码格式:req.setCharacterEncoding("utf-8");//设置响应编码格式			resp.setContentType("text/html;charset=utf-8");Goods goods = new Goods();goods.setId(Integer.parseInt(req.getParameter("id")));goods.setName(req.getParameter("goodsName"));goods.setNum(Integer.parseInt(req.getParameter("num")));goods.setPrice(Double.parseDouble(req.getParameter("price")));goods.setType(req.getParameter("type"));goods.setColor(req.getParameter("color"));goods.setMemory(req.getParameter("memory"));goods.setDescription(req.getParameter("description"));int d = service.updateGoodsById(goods);try {if(d>0) {JSONResult ok = JSONResult.ok();resp.getWriter().println(JsonUtil.javaObjectToJson(ok));}else {JSONResult errorMsg = JSONResult.errorMsg("修改失败,请重试");resp.getWriter().println(JsonUtil.javaObjectToJson(errorMsg));}		} catch (Exception e) {e.printStackTrace();}}/*** 删除商品* @throws IOException */public void deleteGoods(HttpServletRequest req,HttpServletResponse resp) throws IOException {//设置请求编码格式:req.setCharacterEncoding("utf-8");//设置响应编码格式			resp.setContentType("text/html;charset=utf-8");int id = Integer.parseInt(req.getParameter("id"));int d = service.deleteGoodsById(id);try {if(d>0) {JSONResult ok = JSONResult.ok();resp.getWriter().println(JsonUtil.javaObjectToJson(ok));}else {JSONResult errorMsg = JSONResult.errorMsg("删除失败,请重试");resp.getWriter().println(JsonUtil.javaObjectToJson(errorMsg));}			} catch (Exception e) {e.printStackTrace();}}
}

订单服务类:

@WebServlet("/backstage_ordersServlet")
public class OrdersServlet extends HttpServlet{OrdersService service = new OrdersService();@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String action = req.getParameter("action");System.out.println(action);switch(action) {case "getOrdersList":getOrdersList(req,resp);break;case "getOrdersListByName":getOrdersListByName(req,resp);break;case "deleteOrders":deleteOrders(req,resp);break;case "deleteAllOrders":deleteAllOrders(req,resp);break;case "toOrdersUpdatePage":toOrdersUpdatePage(req,resp);break;case "updateOrders":updateOrders(req,resp);break;case "fastbuy":sendOrder(req,resp);break;}}/* * 删除全部订单 */private void deleteAllOrders(HttpServletRequest req, HttpServletResponse resp) throws IOException {//设置请求编码格式:req.setCharacterEncoding("utf-8");//设置响应编码格式			resp.setContentType("text/html;charset=utf-8");// TODO 自动生成的方法存根int d = service.deleteAllOrders();try {if(d>0) {JSONResult ok = JSONResult.ok();resp.getWriter().println(JsonUtil.javaObjectToJson(ok));}else {JSONResult errorMsg = JSONResult.errorMsg("删除失败,请重试");resp.getWriter().println(JsonUtil.javaObjectToJson(errorMsg));}			} catch (Exception e) {e.printStackTrace();}}/*** 提交订单* @throws IOException */public void sendOrder(HttpServletRequest req, HttpServletResponse resp) throws IOException {//设置请求编码格式:req.setCharacterEncoding("utf-8");//设置响应编码格式			resp.setContentType("text/html;charset=utf-8");SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式User user =(User) req.getSession().getAttribute("user");Orders order = new Orders();order.setNumber(order.getRandomString(10));order.setTime(df.format(new Date()));order.setName(req.getParameter("recipients"));order.setAddress(req.getParameter("address"));order.setPhone(req.getParameter("phone"));order.setAddress_label(req.getParameter("addressLabel"));order.setSex(req.getParameter("sex"));order.setUser(user.getUserName());order.setGoods_id(Integer.parseInt(req.getParameter("id")));order.setGoods_num(Integer.parseInt(req.getParameter("num")));order.setGoods_status(1);int d = service.addOrder(order);try {if(d>0) {JSONResult ok = JSONResult.ok();resp.getWriter().println(JsonUtil.javaObjectToJson(ok));}else {JSONResult error = JSONResult.errorMsg("订单提交失败!");resp.getWriter().println(JsonUtil.javaObjectToJson(error));}} catch (Exception e) {e.printStackTrace();}	}/*** 向前端页面返回订单数据列表*/public void getOrdersList(HttpServletRequest req,HttpServletResponse resp) {List<Orders> allOrders = service.getAllOrders();req.setAttribute("ordersList",allOrders);try {req.getRequestDispatcher("/backstage/tgls/ordersManage/orders_list.jsp").forward(req, resp);} catch (ServletException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}	}/*** 根据订单名查询商品(注意!类别没改)* @param req* @param resp* @throws IOException */public void getOrdersListByName(HttpServletRequest req,HttpServletResponse resp) throws IOException {//设置请求编码格式:req.setCharacterEncoding("utf-8");//设置响应编码格式			resp.setContentType("text/html;charset=utf-8");String name = req.getParameter("OrdersUser");//String type = req.getParameter("type");Map<String,String> parmas = new HashMap<>();parmas.put("name", name);//parmas.put("type", type);List<Orders> list = service.getOrdersByName(parmas);try {if(list != null) {JSONResult ok = JSONResult.ok(list);resp.getWriter().println(JsonUtil.javaObjectToJson(ok));}else {JSONResult errorMsg = JSONResult.errorMsg("未获取到任何数据,请重试");resp.getWriter().println(JsonUtil.javaObjectToJson(errorMsg));}			} catch (Exception e) {e.printStackTrace();}}/*** 修改订单时,获取此订单的全部数据,并返回至修改页面*/public void toOrdersUpdatePage(HttpServletRequest req,HttpServletResponse resp) {int id = Integer.parseInt(req.getParameter("id"));Orders orders = service.getOrdersInfoById(id);req.setAttribute("orders", orders);try {req.getRequestDispatcher("/backstage/tgls/ordersManage/orders_update.jsp").forward(req, resp);} catch (ServletException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}	}/***  修改订单* @throws IOException */public void updateOrders(HttpServletRequest req,HttpServletResponse resp) throws IOException {//设置请求编码格式:req.setCharacterEncoding("utf-8");//设置响应编码格式			resp.setContentType("text/html;charset=utf-8");Orders orders = new Orders();orders.setId(Integer.parseInt(req.getParameter("id")));orders.setNumber(req.getParameter("number"));orders.setUser(req.getParameter("user"));orders.setTime(req.getParameter("time"));orders.setName(req.getParameter("name"));orders.setSex(req.getParameter("sex"));orders.setAddress(req.getParameter("address"));orders.setPhone(req.getParameter("phone"));orders.setAddress_label(req.getParameter("address_label"));orders.setGoods_id(Integer.parseInt(req.getParameter("goods_id")));orders.setGoods_num(Integer.parseInt(req.getParameter("goods_num")));orders.setGoods_status(Integer.parseInt(req.getParameter("goods_status")));System.out.println(orders);int d = service.updateOrdersById(orders);System.out.println(d);try {if(d>0) {JSONResult ok = JSONResult.ok();resp.getWriter().println(JsonUtil.javaObjectToJson(ok));}else {JSONResult errorMsg = JSONResult.errorMsg("修改失败,请重试");resp.getWriter().println(JsonUtil.javaObjectToJson(errorMsg));}		} catch (Exception e) {e.printStackTrace();}}/*** 删除订单* @throws UnsupportedEncodingException */public void deleteOrders(HttpServletRequest req,HttpServletResponse resp) throws UnsupportedEncodingException {//设置请求编码格式:req.setCharacterEncoding("utf-8");//设置响应编码格式			resp.setContentType("text/html;charset=utf-8");int id = Integer.parseInt(req.getParameter("id"));int d = service.deleteOrdersById(id);try {if(d>0) {JSONResult ok = JSONResult.ok();resp.getWriter().println(JsonUtil.javaObjectToJson(ok));}else {JSONResult errorMsg = JSONResult.errorMsg("删除失败,请重试");resp.getWriter().println(JsonUtil.javaObjectToJson(errorMsg));}			} catch (Exception e) {e.printStackTrace();}}
}

用户管理服务类:

@WebServlet("/backstage_userServlet")
public class UserServlet extends HttpServlet{UserService service = new UserService();@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String action = req.getParameter("action");switch(action) {case "login":login(req, resp);break;case "modifyPassword":modifyPassword(req, resp);break;case "checkOldPassword":checkOldPassword(req, resp);break;case "afterModifyPassword":afterModifyPassword(req, resp);break;case "logout":logout(req, resp);break;}}/*** 用户登录* @throws IOException */public void login(HttpServletRequest req, HttpServletResponse resp) throws IOException {//设置请求编码格式:req.setCharacterEncoding("utf-8");//设置响应编码格式			resp.setContentType("text/html;charset=utf-8");//获取前端页面传来的用户名String userName = req.getParameter("userName");//获取前端页面传来的密码String password = req.getParameter("password");// 1、先验证该用户的角色是否为管理员String userRole = service.getUserRoleByName(userName);try {if(!"admin".equals(userRole)) {JSONResult errorMsg = JSONResult.errorMsg("暂无登录权限");resp.getWriter().println(JsonUtil.javaObjectToJson(errorMsg));}else {//2、获取用户数据 进行用户名和密码验证User user = service.getUserByNameAndPassword(userName, password);if(user!=null) {//将用户数据保存到session 作用域中,方便在后续的操作中使用用户数据req.getSession().setAttribute("user", user);JSONResult ok = JSONResult.ok();resp.getWriter().println(JsonUtil.javaObjectToJson(ok));}else {// 将错误信息封装在结果集中JSONResult result = JSONResult.errorMsg("用户名或密码错误,请重试");//以json的形式返回给前端resp.getWriter().println(JsonUtil.javaObjectToJson(result));}}} catch (Exception e) {e.printStackTrace();}}/*** 检查旧密码是否正确 ,在修改密码操作时使用* @throws IOException */public void checkOldPassword(HttpServletRequest req, HttpServletResponse resp) throws IOException {//设置请求编码格式:req.setCharacterEncoding("utf-8");//设置响应编码格式			resp.setContentType("text/html;charset=utf-8");User user =(User) req.getSession().getAttribute("user");String oldPassword = service.getPasswordById(user.getId()); String password = req.getParameter("password");try {if(!oldPassword.equals(password)) {JSONResult errorMsg = JSONResult.errorMsg("原始密码错误,请重新输入");resp.getWriter().println(JsonUtil.javaObjectToJson(errorMsg));}else {JSONResult ok = JSONResult.ok();resp.getWriter().println(JsonUtil.javaObjectToJson(ok));}} catch (IOException e) {e.printStackTrace();}}/***  修改密码* @throws IOException */public void modifyPassword(HttpServletRequest req, HttpServletResponse resp) throws IOException {//设置请求编码格式:req.setCharacterEncoding("utf-8");//设置响应编码格式			resp.setContentType("text/html;charset=utf-8");String password = req.getParameter("newPassword");User user =(User) req.getSession().getAttribute("user");int id = user.getId();int d = service.updatePasswordById(id, password);try {if(d>0) {JSONResult ok = JSONResult.ok();resp.getWriter().println(JsonUtil.javaObjectToJson(ok));}else {JSONResult errorMsg = JSONResult.errorMsg("修改失败,请重试");resp.getWriter().println(JsonUtil.javaObjectToJson(errorMsg));}			} catch (Exception e) {e.printStackTrace();}}/*** 成功修改密码后,清除session中的数据,并且重新跳转到登录页* @param req* @param resp*/public void afterModifyPassword(HttpServletRequest req, HttpServletResponse resp) {req.getSession().removeAttribute("user");try {//使用iframe时,要避免这种直接跳转的方式// 此时只会让内嵌的iframe跳转到登录页,并非整个页面
//			resp.sendRedirect("backstage/login.jsp");PrintWriter writer = resp.getWriter();writer.print("<html>");writer.print("<script>");writer.print("window.open('"+ req.getContextPath()+"/backstage/login.jsp','_top')");writer.print("</script>");writer.print("</html>");} catch (IOException e) {e.printStackTrace();}}/*** 退出登录*/public void logout(HttpServletRequest req, HttpServletResponse resp) {req.getSession().removeAttribute("user");try {resp.sendRedirect("backstage/login.jsp");} catch (IOException e) {e.printStackTrace();}}
}

源码获取:博客首页 "资源" 里下载!

相关文章:

SOAP消息的传递

上一篇说了SOAP消息的创建&#xff0c;那么创建好了的SOAP消息要怎么发送给服务端呢&#xff1f; public class SoapTest {private String wsdlUri "http://localhost:9999/ns?wsdl";private String ns "http://lenve.server/";Testpublic void test3()…

mfc---手动给toolbar按钮添加消息View中

手动给toolbar按钮添加消息View中&#xff1a; .h&#xff1a; afx_msg void OnButtonBG(); .cpp: ON_COMMAND(ID_BUTTON_BG,OnButtonBG) .cpp: void OnButton()转载于:https://www.cnblogs.com/xiaoxiaocaicai/p/3595290.html

费马小定理求素数

/*---------------------------------------------------费马小定理:如果n是一个素数&#xff0c;a是小于n的任意正整数&#xff0c;那么a的n次方与a模n同余。(俩个数称为模n同余&#xff0c;如果它们除以n的余数相同。数a除以n的余数称为a取模n的余数&#xff0c;或简称为a取模…

Java项目:垃圾分类查询管理系统(java+SSM+jsp+MySQL+bootstrap)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; jspssm&#xff08;springspringmvcmybatis&#xff09;mysql实现的垃圾分类查询管理系统: 系统主要实现的功能有&#xff1a; 1&#xff1a;前端垃圾分类查询&#xff0c;前端采用bootstrap框架&#xff…

适合所有尺寸打印马赛克

CGFloat width 40;CGFloat height 40;//获取屏幕宽高//获取屏幕对象UIScreen *screen [UIScreen mainScreen];//获取屏幕大小CGRect screenFrame [screen bounds];//单独取出屏幕的宽高 // CGFloat screenWidth screenFrame.size.width;CGFloat screenWidth CGRectGet…

MVC使用Flash来显示图片

Insus.NET实现一些网站模版&#xff0c;如用户能动态变更网站的头&#xff0c;中间或是脚的部位&#xff0c;就是不太确定用户上传的是图片&#xff0c;还是Flash。因此想到一个较好的解决方法&#xff0c;就是使用Flash的组件去显示来源的图片或是.swf文件。这样的话&#xff…

shuffle调优

目录 一、概述二、shuffle的定义三、ShuffleMananger发展概述四、HashShuffleManager的运行原理 4.1 未经优化的HashShuffleManager4.2 优化后的HashShuffleManager五、SortShuffleManager运行原理 5.1 普通运行机制5.2 bypass运行机制六、shuffle相关参数调优 spark.shuffle.f…

Java8 以后的 LocalDateTime,你真的会用吗?

本文从 LocalDateTime 类的创建、转换、格式化与解析、计算与比较以及其他操作几个方面详细介绍了 LocalDateTime 类在 Java 8 中的使用。掌握 LocalDateTime 类的使用可以大大提高日期时间处理效率和质量,希望本文对读者有所帮助。

斐波那契算法举例(iterative Fibonacci algorithm)

// count_change.cpp : Defines the entry point for the console application.// #include "stdafx.h" /*-------------------------------------------------------------实例&#xff1a;要想得到一个迭代的斐波那契算法需要一点点智慧。给了半美元、四分之一美…

Java项目:零食商城系统(java+SSM+jsp+MySQL+EasyUI)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 系统主要实现的功能有&#xff1a;用户浏览商品、加入商品到购物车、登录注册、提交订单&#xff0c;会员中心修改个人信息、查看订单等。 后台管理员登录后可以分角色添加管理员&#xff0c;不同角色有不同…

skiplist 跳表(1)

最近学习中遇到一种新的数据结构&#xff0c;很实用&#xff0c;搬过来学习。 原文地址&#xff1a;skiplist 跳表 为什么选择跳表 目前经常使用的平衡数据结构有&#xff1a;B树&#xff0c;红黑树&#xff0c;AVL树&#xff0c;Splay Tree, Treep等。 想象一下&#xff0c;给…

前端学习笔记系列一:14 vue3.X中alias的配置

第一步&#xff1a; 第二步&#xff1a; // vue.config.js module.exports { configureWebpack: { resolve: { alias: { assets: /assets, components: /components, views: /views, } } }, } 并且&#xff0c;在没有自行配置alias的时候&#xff0c;就已经可以使用inquire(‘…

【转】sed 简明教程

本文转自&#xff1a;http://coolshell.cn/articles/9104.html awk于1977年出生&#xff0c;今年36岁本命年&#xff0c;sed比awk大2-3岁&#xff0c;awk就像林妹妹&#xff0c;sed就是宝玉哥哥了。所以 林妹妹跳了个Topless&#xff0c;他的哥哥sed坐不住了&#xff0c;也一定…

帕斯卡三角形(Pascal's triangle)

// The following code is compiled on VC2005 // #include "stdafx.h" /*-----------------------------------------------下面数值模式称为帕斯卡三角形(Pascals triangle)11 11 2 11 3 3 11 4 6 4 1 ...三角形边界上的数都是1&#xff0c;内部的每个数数是位…

Java项目:高校学生社团活动管理系统(java+springboot+freemark+jpa+mysql)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 前台&#xff1a; 1、社团信息浏览搜索、社团活动风采、新闻信息浏览搜索。 2、学生注册登录。 3、登录后可自己申请创建社团&#xff0c;也可申请加入其他社团活动。 4、管理自己社团的申请人员。 5个…

linux nfs共享文件

linux文件共享可以有多种方式&#xff1a;samba,nfs,ftp等等 nfs在linux之间效率高些&#xff1a; function nfs(){share_folder"/data1 192.168.0.239(rw,sync,no_root_squash)"yum install nfs-utils rpcbindecho $share_folder >> /etc/exportsexportfs -rv…

我有一个朋友写出了17种触发NPE的代码!避免这些坑

在JUnit4中,使用Mockito框架时,any() 是一个参数匹配器,当与基本数据类型一起使用时,需要使用相应的类型特定的匹配器,例如使用anyInt() 而不是any()。要防范它,不在高超的编码技巧,在细。的可能性,却并不是万能的,比如开发者在使用Optional,不检查是否存在,直接调用Optional.get(),那么会得到一个NoSuchElementException。我有一个朋友,写代码的时候常常遭到NPE背刺,痛定思痛,总结了NPE出没的17个场景,哪一个你还没有遇到过?

黑色星期五Friday the Thirteenth

题目描述 13号又是一个星期五。13号在星期五比在其他日子少吗?为了回答这个问题,写一个程序&#xff0c;要求计算每个月的十三号落在周一到周日的次数。给出N年的一个周期&#xff0c;要求计算1900年1月1日至1900N-1年12月31日中十三号落在周一到周日的次数&#xff0c;N为正整…

帕斯卡三角形与道路问题

苏珊很为难.她步行去学校,路上老是遇到斯廷基.斯廷基:"嘿嘿,苏珊,我可以陪你一起走吗?" 苏珊:"不!请走开."苏珊心想:我有办法了.每天早上我走不同的路线去学校.这样斯廷基就不知道在哪儿找到我了.这张地图表示苏珊的住所和学校之间的所有街道.苏珊去学校…

Java项目:学生信息管理系统(java+SSM+JSP+layui+maven+mysql)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目简述 功能包括&#xff1a; 三角色管理: 学生&#xff0c;教师&#xff0c;管理员&#xff0c;在线选课&#xff0c;成绩录入&#xff0c;学生管理&#xff0c;选课管理&#xff0c;教室管理等等。…

Java for LeetCode 067 Add Binary

Given two binary strings, return their sum (also a binary string). For example, a "11" b "1" Return "100". 解题思路&#xff1a; JAVA实现如下&#xff1a; static public String addBinary(String a, String b) {if (a.length() <…

ON DUPLICATE KEY UPDATE 导致mysql自增主键ID跳跃增长

具体解决方案可以根据项目来选择,如果项目不大,可以考虑1和2。如果不考虑高并发问题,可以考虑3。

一起学JDK源码 -- System类

System类是被final修饰的,不能被继承。

python csv模块心得

2019独角兽企业重金招聘Python工程师标准>>> with open(tiger.csv, wb) as csvfile:writer csv.writer(csvfile, quotingcsv.QUOTE_ALL)row [中国, 美国, 台湾, 马来西亚]writer.writerow([unicode(s).encode("utf-8") for s in row]) 转载于:https://m…

全局变量及输出语句

全局变量 是系统已经定义好的变量&#xff0c;主要反映sql数据库的操作状态。 全局变量名称以开头‘ 举例 identity:返回最后插入的标识值 error&#xff1a;返回执行的上一个T_sql语句的错误号 常用的输出语句 print&#xff1a;结果有消息中以文的形式显示 select&#xff1a…

Nested Mappings

/*hanzhiguang coded at 2009.07.30 1:20*/ // nesting_map.cpp : Defines the entry point for the console application. // /*------------------------------------------------------------------------- 给定自然数n,找出所有不同的有序对i和j,其中 1<j<i<n,使得…

Java项目:CRM客户关系管理系统(java+Springboot+maven+mysql)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; Springboot项目CRM客户关系管理系统: 系统实现了CRM客户关系系统的基本功能&#xff0c;主要有看板&#xff08;当月参与的业务机会、当月转化情况、将要结束的业务机会等&#xff09;、业务机会&#xff0…

linux下occi操作oracle数据库,中文乱码的问题

转载&#xff1a;http://www.linuxidc.com/Linux/2008-02/11238.htm 前几日调通了OCI连接数据库的问题后&#xff0c;用Oracle自带的例子测试了一下&#xff0c;能正常读取数据&#xff08;都是英文的&#xff09;&#xff0c;就放心了&#xff0c;转去开发别的模块。这几天做数…

tomcat启动时一闪而过的问题

在CMD窗口中输入 cd E:\apache-tomcat-7.0.52\bin 后再输入E:显示进入相应目录E:\apache-tomcat-7.0.52\bin后&#xff0c;再输入startup 后窗口一闪而过&#xff0c;可通过以下步骤进行调试解决&#xff1a;1.检查确认JAVA_HOME配置正确&#xff0c;可以在命令行中输入java显示…

The Long-Term Stability of Ecosystems

The Long-Term Stability of Ecosystems Plant communities assemble themselves flexibly, and their particular structure depends on the specific history of the area. Ecologists use the term “succession”to refer to the changes that happen in plant communities…