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

Java项目:网上选课系统(java+SSM+jsp+mysql+maven)

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

一、项目简述

功能: 系统分为三个角色。最高权限管理员,学生,教师,包括 学生管理,教师管理,课程管理,选课,退课,成绩查 询。,教学课程,查看选课名单等等功能完全齐备。

二、项目运行

环境配置: Jdk1.8 + Tomcat8.5 + Mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)

项目技术: JSP +Spring + SpringMVC + MyBatis + Bootstrap4+ css + JavaScript + JQuery + Ajax + particles.js+ maven等等。

用户管理控制器:

/*** 用户管理控制器*/
@RequestMapping("/user/")
@Controller
public class UserController {@Autowiredprivate IUserService userService;@Autowiredprivate IRoleService roleService;@Resourceprivate ProcessEngineConfiguration configuration;@Resourceprivate ProcessEngine engine;@GetMapping("/index")@ApiOperation("跳转用户页接口")@PreAuthorize("hasRole('管理员')")public String index(String menuid,Model model){List<Role> roles = queryAllRole();model.addAttribute("roles",roles);model.addAttribute("menuid",menuid);//用户首页return "views/user/user_list";}@GetMapping("/listpage")@ApiOperation("查询用户分页数据接口")@ApiImplicitParams({@ApiImplicitParam(name = "UserQuery", value = "用户查询对象", defaultValue = "userQuery对象")})@ResponseBody@PreAuthorize("hasRole('管理员')")public PageList listpage(UserQuery userQuery){return  userService.listpage(userQuery);}//添加用户@PostMapping("/addUser")@ApiOperation("添加用户接口")@ResponseBodypublic Map<String,Object> addUser(User user){Map<String, Object> ret = new HashMap<>();ret.put("code",-1);if(StringUtils.isEmpty(user.getUsername())){ret.put("msg","请填写用户名");return ret;}if(StringUtils.isEmpty(user.getPassword())){ret.put("msg","请填写密码");return ret;}if(StringUtils.isEmpty(user.getEmail())){ret.put("msg","请填写邮箱");return ret;}if(StringUtils.isEmpty(user.getTel())){ret.put("msg","请填写手机号");return ret;}if(StringUtils.isEmpty(user.getHeadImg())){ret.put("msg","请上传头像");return ret;}if(userService.addUser(user)<=0) {ret.put("msg", "添加用户失败");return ret;}ret.put("code",0);ret.put("msg","添加用户成功");return ret;}/*** 修改用户信息操作* @param user* @return*/@PostMapping("/editSaveUser")@ApiOperation("修改用户接口")@PreAuthorize("hasRole('管理员')")@ResponseBodypublic Message editSaveUser(User user){if(StringUtils.isEmpty(user.getUsername())){return Message.error("请填写用户名");}if(StringUtils.isEmpty(user.getEmail())){return Message.error("请填写邮箱");}if(StringUtils.isEmpty(user.getTel())){return Message.error("请填写手机号");}try {userService.editSaveUser(user);return Message.success();} catch (Exception e) {e.printStackTrace();return Message.error("修改用户信息失败");}}//添加用户@GetMapping("/deleteUser")@ApiOperation("删除用户接口")@ApiImplicitParams({@ApiImplicitParam(name = "id", value = "如:88",required = true)})@PreAuthorize("hasRole('管理员')")@ResponseBodypublic AjaxResult deleteUser(@RequestParam(required = true) Long id){AjaxResult ajaxResult = new AjaxResult();try {userService.deleteUser(id);} catch (Exception e) {e.printStackTrace();return new AjaxResult("删除失败");}return ajaxResult;}@PostMapping(value="/deleteBatchUser")@ApiOperation("批量删除用户接口")@PreAuthorize("hasRole('管理员')")@ResponseBodypublic AjaxResult deleteBatchUser(String ids){String[] idsArr = ids.split(",");List list = new ArrayList();for(int i=0;i<idsArr.length;i++){list.add(idsArr[i]);}try{userService.batchRemove(list);return new AjaxResult();}catch(Exception e){return new AjaxResult("批量删除失败");}}//查询所有角色public List<Role> queryAllRole(){return roleService.queryAll();}//添加用户的角色@PostMapping("/addUserRole")@ApiOperation("添加用户角色接口")@ApiImplicitParams({@ApiImplicitParam(name = "paramMap", value = "如:{userId:1,[1,2,3,4]]}")})@ResponseBodypublic AjaxResult addUserRole(@RequestBody Map paramMap){AjaxResult ajaxResult = new AjaxResult();String userId = (String)paramMap.get("userId");List roleIds = (List) paramMap.get("roleIds");try {//添加用户对应的角色roleService.addUserRole(userId,roleIds);return ajaxResult;}catch (Exception e){e.printStackTrace();return new AjaxResult("保存角色失败");}}//添加用户@RequestMapping("/regSaveUser")@ResponseBodypublic Long addTeacher(User user){System.out.println("保存用户...."+user);userService.addUser(user);//保存工作流程操作IdentityService is = engine.getIdentityService();// 添加用户组org.activiti.engine.identity.User userInfo = userService.saveUser(is, user.getUsername());// 添加用户对应的组关系Group stuGroup = new GroupEntityImpl();stuGroup.setId("stuGroup");Group tGroup = new GroupEntityImpl();tGroup.setId("tGroup");if(user.getType() == 2) {//保存老师组userService.saveRel(is, userInfo, tGroup);}if(user.getType() == 3) {//保存学生组userService.saveRel(is, userInfo, stuGroup);}Long userId = user.getId();return userId;}/*** 修改密码页面* @return*/@RequestMapping(value="/update_pwd",method=RequestMethod.GET)public String updatePwd(){return "views/user/update_pwd";}/*** 修改密码操作* @param oldPwd* @param newPwd* @return*/@ResponseBody@PostMapping("/update_pwd")public Message updatePassword(@RequestParam(name="oldPwd",required=true)String oldPwd,@RequestParam(name="newPwd",required=true)String newPwd){String username = CommonUtils.getLoginUser().getUsername();User userByUserName = userService.findUserByUserName(username);if(userByUserName!=null){String password = userByUserName.getPassword();BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder();boolean matches = bCryptPasswordEncoder.matches(oldPwd, password);if(!matches){return Message.error("旧密码不正确");//true}userByUserName.setPassword(bCryptPasswordEncoder.encode(newPwd));if(userService.editUserPassword(userByUserName)<=0){return Message.error("密码修改失败");}}return Message.success();}/*** 清除缓存* @param request* @param response* @return*/@ResponseBody@PostMapping("/clear_cache")public Message clearCache(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setHeader("Cache-Control","no-store");response.setHeader("Pragrma","no-cache");response.setDateHeader("Expires",0);return  Message.success();}
}

角色控制层:

@Controller
public class RoleController {@Autowiredprivate IRoleService roleService;@Autowiredprivate IPermissionService permissionService;@PreAuthorize("hasRole('管理员')")@ResponseBody@RequestMapping("/role/doAdd")public String doAdd(Role role){//角色添加return "ok";}//添加角色@RequestMapping("/role/addRole")@PreAuthorize("hasRole('管理员')")@ResponseBodypublic AjaxResult addRole(Role role){System.out.println("保存角色...."+role);try {roleService.saveRole(role);return new AjaxResult();} catch (Exception e) {e.printStackTrace();return new AjaxResult("操作失败");}}@PreAuthorize("hasRole('管理员')")@RequestMapping("/role/index")public String index(Model model){List<Permission> permisisons = permissionService.findAllPermisisons();model.addAttribute("permissions",permisisons);//返回角色return "views/role/role_list";}@RequestMapping("/role/listpage")@ResponseBodypublic PageList listpage(RoleQuery roleQuery){System.out.println("传递参数:"+roleQuery);return  roleService.listpage(roleQuery);}//修改用户editSaveUser@RequestMapping("/role/editSaveRole")@ResponseBodypublic AjaxResult editSaveRole(Role role){System.out.println("修改角色...."+role);try {roleService.editSaveRole(role);return new AjaxResult();} catch (Exception e) {e.printStackTrace();}return new AjaxResult("修改失败");}//添加角色@RequestMapping("/role/deleteRole")@ResponseBodypublic AjaxResult deleteRole(Long id){System.out.println("删除角色...."+id);AjaxResult ajaxResult = new AjaxResult();try {roleService.deleteRole(id);} catch (Exception e) {e.printStackTrace();return new AjaxResult("删除失败");}return ajaxResult;}//添加角色权限 addRolePermission@RequestMapping("/role/addRolePermission")@ResponseBodypublic AjaxResult addRolePermission(@RequestBody Map paramMap){AjaxResult ajaxResult = new AjaxResult();String roleId = (String)paramMap.get("roleId");List permissionIds = (List) paramMap.get("permissionIds");try {//添加角色对应的权限roleService.addRolePermission(roleId,permissionIds);return ajaxResult;}catch (Exception e){e.printStackTrace();return new AjaxResult("保存权限失败");}}}

学生管理接口:

@RequestMapping("/student")
@Controller
@Api(tags = "学生管理接口")
public class StudentController {@Autowiredprivate IUserService userService;@Autowiredprivate ICourseService courseService;@Autowiredprivate IClassesService classesService;@Resourceprivate ProcessEngine engine;@Autowiredprivate IOperaterLogService operaterLogService;//老师列表//后台查询学生列表@RequestMapping("/index")public String index(Model model){//用户首页model.addAttribute("courses",courseService.queryAll());model.addAttribute("classes",classesService.queryAll());return "views/student/student_list";}@RequestMapping("/listpage")@ResponseBodypublic PageList listpage(UserQuery userQuery){userQuery.setType(3L);//2表示老学生return  userService.listpage(userQuery);}/*** 添加学生操作* @param user* @return*/@PostMapping("/addSaveStu")@ApiOperation("添加学生接口")@PreAuthorize("hasRole('管理员')")@ResponseBodypublic Message addSaveStudent(User user){if(StringUtils.isEmpty(user.getUsername())){return Message.error("请填写用户名");}if(StringUtils.isEmpty(user.getPassword())){return Message.error("请填写密码");}if(StringUtils.isEmpty(user.getEmail())){return Message.error("请填写邮箱");}if(StringUtils.isEmpty(user.getTel())){return Message.error("请填写手机号");}if(StringUtils.isEmpty(user.getStunum())){return Message.error("请填写学号");}User userByUserName = userService.findUserByUserName(user.getUsername());if(userByUserName!=null){return Message.error("用户名已存在");}if(userService.findByStuNum(user.getStunum())!=null){return Message.error("该学号已存在");}user.setType(3);if(userService.addUser(user)<=0){return Message.error("学生添加失败");}//保存工作流程操作IdentityService is = engine.getIdentityService();// 添加用户组org.activiti.engine.identity.User userInfo = userService.saveUser(is, user.getUsername());// 添加用户对应的组关系Group stuGroup = new GroupEntityImpl();stuGroup.setId("stuGroup");userService.saveRel(is, userInfo, stuGroup);operaterLogService.add("添加学生成功,学生名称:"+user.getUsername());return Message.success();}//修改用户editSaveUser@PostMapping("/editSaveStu")@ApiOperation("修改学生接口")@PreAuthorize("hasRole('管理员')")@ResponseBodypublic Message editSaveStu(User user){if(StringUtils.isEmpty(user.getUsername())){return Message.error("请填写用户名");}if(StringUtils.isEmpty(user.getEmail())){return Message.error("请填写邮箱");}if(StringUtils.isEmpty(user.getTel())){return Message.error("请填写手机号");}User userByUserName = userService.findUserByUserName(user.getUsername());if(userByUserName!=null){if(!userByUserName.getId().equals(user.getId())){return Message.error("该用户名已存在");}}try {userService.editSaveUser(user);operaterLogService.add("编辑学生成功,学生名称:"+user.getUsername());return Message.success();} catch (Exception e) {e.printStackTrace();return Message.error("学生编辑失败");}}//editSaveStuXk@PostMapping("/editSaveStuXk")@ApiOperation("修改用户接口")@ApiImplicitParams({@ApiImplicitParam(name = "User", value = "学生选课")})@ResponseBodypublic AjaxResult editSaveStuXk(User user){try {userService.editSaveXk(user);operaterLogService.add("修改学生选课成功,学生名称:"+user.getUsername());return new AjaxResult();} catch (Exception e) {e.printStackTrace();}return new AjaxResult("修改失败");}}

教师管理接口:

@RequestMapping("/teacher")
@Controller
@Api(tags = "教师管理接口")
public class TeacherController {@Autowiredprivate IUserService userService;@Autowiredprivate IClassesService classesService;@Resourceprivate ProcessEngine engine;@Autowiredprivate IOperaterLogService operaterLogService;//老师列表@RequestMapping("/index")public String index(Model model){//用户首页model.addAttribute("classes",classesService.queryAll());return "views/teacher/teacher_list";}@RequestMapping("/listpage")@ResponseBodypublic PageList listpage(UserQuery userQuery){userQuery.setType(2L);//2表示老师return  userService.listpage(userQuery);}/*** 添加教师操作* @param user* @return*/@PostMapping("/addTeacher")@ApiOperation("添加教师接口")@ResponseBody@PreAuthorize("hasRole('管理员')")public Message addTeacher(User user){if(StringUtils.isEmpty(user.getUsername())){return Message.error("请填写用户名");}if(StringUtils.isEmpty(user.getPassword())){return Message.error("请填写密码");}if(StringUtils.isEmpty(user.getEmail())){return Message.error("请填写邮箱");}if(StringUtils.isEmpty(user.getTel())){return Message.error("请填写手机号");}User userByUserName = userService.findUserByUserName(user.getUsername());if(userByUserName!=null){return Message.error("用户名已存在");}user.setType(2);if(userService.addUser(user)<=0){return Message.error("教师添加失败");}//保存工作流程操作IdentityService is = engine.getIdentityService();// 添加用户组org.activiti.engine.identity.User userInfo = userService.saveUser(is, user.getUsername());Group tGroup = new GroupEntityImpl();tGroup.setId("tGroup");userService.saveRel(is, userInfo, tGroup);operaterLogService.add("添加教师成功,教师名称:"+user.getUsername());return Message.success();}/*** 修改教师操作* @param user* @return*/@PostMapping("/editSaveStu")@ApiOperation("修改教师接口")@PreAuthorize("hasRole('管理员')")@ResponseBodypublic Message editSaveStu(User user){if(StringUtils.isEmpty(user.getUsername())){return Message.error("请填写用户名");}if(StringUtils.isEmpty(user.getEmail())){return Message.error("请填写邮箱");}if(StringUtils.isEmpty(user.getTel())){return Message.error("请填写手机号");}User userByUserName = userService.findUserByUserName(user.getUsername());if(userByUserName!=null){if(!userByUserName.getId().equals(user.getId())){return Message.error("该用户名已存在");}}try {userService.editSaveUser(user);operaterLogService.add("编辑教师成功,教师名称:"+user.getUsername());return Message.success();} catch (Exception e) {e.printStackTrace();return Message.error("教师信息编辑失败");}}}

成绩管理接口:

@RequestMapping("/score")
@Controller
@Api(tags = "成绩管理接口")
public class ScoreController {@Autowiredprivate IScoreService scoreService;@Autowiredprivate IUserService userService;@Autowiredprivate ICourseService courseService;@Autowiredprivate IOperaterLogService operaterLogService;@GetMapping("/index")@ApiOperation("跳转成绩页接口")public String index(Model model){//查询学生List<User> users = userService.findAllStudent();model.addAttribute("users",users);model.addAttribute("courses",courseService.queryAll());//查询课程return "views/score/score_list";}@GetMapping("/listpage")@ApiOperation("查询成绩分页数据接口")@ApiImplicitParams({@ApiImplicitParam(name = "ScoreQuery", value = "成绩查询对象", defaultValue = "scoreQuery对象")})@ResponseBodypublic PageList listpage(ScoreQuery scoreQuery){return  scoreService.listpage(scoreQuery);}/*** 添加成绩操作* @param score* @return*/@PostMapping("/addScore")@ApiOperation("添加成绩接口")@ResponseBodypublic Message addScore(Score score){if(StringUtils.isEmpty(score.getScore())){return Message.error("请填写该学生的成绩");}Map<String, Object> queryMap = new HashMap<>();queryMap.put("userId",score.getUserid());queryMap.put("courseId",score.getCourseid());Score byUidAndCid = scoreService.findByUidAndCid(queryMap);if(byUidAndCid!=null){return Message.error("该学生的课程成绩已经添加过了!");}try {scoreService.addScore(score);operaterLogService.add("添加学生成绩成功");return Message.success();} catch (Exception e) {e.printStackTrace();return Message.error("成绩添加失败");}}@PostMapping(value="/deleteBatchScore")@ApiOperation("批量删除成绩接口")@ApiImplicitParams({@ApiImplicitParam(name = "ids", value = "如:88,89,99")})@ResponseBodypublic AjaxResult deleteBatchScore(String ids){String[] idsArr = ids.split(",");List list = new ArrayList();for(int i=0;i<idsArr.length;i++){list.add(idsArr[i]);}try{scoreService.batchRemove(list);operaterLogService.add("删除学生成绩成功");return new AjaxResult();}catch(Exception e){return new AjaxResult("批量删除失败");}}}

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

相关文章:

C#中类的继承 override virtual new的作用以及代码分析

继承中override virtual new的作用 virtual 父类中需要注明允许重写的方法&#xff1b; override 子类中必须显示声明该方法是重写的父类中的方法&#xff1b; new 子类中忽略父类的已存在的方法&#xff0c;“重写该方法“&#xff1b; C#中不支…

spring手动代码控制事务

为什么80%的码农都做不了架构师&#xff1f;>>> DataSourceTransactionManager tran new DataSourceTransactionManager(vjdbcTemplate.getDataSource());DefaultTransactionDefinition def new DefaultTransactionDefinition();//事务定义类def.setPropagationB…

tar命令-压缩,解压缩文件

tar&#xff1a; -c: 建立压缩档案 -x&#xff1a;解压 -t&#xff1a;查看内容 -r&#xff1a;向压缩归档文件末尾追加文件 -u&#xff1a;更新原压缩包中的文件 上面五个参数是独立的&#xff0c;压缩解压都要用到其中一个&#xff0c;可以和下面的命令连用但只能用其中一个。…

MIT 6.824 Lab2A (raft) -- Leader Election

文章目录实验要求Leader Election流程 及详细实现介绍基本角色关键超时变量关键的两个RPC实现RequestVote RPCAppendEntries RPCGo并发编程实现leader election调度本节记录的是完成MIT6.824 raft lab的leader Election部分实验。代码: https://github.com/BaronStack/MIT-6.82…

Java项目:在线考试系统(java+springboot+vue+jsp+mysql+maven)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目简述 本系统主要实现的功能有&#xff1a; 学生以及老师的注册登录&#xff0c;在线考试&#xff0c;错题查询&#xff0c;学生管理&#xff0c;问题管理&#xff0c;错题管理&#xff0c;错题查询…

写给自己的web开发资源

web开发给我的感觉就是乱七八糟&#xff0c;而且要学习感觉总是会有东西要学习&#xff0c;很乱很杂我也没空搞&#xff0c;&#xff08;其实学习这个的方法就是去用它&#xff0c;什么你直接用&#xff1f;学过js么学过jquery么&#xff1f;哈哈&#xff0c;我没有系统的看完过…

虚拟机VMWare“提示:软件虚拟化与此平台上的长模式不兼容”的解决方法

虚拟机VMWare“提示&#xff1a;软件虚拟化与此平台上的长模式不兼容”不少童鞋反映&#xff0c;在使用Windows7 64位操作系统时&#xff0c;无法运行VMWare或MS Virtual server等软件虚拟操作系统。提示为“提示&#xff1a;软件虚拟化与此平台上的长模式不兼容. 禁用长模式. …

如何在Vue项目中使用vw实现移动端适配(转)

有关于移动端的适配布局一直以来都是众说纷纭&#xff0c;对应的解决方案也是有很多种。在《使用Flexible实现手淘H5页面的终端适配》提出了Flexible的布局方案&#xff0c;随着viewport单位越来越受到众多浏览器的支持&#xff0c;因此在《再聊移动端页面的适配》一文中提出了…

Jsoncpp 在C++开发中的一些使用记录

jsoncpp 是一个C 语言实现的json库&#xff0c;非常方便得支持C得各种数据类型到json 以及 json到各种数据类型的转化。 一个json 类型的数据如下&#xff1a; {"code" : 10.01,"files" : "","msg" : "","uploadid&q…

Java项目:图书管理系统(java+SSM+jsp+mysql+maven)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目简述 功能包括(管理员和学生角色)&#xff1a; 管理员和学生登录&#xff0c;图书管理&#xff0c;图书添加删除修改&#xff0c;图书 借阅&#xff0c;图书归还&#xff0c;图书查看&#xff0c;学…

使用 Flash Builder 的 Apple iOS 开发过程

使用 Flash Builder 的 Apple iOS 开发过程 iOS 开发和部署过程概述 构建、调试或部署 iOS 应用程序前的准备工作 在测试、调试或安装 iOS 应用程序时选择的文件 将应用程序部署到 Apple App Store 时选择的文件 在使用 Flash Builder 开发 iOS 应用程序之前&#xff0c;必须…

grep之字符串搜索算法Boyer-Moore由浅入深(比KMP快3-5倍)

2019独角兽企业重金招聘Python工程师标准>>> 1. 简单介绍 在用于查找子字符串的算法当中&#xff0c;BM&#xff08;Boyer-Moore&#xff09;算法是目前被认为最高效的字符串搜索算法&#xff0c;它由Bob Boyer和J Strother Moore设计于1977年。 一般情况下&#xf…

多线程threading

threading用于提供线程相关的操作&#xff0c;线程是应用程序中工作的最小单元。python当前版本的多线程库没有实现优先级、线程组&#xff0c;线程也不能被停止、暂停、恢复、中断。 1. threading模块提供的类&#xff1a; Thread, Lock, Rlock, Condition, [Bounded]Sem…

一个简单的程序来使用WiredTiger 存储引擎

前言 WiredTiger 自 mongodb3.0 集成进来之后为mongodb拉回了大量的口碑&#xff0c;从而在mongodb-3.2 版本直接代替了in-memory存储引擎&#xff0c;作为了mongodb的默认存储引擎。其 通过支持Append-only btree lsm-tree 以及 针对磁盘/内存数据结构上的多核和无锁优化&am…

Java项目:网上商城系统(java+SSM+jsp+mysql+maven)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目简述功能 javaweb 网上商城系统&#xff0c;前台&#xff0b;后台管理&#xff0c;用户注册&#xff0c;登录&#xff0c;上哦展示&#xff0c;分组展示&#xff0c;搜索&#xff0c;收货地址管理&…

Linux 启动详解之init

1.init初探 init是Linux系统操作中不可缺少的程序之一。init进程&#xff0c;它是一个由内核启动的用户级进程&#xff0c;然后由它来启动后面的任务&#xff0c;包括多用户环境&#xff0c;网络等。 内核会在过去曾使用过init的几个地方查找它&#xff0c;它的正确位置&#x…

mysql 相关命令

mysqladmin versionmysqladmin statusmysqlshow -u帐号 -p密码 mysqlshow -u帐号 -p密码 库名mysql -u帐号 -p密码 -e SELECT Host,Db,User From db mysqlmysqldump --quick mysql | gzip > /root/mysql.gzmysqladmin create dbtestgunzip < /root/mysql.gz | mysql…

maven 添加数据库驱动

1.电脑上需要安装 apache maven2.下载oracle的jar包 例如我下载的是ojdbc7-12.jar3.cmd执行命令 mvn install:install-file -DgroupIdcom.oracle -DartifactIdojdbc7 -Dversion12 -Dpackagingjar -Dfiled:\jar\ojdbc7-12.jar-Dfile jar包所存放的位置4.pom文件添加&#xff1…

Rocksdb 的 BlobDB key-value 分离存储插件

前言 还是回到传统的 LSM-tree 中&#xff0c;我们key-value 写入时以append形态存放到一个data-block中&#xff0c;多个data-blockmetablock 之类的数据组织成一个sst。当我们读数据以及compaction的时候读到key 之后则很方便得读取到对应的value&#xff0c;一次I/O能够将k…

Java项目:(前端vue后台java微服务)在线考试系统(java+vue+springboot+mysql+maven)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 考试流程&#xff1a; 用户前台注册成为学生 管理员后台添加老师&#xff0c;系统将该用户角色上升为老师 老师登录&#xff0c;添加考试,添加题目&#xff0c;发布考试 考生登录前台参加考试&#xff0c…

C++实现stack【栈】

要求&#xff1a; //****file: stack.h/*对stack进行初始化检查stack为空&#xff0c;或已满将整数压入到stack中从stack里弹出整数 不移除任何袁术&#xff0c;讲过stack的内容输出到标准输出Stack类的私有成员如下&#xff1a;一个用于打印错误信息的私有哦成员函数三个私有数…

c#操作Excel整理总结

大家好&#xff0c;这是我在工作中总结的关于C#操作Excel的帮助类&#xff0c;欢迎大家批评指正&#xff01; using System; using System.Collections.Generic; using System.Data; using System.Data.OleDb; using System.IO; using Aspose.Cells;namespace MusicgrabTool {p…

C++ std::function<void(int)> 和 std::function<void()> 作为函数参数的注意事项

前言 std::function 作为标准库提供的函数指针&#xff0c;使用起来还是比较方便的&#xff0c;不过在使用过程中有一些需要注意的细节&#xff0c;这里做一个简单的记录。 基本使用 头文件: #include <functional>语法&#xff1a;std::function<return_type(args…

Java项目:网上电商系统(java+SSM+mysql+maven+tomcat)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目简述 功能&#xff1a;本系统分用户前台和管理员后台。 前台展示后台管理&#xff0c;前台界面可实现用户登录&#xff0c;用户注 册&#xff0c;商品展示&#xff0c;商品明细展示&#xff0c;用户…

C# SQLiteHelper

1 public class SQLiteHelpers2 {3 /// <summary> 4 /// ConnectionString样例&#xff1a;DatasourceTest.db3;Poolingtrue;FailIfMissingfalse 5 /// </summary> 6 public static string ConnectionStri…

[Git] 拉开发分支的代码报错

Git拉开发分支的代码报错&#xff1a; fatal: The remote end hung up unexpectedly fatal: early EOF fatal: index-pack failed 解决办法&#xff1a; git config --global core.compression -1 转载于:https://www.cnblogs.com/MasterMonkInTemple/p/10754596.html

C++ 通过模版工厂实现 简单反射机制

前言 我们知道Java/Python这种语言能够很好得 支持反射。反射机制 就是一种用户输入的字符串到对应实现方法的映射&#xff0c;比如http接口中 用户传入了url&#xff0c;我们需要调用该url对应的方法/函数对象 从而做出对应的操作。 而C 并没有友好得支持这样的操作&#xf…

计算机世界的“十六进制”为什么如此重要

在计算机世界中,十六进制扮演着不可或缺的角色。它以其紧凑的表示形式、与二进制的天然对应关系以及在各个领域的广泛应用,成为了计算机科学中的一把重要工具。总体而言,计算机需要十六进制并非偶然,它是一种为了更好地满足人类理解和处理数据的需求而产生的工具,为计算机科学的发展和应用提供了便利和支持。

面试官:如何实现10亿数据判重?

以 Java 中的 int 为例,来对比观察 BitMap 的优势,在 Java 中,int 类型通常需要 32 位(4 字节*8),而 BitMap 使用 1 位就可以来标识此元素是否存在,所以可以认为 BitMap 占用的空间大小,只有 int 类型的 1/32,所以有大数据量判重时,使用 BitMap 也可以实现。所以数据库去重显然是不行的。而使用集合也是不合适的,因为数据量太大,使用集合会导致内存不够用或内存溢出和 Full GC 频繁等问题,所以此时我们的解决方案通常是采用布隆过滤器来实现判重。

Java项目:校园二手市场系统(java+SSM+mysql+maven+tomcat)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目简述&#xff08; IW文档&#xff09; 功能&#xff1a;本系统分用户前台和管理员后台。 本系统用例模型有三种&#xff0c;分别是游客、注册用户和系统管 理员。下面分别对这三个角色的功能进行描…