图书管理系统 毕业设计

news2024/11/25 13:02:07

图书管理系统 毕业设计

摘 要

摘要:二十一世纪是信息的世纪,随着社会经济的发展,社会信息化程度也越来越高,学校作为教育与科技的先行者,优秀的技术往往会被所率先学校采用。优秀的学校管理决策者一定会毫不犹豫地选择或者自主开发一个适合本校校情的图书管理系统。

图书管理系统实现了分角色登录功能,读者只能进行查询,借阅,归还。图书管理员能实现图书借阅、图书归还、新书入库,人员管理等功能。Spring 是目前最流行的 Web 开发框架技术之一,它基于Java JDK 1.8 环境开发,具体的开发平台使用的是 Idea Intellij 2020,在数据库方面使用的是 MySQL 5.7。本系统开发的总体任务是实现与图书相关的各种信息的系统化,规范化和自动化。

关键词: SpringBoot;JavaEE;MySQL

Abstract

Abstract: The 21st century is a century of information. With the development of social economy, the degree of social informatization is also higher and higher. As the forerunner of education and science and technology, schools often take the lead in adopting excellent technology. Excellent school management decision-makers will not hesitate to choose or independently develop a suitable library management system for our school.

The library management system realizes the login function by role, so readers can only query, borrow and return. Librarians can realize the functions of book borrowing, book return, new book storage, personnel management and so on. Spring is one of the most popular web development framework technologies, which is based on Java JDK 1.8 environment. The specific development platform is idea IntelliJ 2020, and the database is MySQL 5.7. The overall task of the system development is to realize the systematization, standardization and automation of all kinds of information related to books.

Keywords: SpringBoot; JavaEE; MySQL

目 录

摘 要

Abstract

1 绪论

1.1 论文研究背景与意义

1.2 系统开发意义

1.3 图书馆信息化

2环境搭建与需求分析

2.1 开发环境介绍

2.2 相关技术背景

2.2.1 Spring框架

2.2.2 MySQL

2.2.3 MyBatis

2.3 业务分析

2.3.1 数据库设计

2.3.2实体设计

2.3.3 系统业务流程图

3 代码设计与功能实现

3.1 MVC

3.2 登录模块

3.3 管理员模块

3.3.1 用户管理

3.3.2 书本管理

3.4 借阅归还模块

3.4.1 借阅

3.4.2 归还

3.5 用户详情

结论

参考文献

致谢

附录

1 绪论

1.1 论文研究背景与意义

随着现在科学技术的进步,人类社会正逐渐走向信息化,图书馆拥有丰富的文献信息资源,是社会系统的重要组成部分,在信息社会中作用越来越重要,在我国图书馆计算机等 信息技术的应用起步于 20 世纪 70 年代末期,随着改革开放的步伐的迅

速发展,特别是 90 年代以后,我国图书馆信息网络建设取得了较大发展,图书馆信息化建设迈向了一个新台阶。

1.2 系统开发意义

图书管理系统是图书管理工作中不可缺少的部分,它的内容对于图书馆的管理员和使用者来说都至关重要。所以图书管理系统应该能够为管理员或读者提供充足的信息和快捷的数据处理手段。作为计算机应用的一部分,使用计算机对图书信息进行管理,具有手工管理所无法比拟的优点,如:检索迅速、查找方便、易修改、可靠性高、存储量大、数据处理快捷、保密性好、寿命长、成本低、便于打印等。这些优点能够极大地提高图书管理的效率,也是图书馆的科学化、正规化管理,与世界接轨的重要条件。因此,开发这样一套管理软件成为很有必要的事情。

1.3 图书馆信息化

