IDEA+Java+SSM+JSP+Mysql实现Web图书管理系统

6.管理员对用户的增删改查

7.管理员对用户类型的增删改查

8.管理员查看借阅记录

4.数据库文件


/*

Navicat Premium Data Transfer

Source Server : MYSQL

Source Server Type : MySQL

Source Server Version : 80013

Source Host : localhost:3306

Source Schema : ssm_library_management

Target Server Type : MySQL

Target Server Version : 80013

File Encoding : 65001

Date: 12/12/2021 16:30:13

*/

SET NAMES utf8mb4;

SET FOREIGN_KEY_CHECKS = 0;


– Table structure for admin


DROP TABLE IF EXISTS admin;

CREATE TABLE admin (

id bigint(4) NOT NULL AUTO_INCREMENT,

username varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

password varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

PRIMARY KEY (id) USING BTREE

) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;


– Records of admin


INSERT INTO admin VALUES (1, ‘admin’, ‘admin’);


– Table structure for book


DROP TABLE IF EXISTS book;

CREATE TABLE book (

id bigint(4) NOT NULL AUTO_INCREMENT,

type varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

name varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

number varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

author varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

press varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

publicationdate date NULL DEFAULT NULL,

price decimal(10, 2) NULL DEFAULT NULL,

pagecount int(4) NULL DEFAULT NULL,

keyword varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

createtime date NULL DEFAULT NULL,

isborrow int(4) NULL DEFAULT NULL,

remark varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

PRIMARY KEY (id) USING BTREE,

INDEX BOOK_PK(type) USING BTREE,

CONSTRAINT BOOK_PK FOREIGN KEY (type) REFERENCES booktype (number) ON DELETE CASCADE ON UPDATE CASCADE

) ENGINE = InnoDB AUTO_INCREMENT = 27 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;


– Records of book


INSERT INTO book VALUES (14, ‘bt004’, ‘大雪中的山庄’, ‘b001’, '东野圭吾 ', ‘北京十月文艺出版社’, ‘2018-06-16’, 36.00, 200, NULL, NULL, 0, ‘1’);

INSERT INTO book VALUES (16, ‘bt004’, ‘特工皇妃’, ‘b004’, ‘潇湘冬儿’, ‘江苏文艺出版社’, ‘2011-05-05’, 74.80, 333, NULL, NULL, 0, NULL);

INSERT INTO book VALUES (17, ‘bt006’, ‘人类简史’, ‘b005’, '[以色列] 尤瓦尔·赫拉利 ', ‘中信出版社’, ‘2014-11-01’, 68.00, 100, NULL, NULL, 0, NULL);

INSERT INTO book VALUES (18, ‘bt006’, ‘明朝那些事儿(1-9)’, ‘b006’, '当年明月 ', ‘中国海关出版社’, ‘2009-04-06’, 358.20, 500, NULL, NULL, 0, NULL);

INSERT INTO book VALUES (19, ‘bt002’, ‘经济学原理(上下)’, ‘b007’, '[美] 曼昆 ', ‘机械工业出版社’, ‘2003-08-05’, 88.00, 156, NULL, NULL, 0, NULL);

INSERT INTO book VALUES (20, ‘bt004’, ‘方向’, ‘b008’, '马克-安托万·马修 ', ‘北京联合出版公司’, ‘2017-04-01’, 99.80, 186, NULL, NULL, 0, NULL);

INSERT INTO book VALUES (21, ‘bt004’, ‘画的秘密’, ‘b009’, '马克-安托万·马修 ', ‘北京联合出版公司’, ‘2016-01-01’, 60.00, 556, NULL, NULL, 0, NULL);

INSERT INTO book VALUES (22, ‘bt004’, ‘造彩虹的人’, ‘b010’, '东野圭吾 ', ‘北京十月文艺出版社’, ‘2017-06-01’, 39.50, 775, NULL, NULL, 0, NULL);

INSERT INTO book VALUES (23, ‘bt004’, ‘控方证人’, ‘b011’, '阿加莎·克里斯蒂 ', ‘新星出版社’, ‘2017-05-01’, 35.00, 195, NULL, NULL, 0, NULL);

INSERT INTO book VALUES (24, ‘bt004’, ‘少有人走的路’, ‘b012’, 'M·斯科特·派克 ', ‘吉林文史出版社’, ‘2007-01-01’, 26.00, 300, NULL, NULL, 0, NULL);

INSERT INTO book VALUES (25, ‘bt004’, ‘追寻生命的意义’, ‘b013’, '[奥] 维克多·弗兰克 ', ‘新华出版社’, ‘2003-01-01’, 12.00, 250, NULL, NULL, 0, NULL);

