Java项目:农资采购销售系统(java+SSM+Easyui+maven+Mysql)
源码获取:博客首页 "资源" 里下载!
项目描述:
一个完整的农资采购销售系统,系统分为前台会员注册登陆,农资信息浏览,农资详情信息查看,加入购物车,提交订单,付款购买农资等;后台管理员对人员信息的管理,首页图片管理(系统可配置化),农资订单管理,图标统计,农资信息管理
运行环境:
jdk8+tomca8+mysql+IntelliJ IDEA+maven
项目技术:
spring+spring mvc+mybatis+jquery+jquery.easyui.min.js
前端登录:http://localhost:8080/snack/shop/index
后台登录:http://localhost:8080/snack//admin/login/adminLogin
商品参数管理代码:
/*** Item Controller*/
@Controller
@RequestMapping("/item")
public class ItemController extends BaseController {@Autowiredprivate ItemService itemService;@Autowiredprivate ItemCategoryService itemCategoryService;@RequestMapping("/findbysql")public String findBySql(Model model, Item item) {String sql = "select * from item where 1=1 and isDelete = 0";if (!isEmpty(item.getName())) {sql += " and name like '%" + item.getName() + "%' ";}sql += " order by id";Pager<Item> itemList = itemService.findBySqlRerturnEntity(sql);model.addAttribute("pagers", itemList);model.addAttribute("obj", item);return "item/itemList";}/*** 转到添加商品页面** @param model* @return*/@RequestMapping("/add")public String addItem(Model model) {String sql = "select * from item_category where isDelete = 0 and pid is not null order by id";Pager<ItemCategory> pagers = itemCategoryService.findBySqlRerturnEntity(sql);model.addAttribute("types", pagers);return "item/addItem";}/*** 执行添加操作** @param item* @param files CommonsMultipartFile用于文件上传* @return*/@RequestMapping("/exadd")public String exaddItem(Item item, @RequestParam("file") CommonsMultipartFile[] files, HttpServletRequest request) throws IOException {itemCommon(item, files, request);item.setGmNum(0);item.setIsDelete(0);item.setScNum(0);itemService.insert(item);return "redirect:/item/findbysql.action";}/*** 跳转到修改商品页面** @param id 选中的商品主键* @param model* @return*/@RequestMapping("/update")public String updateItem(Integer id, Model model) {Item obj = itemService.load(id);String sql = "select * from item_category where isDelete = 0 and pid is not null order by id";List<ItemCategory> listBySqlReturnEntity = itemCategoryService.listBySqlReturnEntity(sql);model.addAttribute("types", listBySqlReturnEntity);model.addAttribute("obj", obj);return "/item/updateItem";}/*** 执行修改** @param item* @param files* @param request* @return* @throws IOException*/@RequestMapping("exUpdateItem")public String exUpdateItem(Item item, @RequestParam("file") CommonsMultipartFile[] files, HttpServletRequest request) throws IOException {itemCommon(item, files, request);itemService.updateById(item);return "redirect:/item/findbysql.action";}/*** 商品下架* @param id* @return*/@RequestMapping("/remove")public String removeItem(Integer id) {String sql = "update item set isDelete = 1 where id=";String sql1 = Integer.toString(id) ;itemService.updateBysql(sql+sql1);return "redirect:/item/findbysql.action";}/*** 上传文件的公共方法** @param item* @param files* @param request* @throws IOException*/private void itemCommon(Item item, @RequestParam("file") CommonsMultipartFile[] files, HttpServletRequest request) throws IOException {if (files.length > 0) {for (int s = 0; s < files.length; s++) {String n = UUIDUtils.create();String path = SystemContext.getRealPath() + "\\resource\\ueditor\\upload\\" + n + files[s].getOriginalFilename();File newFile = new File(path);//通过CommonsMultipartFile的方法直接写文件files[s].transferTo(newFile);if (s == 0) {item.setUrl1(request.getContextPath() + "\\resource\\ueditor\\upload\\" + n + files[s].getOriginalFilename());}if (s == 1) {item.setUrl2(request.getContextPath() + "\\resource\\ueditor\\upload\\" + n + files[s].getOriginalFilename());}if (s == 2) {item.setUrl3(request.getContextPath() + "\\resource\\ueditor\\upload\\" + n + files[s].getOriginalFilename());}if (s == 3) {item.setUrl4(request.getContextPath() + "\\resource\\ueditor\\upload\\" + n + files[s].getOriginalFilename());}if (s == 4) {item.setUrl5(request.getContextPath() + "\\resource\\ueditor\\upload\\" + n + files[s].getOriginalFilename());}}}ItemCategory byId = itemCategoryService.getById(item.getCategoryIdTwo());item.setCategoryIdOne(byId.getPid());}@RequestMapping("/shoplist")public String shoplist(String condition ,Item item,Model model,String price,String gmNum){String sql = "select * from item where isDelete=0";if(!isEmpty(item.getCategoryIdTwo())){sql+=" and category_id_two="+item.getCategoryIdTwo();}if(!isEmpty(condition)){sql+=" and name like '%"+condition+"%'";}if(!isEmpty(price)){sql+=" order by (price+0) ";}if(!isEmpty(gmNum)){sql+=" order by gmNum desc";}Pager<Item> itemList = itemService.findBySqlRerturnEntity(sql);model.addAttribute("pagers",itemList);model.addAttribute("obj",item);// model.addAttribute()return "/item/shoplist";}/*** 商品详情页面* @param item* @param request* @return*/@RequestMapping("/view")public String view(Item item ,HttpServletRequest request){Item itemObj = itemService.getById(item.getId());request.setAttribute("obj",itemObj);return "item/viewlist";}
}
订单管理代码:
/*** 订单controller*/
@Controller
@RequestMapping("/itemOrder")
public class ItemOrderController extends BaseController {@Autowiredprivate ItemOrderService itemOrderService;@Autowiredprivate UserService userService;@Autowiredprivate ItemService itemService;@Autowiredprivate CarService carService;@Autowiredprivate OrderDetailService orderDetailService;@RequestMapping("/findBySql")public String itemOrderList(HttpServletRequest request,ItemOrder itemOrder){String sql = "select * from item_order where isDelete=0";if (!isEmpty(itemOrder.getCode())){sql+=" and code like '%"+itemOrder.getCode()+"%'";}sql+=" order by id desc";Pager<ItemOrder> data = itemOrderService.findBySqlRerturnEntity(sql);request.setAttribute("pagers",data);request.setAttribute("obj",itemOrder);return "/itemOrder/itemOrderList";}@RequestMapping("/my")public String my(HttpServletRequest request, Model model){//判断当前用户是否登录Object userId = request.getSession().getAttribute("userId");if(userId==null){return "login/uLogin";}Integer id = Integer.valueOf(userId.toString());//查询全部订单String sql = "select * from item_order where isDelete=0 and user_id="+id+" order by id";//Pager<ItemOrder> itemOrderAll = itemOrderService.findBySqlRerturnEntity(sql);List<ItemOrder> itemOrderAll = itemOrderService.listBySqlReturnEntity(sql);//查询待发货订单String sql1 = "select * from item_order where isDelete=0 and status=0 and user_id="+id+" order by id";//Pager<ItemOrder> itemOrder0 = itemOrderService.findBySqlRerturnEntity(sql);List<ItemOrder> itemOrder0 = itemOrderService.listBySqlReturnEntity(sql1);//查询已取消订单String sql2 = "select * from item_order where isDelete=0 and status=1 and user_id="+id+" order by id";// Pager<ItemOrder> itemOrder1 = itemOrderService.findBySqlRerturnEntity(sql);List<ItemOrder> itemOrder1 = itemOrderService.listBySqlReturnEntity(sql2);//查询已发货订单String sql3 = "select * from item_order where isDelete=0 and status=2 and user_id="+id+" order by id";// Pager<ItemOrder> itemOrder2 = itemOrderService.findBySqlRerturnEntity(sql);List<ItemOrder> itemOrder2 = itemOrderService.listBySqlReturnEntity(sql3);//查询已收货订单String sql4 = "select * from item_order where isDelete=0 and status=3 and user_id="+id+" order by id";// Pager<ItemOrder> itemOrder3 = itemOrderService.findBySqlRerturnEntity(sql);List<ItemOrder> itemOrder3 = itemOrderService.listBySqlReturnEntity(sql4);//查询已评价订单String sql5 = "select * from item_order where isDelete=0 and status=4 and user_id="+id+" order by id";// Pager<ItemOrder> itemOrder4 = itemOrderService.findBySqlRerturnEntity(sql);List<ItemOrder> itemOrder4 = itemOrderService.listBySqlReturnEntity(sql5);/*request.setAttribute("add",itemOrderAll);request.setAttribute("add0",itemOrder0);request.setAttribute("add1",itemOrder1);request.setAttribute("add2",itemOrder2);request.setAttribute("add3",itemOrder3);request.setAttribute("add4",itemOrder4);*/model.addAttribute("add",itemOrderAll);model.addAttribute("add0",itemOrder0);model.addAttribute("add1",itemOrder1);model.addAttribute("add2",itemOrder2);model.addAttribute("add3",itemOrder3);model.addAttribute("add4",itemOrder4);return "/item/view";}/*** 结算提交* @param list* @param request* @return*/@RequestMapping("/exAdd")@ResponseBodypublic String repairStart(@RequestBody List<CarDto> list,HttpServletRequest request) {//判断是否登录,没有登录返回0Object userId = request.getSession().getAttribute("userId");JSONObject json = new JSONObject();if (userId == null) {json.put(Consts.RES, 0);return json.toJSONString();}//判断用户是否填写了地址Integer id = Integer.valueOf(userId.toString());User user = userService.getById(id);if(StringUtil.isEmpty(user.getAddress())){json.put(Consts.RES,2);}//生成订单表List<Integer> ids = new ArrayList<Integer>();// Double b = 0.0; //价格BigDecimal b = new BigDecimal(0);for (CarDto carDto:list){ids.add(carDto.getId());Car car = carService.getById(carDto.getId());// b+=car.getPrice()*carDto.getNum();b =b.add(new BigDecimal(car.getPrice()).multiply(new BigDecimal(carDto.getNum())));}ItemOrder itemOrder = new ItemOrder();itemOrder.setUserId(id);SimpleDateFormat sd = new SimpleDateFormat("yyyyMMddHHmmss");itemOrder.setCode(sd.format(new Date()));itemOrder.setAddTime(new Date());itemOrder.setTotal(b.setScale(2,BigDecimal.ROUND_HALF_UP).toString());itemOrder.setIsDelete(0);itemOrder.setStatus(0);itemOrderService.insert(itemOrder);//生成订单详情表if(!CollectionUtils.isEmpty(ids)){for (CarDto carDto:list){Car load = carService.load(carDto.getId());OrderDetail orderDetail = new OrderDetail();orderDetail.setItemId(load.getItemId());orderDetail.setOrderId(itemOrder.getId());orderDetail.setStatus(0);orderDetail.setNum(load.getNum());orderDetail.setTotal(String.valueOf(carDto.getNum()*load.getPrice()));orderDetailService.insert(orderDetail);//修改商品成交数Item item = itemService.getById(load.getItemId());item.setGmNum(item.getGmNum()+carDto.getNum());//删除购物车carService.deleteById(carDto.getId());}}json.put(Consts.RES,1);return json.toJSONString();}/*** 取消订单* @param model* @param id* @return*/@RequestMapping("/qx")public String itemOrderqx(Model model,Integer id){ItemOrder obj = itemOrderService.getById(id);obj.setStatus(1);itemOrderService.updateById(obj);model.addAttribute("obj",obj);return "redirect:/itemOrder/my.action";}/*** 后台发货* @param id* @return*/@RequestMapping("/fh")public String itemOrderfh(Integer id){ItemOrder obj = itemOrderService.getById(id);obj.setStatus(2);itemOrderService.updateById(obj);return "redirect:/itemOrder/findBySql.action";}/*** 用户收货* @param id* @return*/@RequestMapping("/sh")public String itemOrdersh(Integer id){ItemOrder obj = itemOrderService.getById(id);obj.setStatus(3);itemOrderService.updateById(obj);return "redirect:/itemOrder/my.action";}/*** 进入商品评价页面* @param id* @param model* @return*/@RequestMapping("/pj")public String itemOrderpj(Integer id,Model model,Integer orderId){model.addAttribute("id",id);model.addAttribute("orderId",orderId);return "itemOrder/pj";}
}
系统控制器用户 登录、注销、修改等:
/*** 系统控制器* @author yy**/
@RequestMapping("/system")
@Controller
public class SystemController {@Autowiredprivate OperaterLogService operaterLogService;@Autowiredprivate UserService userService;@Autowiredprivate DatabaseBakService databaseBakService;@Autowiredprivate StaffService staffService;@Autowiredprivate OrderAuthService orderAuthService;private Logger log = LoggerFactory.getLogger(SystemController.class);/*** 登录页面* @param model* @return*/@RequestMapping(value="/login",method=RequestMethod.GET)public String login(Model model){model.addAttribute("loginTypes", LoginType.values());return "admin/system/login";}/*** 用户登录提交表单处理方法* @param request* @param cpacha* @return*/@RequestMapping(value="/login",method=RequestMethod.POST)@ResponseBodypublic Result<Boolean> login(HttpServletRequest request,String username,String password,String cpacha,Integer type){if(StringUtils.isEmpty(username)){return Result.error(CodeMsg.ADMIN_USERNAME_EMPTY);}if(StringUtils.isEmpty(password)){return Result.error(CodeMsg.ADMIN_PASSWORD_EMPTY);}//表示实体信息合法,开始验证验证码是否为空if(StringUtils.isEmpty(cpacha)){return Result.error(CodeMsg.CPACHA_EMPTY);}//说明验证码不为空,从session里获取验证码Object attribute = request.getSession().getAttribute("admin_login");if(attribute == null){return Result.error(CodeMsg.SESSION_EXPIRED);}//表示session未失效,进一步判断用户填写的验证码是否正确if(!cpacha.equalsIgnoreCase(attribute.toString())){return Result.error(CodeMsg.CPACHA_ERROR);}if(type == LoginType.ADMINISTRATOR.getCode()){//表示验证码正确,开始查询数据库,检验密码是否正确User findByUsername = userService.findByUsername(username);//判断是否为空if(findByUsername == null){return Result.error(CodeMsg.ADMIN_USERNAME_NO_EXIST);}//表示用户存在,进一步对比密码是否正确if(!findByUsername.getPassword().equals(password)){return Result.error(CodeMsg.ADMIN_PASSWORD_ERROR);}//表示密码正确,接下来判断用户状态是否可用if(findByUsername.getStatus() == User.ADMIN_USER_STATUS_UNABLE){return Result.error(CodeMsg.ADMIN_USER_UNABLE);}//检查用户所属角色状态是否可用if(findByUsername.getRole() == null || findByUsername.getRole().getStatus() == Role.ADMIN_ROLE_STATUS_UNABLE){return Result.error(CodeMsg.ADMIN_USER_ROLE_UNABLE);}//检查用户所属角色的权限是否存在if(findByUsername.getRole().getAuthorities() == null || findByUsername.getRole().getAuthorities().size() == 0){return Result.error(CodeMsg.ADMIN_USER_ROLE_AUTHORITES_EMPTY);}//检查一切符合,可以登录,将用户信息存放至sessionrequest.getSession().setAttribute(SessionConstant.SESSION_USER_LOGIN_KEY, findByUsername);request.getSession().setAttribute("loginType",type);//销毁session中的验证码request.getSession().setAttribute("admin_login", null);//将登陆记录写入日志库operaterLogService.add("用户【"+username+"】于【" + StringUtil.getFormatterDate(new Date(), "yyyy-MM-dd HH:mm:ss") + "】登录系统!");log.info("用户成功登录,user = " + findByUsername);}else{Staff byJobNumber = staffService.findByNameAndIsStatus(username);//判断是否为空if(byJobNumber == null){return Result.error(CodeMsg.ADMIN_USERNAME_NO_EXIST);}//表示用户存在,进一步对比密码是否正确if(!byJobNumber.getPassword().equals(password)){return Result.error(CodeMsg.ADMIN_PASSWORD_ERROR);}//检查用户所属角色状态是否可用if(byJobNumber.getRole() == null || byJobNumber.getRole().getStatus() == Role.ADMIN_ROLE_STATUS_UNABLE){return Result.error(CodeMsg.ADMIN_USER_ROLE_UNABLE);}//检查用户所属角色的权限是否存在if(byJobNumber.getRole().getAuthorities() == null || byJobNumber.getRole().getAuthorities().size() == 0){return Result.error(CodeMsg.ADMIN_USER_ROLE_AUTHORITES_EMPTY);}//检查一切符合,可以登录,将用户信息存放至sessionrequest.getSession().setAttribute(SessionConstant.SESSION_STAFF_LOGIN_KEY, byJobNumber);request.getSession().setAttribute("loginType",type);//销毁session中的验证码request.getSession().setAttribute("admin_login", null);//将登陆记录写入日志库operaterLogService.add("用户【"+username+"】于【" + StringUtil.getFormatterDate(new Date(), "yyyy-MM-dd HH:mm:ss") + "】登录系统!");log.info("员工成功登录,user = " + byJobNumber);}return Result.success(true);}/*** 登录成功后的系统主页* @param model* @return*/@RequestMapping(value="/index")public String index(Model model){model.addAttribute("operatorLogs", operaterLogService.findLastestLog(10));model.addAttribute("userTotal", userService.total());model.addAttribute("operatorLogTotal", operaterLogService.total());model.addAttribute("databaseBackupTotal", databaseBakService.total());model.addAttribute("onlineUserTotal", SessionListener.onlineUserCount);return "admin/system/index";}/*** 注销登录* @return*/@RequestMapping(value="/logout")public String logout(){Integer loginType = (Integer) SessionUtil.get("loginType");if(loginType == LoginType.ADMINISTRATOR.getCode()){User loginedUser = SessionUtil.getLoginedUser();if(loginedUser != null){SessionUtil.set(SessionConstant.SESSION_USER_LOGIN_KEY, null);}}else if(loginType == LoginType.STAFF.getCode()){Staff loginedStaff = SessionUtil.getLoginedStaff();if(loginedStaff != null){SessionUtil.set(SessionConstant.SESSION_STAFF_LOGIN_KEY,null);}}return "redirect:login";}/*** 无权限提示页面* @return*/@RequestMapping(value="/no_right")public String noRight(){return "admin/system/no_right";}/*** 修改用户个人信息* @return*/@RequestMapping(value="/update_userinfo",method=RequestMethod.GET)public String updateUserInfo(){return "admin/system/update_userinfo";}/*** 修改个人信息保存* @param user* @return*/@RequestMapping(value="/update_userinfo",method=RequestMethod.POST)public String updateUserInfo(User user){User loginedUser = SessionUtil.getLoginedUser();loginedUser.setEmail(user.getEmail());loginedUser.setMobile(user.getMobile());loginedUser.setHeadPic(user.getHeadPic());//首先保存到数据库userService.save(loginedUser);//更新session里的值SessionUtil.set(SessionConstant.SESSION_USER_LOGIN_KEY, loginedUser);return "redirect:update_userinfo";}/*** 修改密码页面* @return*/@RequestMapping(value="/update_pwd",method=RequestMethod.GET)public String updatePwd(){return "admin/system/update_pwd";}/*** 修改密码表单提交* @param oldPwd* @param newPwd* @return*/@RequestMapping(value="/update_pwd",method=RequestMethod.POST)@ResponseBodypublic Result<Boolean> updatePwd(@RequestParam(name="oldPwd",required=true)String oldPwd,@RequestParam(name="newPwd",required=true)String newPwd){Integer loginType = (Integer) SessionUtil.get("loginType");if(loginType == LoginType.ADMINISTRATOR.getCode()){User loginedUser = SessionUtil.getLoginedUser();if(!loginedUser.getPassword().equals(oldPwd)){return Result.error(CodeMsg.ADMIN_USER_UPDATE_PWD_ERROR);}if(StringUtils.isEmpty(newPwd)){return Result.error(CodeMsg.ADMIN_USER_UPDATE_PWD_EMPTY);}if(newPwd.length()<4 || newPwd.length()>32){return Result.error(CodeMsg.ADMIN_USER_PWD_LENGTH_ERROR);}loginedUser.setPassword(newPwd);//保存数据库userService.save(loginedUser);//更新sessionSessionUtil.set(SessionConstant.SESSION_USER_LOGIN_KEY, loginedUser);}else{Staff loginedStaff = SessionUtil.getLoginedStaff();Staff staff = staffService.find(loginedStaff.getId());if(!staff.getPassword().equals(oldPwd)){return Result.error(CodeMsg.ADMIN_USER_UPDATE_PWD_ERROR);}if(StringUtils.isEmpty(newPwd)){return Result.error(CodeMsg.ADMIN_USER_UPDATE_PWD_EMPTY);}staff.setPassword(newPwd);CodeMsg codeMsg = ValidateEntityUtil.validate(staff);if (codeMsg.getCode() != CodeMsg.SUCCESS.getCode()){return Result.error(codeMsg);}loginedStaff.setPassword(newPwd);//保存数据库staffService.save(loginedStaff);//更新sessionSessionUtil.set(SessionConstant.SESSION_STAFF_LOGIN_KEY, loginedStaff);}return Result.success(true);}/*** 日志管理列表* @param model* @param operaterLog* @param pageBean* @return*/@RequestMapping(value="/operator_log_list")public String operatorLogList(Model model,OperaterLog operaterLog,PageBean<OperaterLog> pageBean){model.addAttribute("pageBean", operaterLogService.findList(operaterLog, pageBean));model.addAttribute("operator", operaterLog.getOperator());model.addAttribute("title", "日志列表");return "admin/system/operator_log_list";}/*** 验证订单* @param orderSn* @param phone* @return*/@RequestMapping(value="/auth_order",method=RequestMethod.POST)@ResponseBodypublic Result<Boolean> authOrder(@RequestParam(name="orderSn",required=true)String orderSn,@RequestParam(name="phone",required=true)String phone){OrderAuth orderAuth = new OrderAuth();orderAuth.setMac(StringUtil.getMac());orderAuth.setOrderSn(orderSn);orderAuth.setPhone(phone);orderAuthService.save(orderAuth);AppConfig.ORDER_AUTH = 1;return Result.success(true);}/*** 删除操作日志,可删除多个* @param ids* @return*/@RequestMapping(value="/delete_operator_log",method=RequestMethod.POST)@ResponseBodypublic Result<Boolean> delete(String ids){if(!StringUtils.isEmpty(ids)){String[] splitIds = ids.split(",");for(String id : splitIds){operaterLogService.delete(Long.valueOf(id));}}return Result.success(true);}/*** 清空整个日志* @return*/@RequestMapping(value="/delete_all_operator_log",method=RequestMethod.POST)@ResponseBodypublic Result<Boolean> deleteAll(){operaterLogService.deleteAll();return Result.success(true);}
}
源码获取:博客首页 "资源" 里下载!
相关文章:

springMVC 拦截器
为什么80%的码农都做不了架构师?>>> 实现springMVC 拦截器步骤: 1.定义拦截器类HandlerInterceptor 继承HandlerInterceptor public class Interceptor implements HandlerInterceptor { /**preHandle:预处理回调方法&#…

django学习笔记--数据库中的多表操作
1.Django数据库----多表的新增操作 1.一对一模式下新增 创建一个详情对象,把这个对象赋值给创建的新的user对象 author_detail models.AuthorDetail.objects.create(addr上海,phone178****4789) # 直接设置author_detail为一个对象 author models.Author.objects.…

+z +Z compiler flag for HP
1. 今天遇到一问题,在sles11/vxworks下编译通过,但是在hpux下失败 2. 编译错误: /usr/ccs/bin/ld:DP relative code in file /projects/xxx/DERIVED/tfa_pa32-hpux.a(tfa02_pa32-hpux.o) -shared library must be position indep…

DP UVALive 6506 Padovan Sequence
题目传送门 /*题意:两行数字,相邻列一上一下,或者隔一列两行都可以,从左到右选择数字使和最大DP:状态转移方程:dp[i][j] max (dp[i][j], dp[1-i][j-1] a[i][j], dp[i/1-i][j-2] a[i][j]);要从前面一个转…

Java项目:基于遗传算法学校排课系统(java+Springboot+Maven+mybatis+Vue+Mysql)
源码获取:博客首页 "资源" 里下载! 一、项目简述本系统功能包括: 排课管理,课程管理,讲师管理,班级管理,学生管理,教学资料,学习文档,在线测试&…

冲刺周期会议七
一、会议时间:2014年5月6日20:30--21:00 二、会议地点:学院楼一楼大厅 三、会议目的:统计任务进度,记录会议问题 四、会议内容: 1、对近几天的项目进度进行总结: 由于刚刚开始学习安卓,无论是配置环境还是学…

chrdev字符设备几种注册方式的差异
数据结构 #define CHRDEV_MAJOR_HASH_SIZE 255static struct char_device_struct {struct char_device_struct *next;unsigned int major;unsigned int baseminor;int minorct;char name[64];struct file_operations *fops;struct cdev *cdev; /* will die */ } *chrdevs[CHRD…

ldconfig及 LD_LIBRARY_PATH
ldconfig及 LD_LIBRARY_PATH 1. 往/lib和/usr/lib里面加东西,是不用修改/etc/ld.so.conf的,但是完了之后要调一下ldconfig,不然这个library会找不到 2.想往上面两个目录以外加东西的时候,一定要修改/etc/ld.so.conf,然…

Java项目:诚途旅游系统(java+JSP+Spring+SSM+Mysql)
源码获取:博客首页 "资源" 里下载! 采用ssm架构实现的旅游网站系统 包括网站展示和后台管理功能,网站主要是页面浏览以及评论、制定旅游方案、智能推荐功能 后台就是维护网站展示的内容,添加旅游景点、管理用户、查看…

combotree
1,直接获取: 单选:$("#id").combotree("getValue") 多选:$("#id").combotree("getValues") 注意:如果value中的值和所显示的文本不同,如需获取文本内…

SCRIPT1028:缺少标识符、字符串或数字 jquery ajax
2019独角兽企业重金招聘Python工程师标准>>> SCRIPT1028:缺少标识符、字符串或数字 使用jquery时报此错误 究其原因是对象键值对格式错误: 原格式: 多了一个逗号obj { "usernmae":"zhangsan", "sex"…

IOS 编程中引用第三方的方类库的方法及常见问题
方法一:直接复制全部源文件到项目中 这样的方法就是把第三方类库的全部源文件复制到项目中。直接把全部.h和.m文件拖到XCode项目中就可以。 注意: 1. 假设第三方类库引用了一些系统自带类库。那么在项目中还须要额外引用那些类库。2. 假设当前的项目启用了ARC。而引…

gcc中-pthread和-lpthread的区别
用gcc编译使用了POSIX thread的程序时通常需要加额外的选项,以便使用thread-safe的库及头文件,一些老的书里说直接增加链接选项 -lpthread 就可以了,像这样: Shell代码 gcc -c x.c gcc x.o -ox -lpthread 而gcc手册里则指出应…

Java项目:精品养老院管理系统(java+Springboot+Maven+mybatis+Vue+Mysql)
源码获取:博客首页 "资源" 里下载! 一、项目简述本系统功能包括:通知公告,老人管理,护工管理,问答管理等等功能。 二、项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX&am…

install python+twisted+mysqldb+django on mac
一. install python 1) check install or not 在mac终端输入命令:which python 即可查看python的路径 2)未安装时,手动下载安装包 地址:https://www.python.org/downloads/ 选择下载 Mac OS X 64-bit/32-bit installer 安装 二…

JVM优雅退出
在某个Java应用增加新功能,缩容机器,或者应用以及机器发生异常,通常会停止正在运行的应用,该应用通常正在运行着任务,如果停止应用的操作处理不当的话,很有可能会导致数据丢失,损坏,从而影响业务。所以在停止应用的时候,需要考虑如何安全优雅的退出。维护了所有已经注册的钩子,由于jvm本身没有提供好用的方法去移除已经注册的钩子,可以通过反射的方式调用。对于强制关闭的几种情况,会直接停止JVM进程,JVM不会调用已注册的。对于正常关闭、异常关闭的几种情况,JVM关闭前,都会调用已注册的。

网络名词--“环路”
环路一直是网络工程师以及网络运维人员头疼的事,如何防止环路的产生,如何快速找出环路的原因排除故障,是每一个网络从业人员必备的技能。这就要求我们对环路产生的原因了如指掌,本文主要对交换环路进行分析,从分类、形…

希腊字母表及读音
序号大写小写国际音标中文读音意义1Ααa:lf阿尔法角度;系数2Ββbet贝塔磁通系数;角度;系数3Γγga:m伽马电导系数(小写)4Δδdelt德尔塔变动;密度;屈光度5Εεep`silon伊普西龙对数之基数6Ζζzat截塔系数;方位角;阻抗;相对粘度;原子序数7Ηηeit艾塔磁滞系数;效率(小写)8Θθθit西塔温度;相位角9Ιιaiot约塔

loadrunner——win7+LR11配置
一、 安装vmware虚拟机 下载安装vmware15后,可使用密钥为:CG392-4PX5J-H816Z-HYZNG-PQRG2 二、 安装win7系统 2.1下载win7镜像文件 2.2 vmware中创建win7虚拟机 创建过程省略,一键式创建即可,windows产品可使用密钥如下࿱…

C++标准库中sstream和strstream的区别
在C有两种字符串流,一种在sstream中定义, 另一种在strstream中定义。 它们实现的东西基本一样。 strstream里包含 class strstreambuf; class istrstream; class ostrstream; class strstream; 它们是基于C类型字符串char*编写的 sstream中包含 class is…

基于jQuery垂直多级导航菜单代码
基于jQuery垂直多级导航菜单代码是一款黑色风格的jQuery竖直导航菜单特效下载。效果图如下: 在线预览 源码下载 实现的代码。 html代码: <ul class"ce"><li> <a class"xz" href"#">目录A</a>…

Java项目:在线考试系统(java+springBoot+vue+Mysql+maven)
源码获取:博客首页 "资源" 里下载! 管理员和教师登陆此账号就进入后台,学生登陆此账号就进入前端做题。 老师发布了考试,学生才可以在主页面看到相应的考试信息。 有考试安排表以后,才能给该次考试添加题目,对应数据表是exammanag…

来玩Play框架05 数据库
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 数据库是整个站点的数据储藏室。用户提交的数据可以存储在数据库中,以便未来使用。Play可以通过JDBC和数据库通信。我讲介绍Play和my…

mysql数据库之linux版本
http://repo.mysql.com/yum/mysql-5.6-community/ 安装 安装方式一(在线安装) # 查看和mysql…

LINUX UMASK详解
一 权限掩码umask umask是chmod配套的,总共为4位(gid/uid,属主,组权,其它用户的权限),不过通常用到的是后3个,例如你用chmod 755 file(此时这文件的权限是属主读(4)写(2)+执行(1),同…

ubuntu14.04安装hadoop2.6.0(伪分布模式)
版本:虚拟机下安装的ubuntu14.04(64位),hadoop-2.6.0 下面是hadoop2.6.0的官方英文教程: http://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist/hadoop-common/SingleCluster.html#Pseudo-Distributed_Operation hadoop下载…

Java项目:生活旅行分享平台(java+Springboot+JPA+Jsp+Html+js+Ajax+maven+mysql)
源码获取:博客首页 "资源" 里下载! 一、项目运行 环境配置: Jdk1.8 Tomcat8.5 mysql Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持) 项目技术: Springboot SpringMVC JPA Jsp Htm…

Servlet和SpringMVC补课
1.web.xml加载顺序 http://mianhuaman.iteye.com/blog/1105522 关键点:ServletContext -> context-param -> listener -> filter -> servlet 2.beans xmlns http://www.w3school.com.cn/xml/xml_namespaces.asp 用于避免元素命名冲突。在Spring中应用极…

gdb debug
1. dir 添加源代码查找路径 一般工程的代码会有多路径,gdb会在当前目录下搜索符号对应的代码。利用dir <path> 可以添加代码搜索路径; 例如工程目录: ./ ./dir_1/ ./dir_2/ 可以用如下命令添加代码搜索路径: dir dir…

Java项目:嘟嘟图片展览馆管理系统(java+Springboot+SpringMVC+JPA+Jsp+maven+mysql)
源码获取:博客首页 "资源" 里下载! 一、项目运行 环境配置: Jdk1.8 Tomcat8.5 mysql Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持) 项目技术: Springboot SpringMVC JPA Jsp Htm…