图书馆的信息化从最初地对图书馆业务管理实行信息化发展到对图书馆各个业务流程进行系统和网络化管理,并建立大规模以个体文献目录联机查询为主的资源共享系统。进入 21 世纪,允许利用计算机网络和信息技术,逐步实现不同载体的实体文献的信息化管理和多方位的联机查询。图书馆的计算机信息化管理,就是将传统图书馆业务的手工操作转变成由计算机管理,既图书馆的图书期刊、音像资料等各种载体文献的采编、典藏、流通、检索及常规业务管理等工作,利用计算机技术,进行高效、准确的信息化管理。其根本目的是实现区域及地区、国家、国家间的资源共享。要达到资源共享的目的,必须制定一定的标准,只有各个系统都遵循这些标准,不同的系统间才可以实现联机查询、资源共享的效果。

2环境搭建与需求分析

2.1 开发环境介绍

Java版本:Jdk1.8

前端:html,js,thymeleaf,semanticui

后端:java,spring,springboot,springmvc,mybatis

数据库:mysql

2.2 相关技术背景

2.2.1 Spring框架

Spring框架是一个开放源代码的J2EE应用程序框架,由[Rod Johnson](https://baike.baidu.com/item/Rod Johnson/1423612)发起,是针对bean的生命周期进行管理的轻量级容器(lightweight container)。 Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大IOC、AOP及Web MVC等功能。Spring可以单独应用于构筑应用程序,也可以和Struts、Webwork、Tapestry等众多Web框架组合使用,并且可以与 Swing等桌面应用程序AP组合。因此, Spring不仅仅能应用于JEE应用程序之中,也可以应用于桌面应用程序以及小应用程序之中。Spring框架主要由七部分组成,分别是 Spring Core、 Spring AOP、 Spring ORM、 Spring DAO、Spring Context、 Spring Web和 Spring Web MVC。

2.2.2 MySQL

MySQL 是一款安全、跨平台、高效的,并与 PHP、Java 等主流编程语言紧密结合的数据库系统。该数据库系统是由瑞典的 MySQL AB 公司开发、发布并支持,由 MySQL 的初始开发人员 David Axmark 和 Michael Monty Widenius 于 1995 年建立的。

2.2.3 MyBatis

MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Ordinary Java Objects,普通的 Java对象)映射成数据库中的记录。

2.3 业务分析

2.3.1 数据库设计

如下图 2-1所示:

img

图2-1 数据库结构

表2-1 数据库结构

2.3.2实体设计

书本实体

img

图2-2 书本实体

用户实体

img

图2-3 用户实体

参数实体

img

图2-4 参数实体

借阅实体

img

图2-5 借阅实体

2.3.3 系统业务流程图

img

图2-6 系统业务流程

3 代码设计与功能实现

3.1 MVC

本系统的设计的最大的特色是采用了MVC分层的设计思想,系统界面采用 Web 页面作为表现层和数据粘合层,为了进行一些常用的逻辑处理的需要还创建了业务逻辑 层,为了为逻辑处理提供数据有创建了数据层,同时为了数据访问创建了数据模型层。

img

图3-1 MVC模型

3.2 登录模块

img

如果使用系统就必须先登录到系统,用户使用登录模块登录系统界面效果如图3-2

图3-2 登录界面

单击“提交”按钮的处理代码如下:

@RequestMapping("/login")
public String login(User user, RedirectAttributes attributes,Model model, HttpSession session){
    String username = user.getUsername();
    String password = Md5.getMD5String(user.getPassword());
    User user1 = userMapper.findUserByUsername(username);
    System.out.println(user1.toString());
    if (user1!=null){
        if (user1.getPassword().equals(password)){
            session.setAttribute("username",username);
            session.setAttribute("isadmin",user1.getIsadmin());
            session.setAttribute("id",user1.getId());
            return "redirect:index";
        }else{
            model.addAttribute("msg2","密码输入错误");
            return "login";
        }
    }else{
        model.addAttribute("msg1","用户名不存在");
        return "login";
    }
}

(1)这行代码获取用户是否为管理信息 session.setAttribute(“isadmin”,user1.getIsadmin());

(2)登录密码通过MD5进行加密

String password = Md5.getMD5String(user.getPassword());

如果登录失败,给出提示,如:图3-3

img

图3-3 登录提示界面

登录成功获取数据返回主页