INSERT INTO book VALUES (26, ‘bt004’, ‘秘密花园’, ‘b014’, '乔汉娜·贝斯福 ', ‘北京联合出版公司’, ‘2015-06-01’, 42.00, 450, NULL, NULL, 0, NULL);


– Table structure for booktype


DROP TABLE IF EXISTS booktype;

CREATE TABLE booktype (

id bigint(4) NOT NULL AUTO_INCREMENT,

number varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

name varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

keyword varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

remark varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

createtime date NULL DEFAULT NULL,

PRIMARY KEY (id) USING BTREE,

INDEX number(number) USING BTREE

) ENGINE = InnoDB AUTO_INCREMENT = 23 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;


– Records of booktype


INSERT INTO booktype VALUES (5, ‘bt001’, ‘军事’, NULL, NULL, NULL);

INSERT INTO booktype VALUES (6, ‘bt002’, ‘经济’, NULL, NULL, NULL);

INSERT INTO booktype VALUES (8, ‘bt003’, ‘语言’, NULL, NULL, NULL);

INSERT INTO booktype VALUES (9, ‘bt004’, ‘文学’, NULL, NULL, NULL);

INSERT INTO booktype VALUES (10, ‘bt005’, ‘艺术’, NULL, NULL, NULL);

INSERT INTO booktype VALUES (11, ‘bt006’, ‘历史’, NULL, NULL, NULL);

INSERT INTO booktype VALUES (22, ‘bt007’, ‘综合’, NULL, NULL, NULL);

INSERT INTO booktype VALUES (23, ‘bt008’, ‘地理’, NULL, NULL, NULL);


– Table structure for reader


DROP TABLE IF EXISTS reader;

CREATE TABLE reader (

id bigint(4) NOT NULL AUTO_INCREMENT,

number varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

name varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

type varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

sex varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

workunit varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

homeaddress varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

tel varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

email varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

createtime date NULL DEFAULT NULL,

remark varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

PRIMARY KEY (id) USING BTREE

) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;


– Records of reader


INSERT INTO reader VALUES (1, ‘r001’, ‘张三’, ‘rt002’, ‘女’, ‘广州’, ‘广州’, ‘15626277129’, ‘913772015@qq.com’, NULL, NULL);

INSERT INTO reader VALUES (2, ‘r002’, ‘李四’, ‘rt001’, ‘男’, NULL, NULL, NULL, NULL, NULL, NULL);

INSERT INTO reader VALUES (5, ‘r003’, ‘王五’, ‘rt001’, ‘男’, ‘市委’, ‘湖南长沙’, ‘12345678911’, ‘wangwu@qq.com’, ‘2021-12-11’, NULL);


– Table structure for reader_account


DROP TABLE IF EXISTS reader_account;

CREATE TABLE reader_account (

id bigint(4) NOT NULL,

username varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

password varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

PRIMARY KEY (id) USING BTREE

) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;


– Records of reader_account


INSERT INTO reader_account VALUES (1, ‘r001’, ‘r001’);

INSERT INTO reader_account VALUES (2, ‘r002’, ‘r002’);

INSERT INTO reader_account VALUES (3, ‘r003’, ‘r003’);


– Table structure for readertype


DROP TABLE IF EXISTS readertype;

CREATE TABLE readertype (

id bigint(4) NOT NULL AUTO_INCREMENT,

number varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

name varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

borrownumber varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT ‘借书数量’,

borrowterm varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT ‘借书期限’,

remark varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

createtime date NULL DEFAULT NULL,

PRIMARY KEY (id) USING BTREE

) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;


– Records of readertype


INSERT INTO readertype VALUES (1, ‘rt001’, ‘一级读者’, ‘8’, ‘30’, NULL, NULL);

INSERT INTO readertype VALUES (2, ‘rt002’, ‘二级读者’, ‘10’, ‘60’, NULL, NULL);


– Table structure for record


DROP TABLE IF EXISTS record;

CREATE TABLE record (

id bigint(4) NOT NULL AUTO_INCREMENT,

readernumber varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

booknumber varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

borrowdate date NULL DEFAULT NULL,

returndate date NULL DEFAULT NULL,

remark varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

PRIMARY KEY (id) USING BTREE,

INDEX reader(readernumber) USING BTREE,

INDEX book(booknumber) USING BTREE

) ENGINE = InnoDB AUTO_INCREMENT = 11 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;


– Records of record


INSERT INTO record VALUES (8, ‘r002’, ‘b001’, ‘2018-06-27’, ‘2018-06-27’, NULL);

INSERT INTO record VALUES (9, ‘r001’, ‘b001’, ‘2018-06-27’, ‘2018-06-27’, NULL);

INSERT INTO record VALUES (10, ‘r001’, ‘b001’, ‘2018-06-27’, ‘2018-06-27’, NULL);