img

图3-4 主页界面

代码

@RequestMapping("/index")
public String index(Model model, HttpSession session){
    Param param = paramMapper.findParamByName("views");
    if(param!=null){
        paramMapper.updateParamById(param.getId());
    }else{
        paramMapper.addParam(
            new Param(UUID.randomUUID().toString().replace("-",""),
                      "views",1)
        );
    }
    Integer views = paramMapper.findParamByName("views").getNum();
    List<Book> books = bookMapper.findAllBooks();
    Integer sum = 0;
    for (Book b :
         books) {
        sum += b.getNum();
    }
    model.addAttribute("views",views);
    System.out.println("sum:"+sum);
    model.addAttribute("total",sum);
    model.addAttribute("books",books);
    model.addAttribute("num",books.size());
    model.addAttribute("isadmin",session.getAttribute("isadmin"));
    return "index";
}

3.3 管理员模块

3.3.1 用户管理

img

图3-5 用户管理界面

用户管理代码

删除

@RequestMapping("/user_delete")
public String user_delete(@RequestParam("id") String id){
    System.out.println(id);
    userMapper.deleteUserById(id);
    userBorrowMapper.deleteUserBorrowByUserId(id);
    return "redirect:user";
}

更新

img

图3-6 用户更新页面

代码

@RequestMapping("/update_user")
public String update_user(User user){
    System.out.println("update_user:"+user.toString());
    userMapper.updateUserById(user);
    return "redirect:user";
}

3.3.2 书本管理

书本管理主页

img

图3-7 书籍管理界面

代码

@RequestMapping("/book")
public String book(Model model,HttpSession session){
    Param param = paramMapper.findParamByName("views");
    if(param!=null){
        paramMapper.updateParamById(param.getId());
    }else{
        paramMapper.addParam(
            new Param(UUID.randomUUID().toString().replace("-",""),
                      "views",1)
        );
    }
    Integer views = paramMapper.findParamByName("views").getNum();
    List<Book> books = bookMapper.findAllBooks();
    Integer sum = 0;
    for (Book b :
         books) {
        sum += b.getNum();
    }
    System.out.println("sum:"+sum);
    model.addAttribute("total",sum);
    model.addAttribute("books",books);
    model.addAttribute("num",books.size());
    model.addAttribute("views",views);
    model.addAttribute("username",session.getAttribute("username"));
    model.addAttribute("isadmin",session.getAttribute("isadmin"));
    return "book";
}

删除

@RequestMapping("/book_delete")
public String book_delete(@RequestParam("id") String id){
    System.out.println(id);
    Book book = bookMapper.findBookById(id);
    Integer booknum = book.getNum();
    if (booknum>1){
        bookMapper.updateBookNumById(id);
    }else{
        userBorrowMapper.deleteUserBorrowByBookId(id);
        bookMapper.deleteBookById(id);
    }
    return "redirect:book";
}

更新

img

图3-8 书本更新页面

代码

@RequestMapping("/book_update")
public String book_update(Book book,Model model){
    bookMapper.updateBookById(book);
    return "redirect:book";
}

添加

img

图3-9 书本添加页面

代码

@RequestMapping("/add_book")
public String add_book(Book book){
    book.setId(UUID.randomUUID().toString().replace("-",""));
    bookMapper.addBook(book);
    return "redirect:book";
}

搜索

img

图3-10 书籍管理书本搜索结果页面

代码

@RequestMapping("/book_search")
public String book_search(String keywords,Model model,HttpSession session){
    System.out.println("keywords:"+keywords);
    List<Book> books = bookMapper.findBooksByKeywords(keywords);
    Integer sum = 0;
    for (Book b :
         books) {
        sum+=b.getNum();
    }
    model.addAttribute("books",books);
    model.addAttribute("num",books.size());
    model.addAttribute("sum",sum);
    model.addAttribute("isadmin",session.getAttribute("isadmin"));
    return "search_book_page";
}

3.4 借阅归还模块

3.4.1 借阅

img

图3-11 书本详情页面

借阅代码

@RequestMapping("/borrow")
public String borrow(@RequestParam("id") String id,Model model,HttpSession session){
    String uid = (String)session.getAttribute("id");
    String bid = id;
    Book book = bookMapper.findBookById(id);
    UserBorrow userBorrow = userBorrowMapper.findUserBorrowByUidAndBid(uid,id);
    if (userBorrow==null){
        String tid = UUID.randomUUID().toString().replace("-","");
        userBorrow = new UserBorrow(tid,uid,bid,1,new Date(System.currentTimeMillis()),null);
        userBorrowMapper.addUserBorrow(userBorrow);
    }else{
        userBorrowMapper.updateUserBorrowByIdBorrow(userBorrow.getId(),1);
    }
    UserBorrow userBorrow1 = userBorrowMapper.findUserBorrowByUidAndBid(uid,bid);
    model.addAttribute("book",book);
    model.addAttribute("username",session.getAttribute("username"));
    model.addAttribute("isBorrow",userBorrow1.getIsValid());
    return "book_detail";
}

3.4.2 归还

img

图3-12 书本详情页面

归还代码

@RequestMapping("/return_book")
public String return_book(@RequestParam("id") String id,Model model,HttpSession session){
    String uid = (String)session.getAttribute("id");
    String bid = id;
    Date returnTime = new Date(System.currentTimeMillis());
    UserBorrow userBorrow = userBorrowMapper.findUserBorrowByUidAndBid(uid,id);
    userBorrowMapper.updateUserBorrowByIdReturn(userBorrow.getId(),0,returnTime);
    UserBorrow userBorrow1 = userBorrowMapper.findUserBorrowByUidAndBid(uid,id);
    System.out.println("return_book:"+userBorrow1.toString());
    Book book = bookMapper.findBookById(id);
    model.addAttribute("book",book);
    model.addAttribute("username",session.getAttribute("username"));
    model.addAttribute("isBorrow",userBorrow1.getIsValid());
    return "book_detail";
}

3.5 用户详情

img

图3-13 用户详情页面

代码

@RequestMapping("/user_profile")
public String user_profile(@RequestParam("id") String id,Model model,HttpSession session){
    List<Profile> books = bookMapper.findBookListOfUserByUserId(id);
    //     System.out.println("user_profile:book="+books.get(0).toString());
    User temp = userMapper.findUserById((String) session.getAttribute("id"));
    System.out.println("user_profile:user="+temp.toString());
    model.addAttribute("user",temp);
    model.addAttribute("books",books);
    return "user_profile";
}

结论

本设计使用MySQL创建后台数据库,使用Idea IntelliJ工具实现对图书管理系统的功能操作。本图书管理系统实现了图书管理的基本功能,经过调试运行,表明该系统具有可行性和可扩充性。但数据库还有待进一步的完善与规划,操作系统还有待于进一步的改善,使系统更加高效,更加人性化。

通过这次毕业设计,我体会到以下几点:
(1) 通过这次开发过程,使自己有了软件开发的概念。软件开发从用户需求出发,一切工作围绕它展开,首先要满足用户的需要,开发过程中强调理论和实践结合,将以往学习的知识作为软件开发的理论基础,以坚实的基础完成系统开发是必要前提。

(2) 该系统所使用面向对象的集成开发环境,为开发人员提供了交互式的开发方式,编译用户进行书写代码和进行系统的调试。应用程序可以使用窗体和组件的各种工具进行设计。

(3) 在设计中更使我感觉到同学之间的团队合作精神是多么的重要,虽然是自己独立设计但是没有老师和同学的帮助是不可能实现的。

(4) 系统还有不足的地方,它的实行受到系统配置限制和环境变化,还有一些功能的设计考虑的不够全面,会在以后的工作和学习中继续改进,在原有基础上更加完整。

(5) 通过实际操作,使我将以往的所学融会贯通,同时也拓展了我的知识面,培养了我选用参考书,查阅手册及文献资料的能力。培养独立思考,深入研究,分析问题、解决问题的能力。