INSERT INTO record VALUES (11, ‘r001’, ‘b001’, ‘2021-12-11’, ‘2021-12-11’, ‘’);

INSERT INTO record VALUES (12, ‘r001’, ‘b001’, ‘2021-12-11’, ‘2021-12-11’, NULL);

INSERT INTO record VALUES (14, ‘r001’, ‘b001’, ‘2021-12-11’, ‘2021-12-11’, ‘r001’);

INSERT INTO record VALUES (15, ‘r001’, ‘b004’, ‘2021-12-11’, ‘2021-12-11’, ‘r001’);

INSERT INTO record VALUES (16, ‘r001’, ‘b005’, ‘2021-12-11’, ‘2021-12-11’, ‘r001’);

SET FOREIGN_KEY_CHECKS = 1;

二、系统展示

======

1.登录系统


2.用户-借阅书籍


3.管理员-图书管理


4.管理员-图书类型管理


5.管理员-读者管理


6.管理员-读者类型管理


7.管理员-借阅记录查看


三、部分代码

======

BookController


package com.sjsq.controller;

import com.sjsq.pojo.Book;

import com.sjsq.pojo.BookType;

import com.sjsq.pojo.Record;

import com.sjsq.service.BookService;

import com.sjsq.service.ReaderService;

import com.sjsq.service.RecordService;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;

import java.math.BigDecimal;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.List;

@Controller

public class BookController {

@Autowired

private BookService bookService;

@Autowired

private RecordService recordService;

@Autowired

private ReaderService readerService;

@RequestMapping(“/book/list”)

public String bookList(Model model, HttpServletRequest request) throws Exception {

request.setCharacterEncoding(“UTF-8”);

String name = request.getParameter(“bookName”);

String type = request.getParameter(“bookType”);

String press = request.getParameter(“bookPress”);

List bookList = bookService.queryBook(name, type, press);

List bookTypeList = bookService.queryAllBookType();

List bookNumberList = bookService.queryBookNumber();

List readerNumberList = readerService.queryReaderNumber();

model.addAttribute(“books”, bookList);

request.getSession().setAttribute(“bookTypes”, bookTypeList);

request.getSession().setAttribute(“bookNumbers”, bookNumberList);

request.getSession().setAttribute(“readerNumbers”, readerNumberList);

model.addAttribute(“bookName”, name);

model.addAttribute(“bookType”, type);

return “admin_books”;

}

@RequestMapping(“/book/listreader”)

public String bookListReader(Model model, HttpServletRequest request) throws Exception {

request.setCharacterEncoding(“UTF-8”);

String name = request.getParameter(“bookName”);

String type = request.getParameter(“bookType”);

String press = request.getParameter(“bookPress”);

List bookList = bookService.queryBook(name, type, press);

List bookTypeList = bookService.queryAllBookType();

List bookNumberList = bookService.queryBookNumber();

List readerNumberList = readerService.queryReaderNumber();

model.addAttribute(“books”, bookList);

request.getSession().setAttribute(“bookTypes”, bookTypeList);

request.getSession().setAttribute(“bookNumbers”, bookNumberList);

request.getSession().setAttribute(“readerNumbers”, readerNumberList);

model.addAttribute(“bookName”, name);

model.addAttribute(“bookType”, type);

return “reader_books”;

}

@RequestMapping(“/book/edit.action”)

public @ResponseBody

Book bookEdit(String number) {

Book book = bookService.queryBookByNumber(number);

return book;

}

@RequestMapping(“/book/update.action”)

public @ResponseBody

String bookUpdate(Book book) {

bookService.updateBookById(book);

return “OK”;

}

/用book实体接收不了前端传过来的变量,只能一个一个收/

@RequestMapping(“/book/add.action”)

public @ResponseBody

String bookAdd(HttpServletRequest request) throws Exception {

Date publicationdate = null;

Integer pagecount = null;

BigDecimal price = null;

String name = request.getParameter(“name”);

String type = request.getParameter(“type”);

String author = request.getParameter(“anthor”);

String number = request.getParameter(“number”);

String press = request.getParameter(“press”);

String publicationdateStr = request.getParameter(“publicationdate”);

String priceStr = request.getParameter(“price”);

String pagecountStr = request.getParameter(“pagecount”);

String remark = request.getParameter(“remark”);

SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd”);

String createtimeStr = sdf.format(new Date());

Date createtime = sdf.parse(createtimeStr);

if (publicationdateStr != “”) {

publicationdate = sdf.parse(publicationdateStr);

}

if (pagecountStr != “”) {

pagecount = Integer.parseInt(pagecountStr);

}

if (priceStr != “”) {

price = new BigDecimal(priceStr);

}

Book book = new Book(type, name, number, author, press, publicationdate,

price, pagecount, createtime, 0, remark);

bookService.addBook(book);

return “OK”;

}