(6) 通过实际编译系统的分析设计、编程调试、掌握软件技术的分析方法和工程设计方法。根据我在课程设计中遇到的问题,我讲在以后的学习当中注意以下几点:
1、认真上好专业课,多在实践中锻炼自己。
2、写程序的过程中要考虑周到,严密。
3、在做设计的时候要有信息,有耐心,切勿浮躁。
4、认真的学习课本知识,掌握课本中的知识点,并在此基础上学会灵活运用。
5、在课余时间里多写程序,熟练掌握早调试程序的过程中所遇到的常见错误,以便能节省调试程序的时间。

总体来说,由于水平还不高,项目开发经验不足,以及毕业设计时间较短,该系统还有许多不尽如人意的地方,这些都有待进一步改善。通过这次毕业设计,我发现自己的知识还很不够,还不能完全适应市场需求。在今后的学习和工作中,我将努力完善,不断地扩充各方面的知识。通过不断的学习和改进,希望能够进一步提高自己的水平。

参考文献

参考文献示例:

a 专著、会议录、学位论文、报告

[1]刘国钧,陈绍业,王凤翥.图书馆目录[M].北京:高等教育出版社,1957.

[2]辛希孟.信息技术与信息服务国际研讨会论文集:A集[C].北京:中国社会科学出版社,1994.

[3]张筑生.微分半动力系统的不变集[D].北京:北京大学数学系数学研究所,1983.

[4]冯西桥.核反应堆压力管道与压力容器的LBB分析[R].北京:清华大学核能技术设计研究院,1997. b 期刊文章

[5] 金显贺,王昌长,王忠东,等.一种用于在线检测局部放电的数字滤波技术[J].清华大学学报(自然科学版),1993,33(4):62-67. c 专著中的析出文献

[6] 钟文发.非线性规划在可燃毒物配置中的应用[C].赵炜.运筹学的理论与应用——中国运筹学会第五届大会论文集[C].西安:西安电子科技大学出版社,1996:468-471. d 报纸文章

[7] 谢希德.创造学习的新思路[N].人民日报,1998-12-25(10). e 国际、国家标准

[8] GB/T16159-1996,汉语拼音正词法基本规则[S]. f 专利

[9] 姜锡洲.一种温热外敷药制备方案:中国,88105607.3[P].1989-07-26. g 电子文献

[10]王明亮.关于中国学术期刊标准化数据库系统工程的进展[EB/OL].http:// www.Cajcd.edu.cn/pub/wml.txt/980810-2.html,1998-08-16/1998-10-04.

[3]张筑生.微分半动力系统的不变集[D].北京:北京大学数学系数学研究所,1983.

[4]冯西桥.核反应堆压力管道与压力容器的LBB分析[R].北京:清华大学核能技术设计研究院,1997. b 期刊文章

[5] 金显贺,王昌长,王忠东,等.一种用于在线检测局部放电的数字滤波技术[J].清华大学学报(自然科学版),1993,33(4):62-67. c 专著中的析出文献

[6] 钟文发.非线性规划在可燃毒物配置中的应用[C].赵炜.运筹学的理论与应用——中国运筹学会第五届大会论文集[C].西安:西安电子科技大学出版社,1996:468-471. d 报纸文章

[7] 谢希德.创造学习的新思路[N].人民日报,1998-12-25(10). e 国际、国家标准

[8] GB/T16159-1996,汉语拼音正词法基本规则[S]. f 专利

[9] 姜锡洲.一种温热外敷药制备方案:中国,88105607.3[P].1989-07-26. g 电子文献

[10]王明亮.关于中国学术期刊标准化数据库系统工程的进展[EB/OL].http:// www.Cajcd.edu.cn/pub/wml.txt/980810-2.html,1998-08-16/1998-10-04.

[11] 万锦坤.中国大学学报论文文摘(1983-1993).英文版[DB/CD].北京:中国大百科全书出版社,1996.

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

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

相关文章

vue中获取农历时间

1.下载依赖 npm i chinese-lunar-calendar 2.局部使用 import { getLunar } from chinese-lunar-calendar; 3.使用 getLunar(new Date().getFullYear(), new Date().getMonth() 1, new Date().getDate()) 结果

【Java】高效利用异常处理技巧

文章目录 前言Java异常体系Error和ExceptionThrowable 常见的错误和异常编译时异常运行时异常Error 异常的处理捕获异常声明抛出异常类型 手动抛出异常对象&#xff1a;throw语法格式注意事项 自定义异常为什么需要自定义异常类 小结 前言 在使用计算机语言进行项目开发的过程…

C++ 学习之深拷贝 和 浅拷贝

前言 在C中&#xff0c;浅拷贝和深拷贝是涉及对象复制的两种不同方式&#xff0c;它们之间的关键区别在于拷贝对象时是否复制对象所指向的数据。 正文 浅拷贝&#xff08;Shallow Copy&#xff09;&#xff1a; 浅拷贝只复制对象本身&#xff0c;而不复制对象所指向的数据。…

redis(1)-hiredis-Windows下的编译

1.linux编译说明文档 GitHub - sewenew/redis-plus-plus: Redis client written in C 2.hiredis 编译 2.1 hiredis下载 https://github.com/redis/hiredis.git 2.2 hiredis cmake编译 2.2.1 配置生成:ConfigeGenerateOpen Project 配置源目录&#xff1a;…

【收藏】2023年成人高考题型分析、考试技巧

答题技巧 考试过程中&#xff0c;会做的题目按照自己的方法做&#xff0c;会做的务必一定要拿到分&#xff1b;不会做的&#xff0c;多得一分是一分。 1.字迹一定要工整&#xff0c;切勿潦草&#xff0c;减少涂改&#xff0c;尤其是语文&#xff0c;主观题和作文是没有标准答…

ubuntu下安装vscode代码编辑器

1、安装gcc&#xff08;安装前准备工作&#xff09; ubuntu下安装gcc报错&#xff1a; sudo apt get install gcc 正在等待缓存锁&#xff1a;无法获得锁 /var/lib/dpkg/lock-frontend。锁正由进程 6809&#xff08;unattended-upgr&#xff09;持有 方式1&#xff1a;没有…

【漏洞库】Fastjson_1.2.47_rce

文章目录 漏洞描述漏洞编号漏洞评级影响版本漏洞复现- 利用工具- 漏洞环境- 漏洞扫描- 漏洞验证- 深度利用- GetShell- EXP 编写 漏洞挖掘- 寻找入口点- 指纹信息 修复建议- 漏洞修复 漏洞原理 漏洞描述 Fastjson是阿里巴巴公司开源的一款json解析器&#xff0c;其性能优越&am…

Python多进程爬取电影信息

观察翻页时详情页面url地址变化规律 import json from os import makedirs from os.path import exists import requests import logging import re from urllib.parse import urljoin import multiprocessing# 定义了下日志输出级别和输出格式 logging.basicConfig(levellog…

Java——》synchronized编译

推荐链接&#xff1a; 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 总结——》【Linux】 总结——》【MongoD…

python+selenium自动化测试项目实战

说明&#xff1a;本项目采用流程控制思想&#xff0c;未引用unittest&pytest等单元测试框架 一.项目介绍 目的 测试某官方网站登录功能模块可以正常使用 用例 1.输入格式正确的用户名和正确的密码&#xff0c;验证是否登录成功&#xff1b; 2.输入格式正确的用户名和不…

想做交传翻译,如何成为一名专业的交传译员?

据了解&#xff0c;交传翻译指的是在会议进行过程中&#xff0c;译员快速地记录演讲者发言内容&#xff0c;在主讲者发言间隙&#xff0c;将上一段演讲内容翻译成目标语言并演讲个观众听。那么&#xff0c;如何成为一名专业的交传译员&#xff1f; 交传译员必须具备的能力有哪…