@RequestMapping(“/book/delete.action”)

public @ResponseBody

String bookDelete(String number) {

bookService.deleteBookByNumber(number);

return “OK”;

}

@RequestMapping(“/book/lent.action”)

public @ResponseBody

String lentBook(HttpServletRequest request) throws Exception {

String bookNumber = request.getParameter(“bookNumber”);

String readerNumber = request.getParameter(“readerNumber”);

String remark = request.getParameter(“remark”);

SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd”);

String borrowtimeStr = sdf.format(new Date());

Date borrowtime = sdf.parse(borrowtimeStr);

Record record = new Record();

record.setReaderNumber(readerNumber);

record.setBookNumber(bookNumber);

record.setBorrowDate(borrowtime);

record.setRemark(remark);

bookService.updateBookStatusByNumber(1, bookNumber);

recordService.addRecord(record);

return “OK”;

}

@RequestMapping(“/book/return.action”)

public @ResponseBody

String returnBook(HttpServletRequest request) throws Exception {

String bookNumber = request.getParameter(“bookNumber”);

SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd”);

String returntimeStr = sdf.format(new Date());

Date returntime = sdf.parse(returntimeStr);

bookService.updateBookStatusByNumber(0, bookNumber);

recordService.setReturnDate(bookNumber, returntime);

return “OK”;

}

@RequestMapping(“/record/list”)

public String recordList(Model model, HttpServletRequest request) throws Exception {

request.setCharacterEncoding(“UTF-8”);

List recordList = recordService.queryAllFullRecord();

model.addAttribute(“records”, recordList);

return “record”;

}

}

BookTypeController


package com.sjsq.controller;

import com.fasterxml.jackson.databind.ObjectMapper;

import com.sjsq.pojo.BookType;

import com.sjsq.service.BookService;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.List;

@Controller

public class BookTypeController {

@Autowired

private BookService bookService;

@RequestMapping(“/booktype/list”)

public String bookTypeList(Model model, HttpServletRequest request) throws Exception {

request.setCharacterEncoding(“UTF-8”);

List bookTypeList = bookService.queryAllBookType();

ObjectMapper om = new ObjectMapper();

String jsonStr = om.writeValueAsString(bookTypeList);

System.out.println(jsonStr);

model.addAttribute(“bookTypes”, bookTypeList); //前端foreach标签好像解析不了json

model.addAttribute(“bookTypesJSON”, jsonStr);

return “admin_booktype”;

}

@RequestMapping(“/booktype/edit.action”)

public @ResponseBody

BookType bookTypeEdit(String number) {

BookType booktype = bookService.queryBookTypeByNumber(number);

return booktype;

}

@RequestMapping(“/booktype/update.action”)

public @ResponseBody

String bookTypeUpdate(BookType bookType) {

bookService.updateBookTypeById(bookType);

return “OK”;

}

@RequestMapping(“/booktype/add.action”)

public @ResponseBody

String bookTypeAdd(HttpServletRequest request) throws Exception {

/*private int id;

private String number;

private String name;

private String keyword;

private String remark;*/

String name = request.getParameter(“name”);

String number = request.getParameter(“number”);

String remark = request.getParameter(“remark”);

SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd”);

String createtimeStr = sdf.format(new Date());

Date createtime = sdf.parse(createtimeStr);

BookType bookType = new BookType(number, name, remark, createtime);

bookService.addBookType(bookType);

return “OK”;

}

@RequestMapping(“/booktype/delete.action”)

public @ResponseBody

String bookTypeDelete(String number) {

bookService.deleteBookTypeByNumber(number);

return “OK”;

}

}

LoginController


package com.sjsq.controller;

import com.sjsq.pojo.Admin;

import com.sjsq.pojo.ReaderAccount;

import com.sjsq.service.LoginService;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.util.HashMap;

@Controller

public class LoginController {

@Autowired

private LoginService loginService;

@RequestMapping(value = {“/”, “/login.html”})

public String toLogin(HttpServletRequest request) {

return “index”;

}

@RequestMapping(“/logout.html”)

public String logout(HttpServletRequest request) {

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.util.HashMap;

@Controller

public class LoginController {

@Autowired

private LoginService loginService;

@RequestMapping(value = {“/”, “/login.html”})

public String toLogin(HttpServletRequest request) {

return “index”;

}

@RequestMapping(“/logout.html”)

public String logout(HttpServletRequest request) {

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-O7iu2Mey-1715457704172)]

[外链图片转存中…(img-qaZoTqt6-1715457704172)]

[外链图片转存中…(img-pbKNT8SI-1715457704172)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 27
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值