阿里云ubuntu服务器搭建ftp服务器

阿里云ubuntu服务器搭建ftp服务器 服务器环境安装步骤一.创建用户二.安装 vsftp三 配置vsftp四.配置阿里云安全组 服务器环境 阿里云上的云服务器&#xff0c;操作系统为 ubuntu20.04。 安装步骤 一.创建用户 为什么需要创建用户&#xff1f; 这里的用户&#xff0c;指的是…

Spring MVC入门必读:实现增删改查

目录 引言 一、前期准备 1.1.搭建Maven环境 1.2.导入pom.xml依赖 1.3.导入配置文件 ①jdbc.properties ②generatorConfig.xml ③log4j2.xml ④spring-mybatis.xml ⑤spring-context.xml ⑥spring-mvc.xml ⑦修改web.xml文件 二、逆向生成增删改查 2.1.导入相关u…

Visual Studio 2022 同步代码报错:Authentication failed...

1.使用其他git GUI工具&#xff0c;例如&#xff1a;TortoiseGit 能够正常拉取和推送项目&#xff0c; 但如果使用Visual Studio 2022 里面的git 代码管理工具拉取项目时&#xff0c;报错弹窗如下。 打开输出窗口,查看报错详细&#xff1a;点击Visual Studio 2022顶部菜单栏里…

win11和虚拟机上的ubuntu系统共享文件夹

出发点&#xff1a;有时候需要在虚拟机内和win11系统之间进行文件拷贝操作&#xff0c;但是虚拟机内的Vmware Tools不好用 解决方式 开启虚拟机共享文件夹 在虚拟机的Ubuntu系统内的终端命令行输入以下命令 sudo /usr/bin/vmhgfs-fuse .host:/SVMware /mnt/win -o subtype…

selenium 自动化测试:如何搭建自动化测试环境,搭建环境过程应该注意的问题

最近也有很多人私下问我&#xff0c;selenium学习难吗&#xff0c;基础入门的学习内容很多是3以前的版本资料&#xff0c;对于有基础的人来说&#xff0c;3到4的差别虽然有&#xff0c;但是不足以影响自己&#xff0c;但是对于没有学过的人来说&#xff0c;通过资料再到自己写的…

2024年天津农学院专升本增加水文与水资源专业更名报考范围的通知

天津农学院2024年关于增加高职升本科“水文与水资源工程” 报考专业范围的通知 各位考生&#xff1a; 根据教育部《职业教育专业目录&#xff08;2021年&#xff09;》&#xff08;教职成〔2021〕2号&#xff09;相关内容要求&#xff0c;天津农学院专升本“水文与水资源工程”…

代码随想录算法训练营第45天 | ● 70. 爬楼梯 (进阶)● 322. 零钱兑换 ● 279.完全平方数11

文章目录 前言一、70. 爬楼梯 &#xff08;进阶&#xff09;二、322. 零钱兑换三、279.完全平方数总结 前言 完全背包&#xff1b; 一、70. 爬楼梯 &#xff08;进阶&#xff09; 第44天的blog里面有提到这个题目&#xff0c;本质上还是完全背包&#xff1b;另外&#xff0c;例…

spring-secrity的Filter顺序+自定义过滤器

Filter顺序 Spring Security的官方文档向我们提供了filter的顺序&#xff0c;实际应用中无论用到了哪些&#xff0c;整体的顺序是保持不变的: ChannelProcessingFilter&#xff0c;重定向到其他协议的过滤器。也就是说如果你访问的channel错了&#xff0c;那首先就会在channel…

【LeetCode-中等题】79. 单词搜索

文章目录 题目方法一&#xff1a;递归 回溯 题目 方法一&#xff1a;递归 回溯 需要一个标记数组 来标志格子字符是否被使用过了先找到word 的第一个字符在表格中的位置&#xff0c;再开始递归递归的结束条件是如果word递归到了最后一个字符了&#xff0c;说明能在矩阵中找到单…