最全学生信息管理系统 —— 后端篇,万字长文总结Java多进程

最后

总而言之,面试官问来问去,问的那些Redis知识点也就这么多吧,复习的不够到位,知识点掌握不够熟练,所以面试才会卡壳。将这些Redis面试知识解析以及我整理的一些学习笔记分享出来给大家参考学习

还有更多学习笔记面试资料也分享如下:

都是“Redis惹的祸”,害我差点挂在美团三面,真是“虚惊一场”

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

/*!40101 SET character_set_client = @saved_cs_client */;

/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;

/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;

/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;

/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;

/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

– Dump completed on 2020-12-15 8:15:56

Mybatis


持久层框架使用 Mybatis

SpringBoot集成下的Mybatis 配置

org.mybatis.spring.boot

mybatis-spring-boot-starter

2.1.3

application.yml配置

mybatis:

configuration:

mybatis的日志输出

log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

mapper文件

mapper-locations: classpath:mapper/*.xml

配置类型别名,避免每次冗余的全限定名

type-aliases-package: com.jsy.simsserver.pojo

#日志输出

logging:

level:

#这个指定你的dao层,也就是mapper文件的所在包

com/jsy/simsserver/mapper: DEBUG

持久层结构

  • 在mapper层约定映射接口

StudentMapper.java

@Mapper

@Repository

public interface StudentMapper {

void insertStudent(Student student);

Student selectStudent(Long sid);

// ………………

}

  • 在resources/mapper/StudentMapper.xml里编写SQL语句,实现ORM(对象关系映射)
<?xml version="1.0" encoding="UTF-8" ?>

INSERT INTO student(sid,pwd,sname,gender,birth,profession,faculty,s_class,grade,phone,politics_status,address,head_url)

VALUES (#{sid},#{pwd},#{sname},#{gender},#{birth},#{profession},#{faculty},#{s_class},#{grade},#{phone},#{politics_status},#{address},#{head_url});

SpringBoot和SpringMVC

====================================================================================

项目采用MVC设计思想。

下面简单介绍一下,是SpringBoot集成下的采用MVC架构的Web项目。

项目结构图:

├── java

│ └── com

│ └── jsy

│ └── simsserver

│ ├── SimsServerApplication.java

│ ├── controller

│ │ ├── CourseController.java

│ │ ├── LoginController.java

│ │ ├── OSSUploadController.java

│ │ ├── ScoreController.java

│ │ ├── StudentController.java

│ │ └── TestController.java

│ ├── mapper

│ │ ├── CourseMapper.java

│ │ ├── ScoreMapper.java

│ │ └── StudentMapper.java

│ ├── pojo

│ │ ├── Achievement.java

│ │ ├── Admin.java

│ │ ├── Course.java

│ │ ├── OssSign.java

│ │ ├── Score.java

│ │ └── Student.java

│ ├── reponse

│ │ ├── ErrorMessage.java

│ │ ├── Message.java

│ │ └── SuccessMessage.java

│ └── service

│ ├── CourseService.java

│ ├── ScoreService.java

│ ├── StudentService.java

│ └── serviceImpl

│ ├── CourseServiceImpl.java

│ ├── ScoreServiceImpl.java

│ └── StudentServiceImpl.java

└── resources

├── application.yml

├── banner.txt

└── mapper

├── CourseMapper.xml

├── ScoreMapper.xml

└── StudentMapper.xml

pojo


编写一些实体类。

使用了lombok插件,避免编写大量的模板代码(gettersetter等等)

@Getter

@Setter

@NoArgsConstructor

@AllArgsConstructor

public class Student {

private Long sid; // 学号

private String pwd; // 密码

private String sname; // 姓名

private String gender; // 数据库用枚举类型

private String birth; // 格式为:1999-09-05

private String profession; // 专业

private String faculty; // 院系

private String s_class; //班级

private String grade; // 年级

private String phone; // 电话

private String politics_status; // 政治面貌

private String address; //籍贯

private String head_url; //学生照片的URL

}

controller


介绍几个最常用的注解:

  • @RestController = @Controller + @ResponseBody

在IOC容器中注册一个controller对象,并且默认使用返回Json格式的数据。

  • @Resource

来自javax,用途和spring下的@Autowire注解功能类似,实现自动装配。

  • @PostMapping

仅在浏览器使用Post请求时触发该方法。

还有@GetMapping等等其他类似的注解。

@RestController

public class StudentController {

@Resource(name = “studentService”)

StudentService studentService;

/**

  • @param student 完整User对象

  • @return

*/

@PostMapping(“/student”)

public ResponseEntity addStudent(@RequestBody Student student){

int code = studentService.addStudent(student);

if(code==0){

return ResponseEntity.status(HttpStatus.CREATED).body(new SuccessMessage(“成功添加一个用户”));

}

if(code==1){

return ResponseEntity.accepted().body(new ErrorMessage(“用户已经存在”));

}

return ResponseEntity.badRequest().body(new ErrorMessage(“内部错误”));

}

}

service


采用面向接口的编程的思想。

service层约定出接口。

在serviceImpl包里面实现接口,项目的课拓展性更好。

例如:

public interface StudentService {

int addStudent(Student student);

int addStudent(Long sid);

int addStudents(List sidList);

List queryAllStudents();

Student queryStudentByID(Long uid);

List queryStudentByName(String name);

void removeStudent(Long sid);

void updateStudent(Student student);

}

// 在service有有多个实现的时候,要给@Service添加不同的Bean的名称

@Service(“studentService”)

public class StudentServiceImpl implements StudentService {

@Resource

StudentMapper studentMapper;

// 在这里编写实现接口的方法。

}

mapper


Mybatis部分已经介绍,见上。

最后

关于面试刷题也是有方法可言的,建议最好是按照专题来进行,然后由基础到高级,由浅入深来,效果会更好。当然,这些内容我也全部整理在一份pdf文档内,分成了以下几大专题:

  • Java基础部分

  • 算法与编程

  • 数据库部分

  • 流行的框架与新技术(Spring+SpringCloud+SpringCloudAlibaba)

这份面试文档当然不止这些内容,实际上像JVM、设计模式、ZK、MQ、数据结构等其他部分的面试内容均有涉及,因为文章篇幅,就不全部在这里阐述了。

作为一名程序员,阶段性的学习是必不可少的,而且需要保持一定的持续性,这次在这个阶段内,我对一些重点的知识点进行了系统的复习,一方面巩固了自己的基础,另一方面也提升了自己的知识广度和深度。

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

12)]

  • 数据库部分

[外链图片转存中…(img-dZHsJJ25-1715601208812)]

  • 流行的框架与新技术(Spring+SpringCloud+SpringCloudAlibaba)

[外链图片转存中…(img-hqv822UY-1715601208812)]

这份面试文档当然不止这些内容,实际上像JVM、设计模式、ZK、MQ、数据结构等其他部分的面试内容均有涉及,因为文章篇幅,就不全部在这里阐述了。

作为一名程序员,阶段性的学习是必不可少的,而且需要保持一定的持续性,这次在这个阶段内,我对一些重点的知识点进行了系统的复习,一方面巩固了自己的基础,另一方面也提升了自己的知识广度和深度。

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 23
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL多数据源是指在一个应用程序中同时使用多个不同的MySQL数据库来存储和管理数据的技术。它可以帮助开发人员更灵活地处理各种数据库操作,提高程序的性能和可扩展性。下面是一个完整的MySQL多数据源教程。 一、设置数据库连接信息 1. 在应用程序的配置件中,创建多个数据库连接的配置项。例如,可以为每个数据源创建一个配置项,分别命名为db1、db2等。 2. 在配置项中,设置每个数据源的连接信息,包括数据库地址、用户名、密码等。 二、创建数据源管理器 1. 创建一个数据源管理器类,用于管理多个数据源。该类需要实现数据源的动态切换和获取。 2. 使用Java的线程安全的数据结构,如ConcurrentHashMap来存储数据源信息。将配置件中的数据库连接信息加载到数据结构中。 3. 实现方法来切换不同的数据源,通过传入数据源的名称来切换到对应的数据库。 三、实现数据源切换 1. 在应用程序中,根据业务需求选择需要使用的数据源。可以通过调用数据源管理器的方法来切换数据源。 2. 在DAO层的代码中,根据当前使用的数据源名称,选择对应的数据源进行数据库操作。 四、使用多数据源进行数据库操作 1. 在DAO层的代码中,区分不同的数据源,并将数据库操作的代码包装在对应的数据源中。 2. 在业务层的代码中,调用DAO层的方法来进行数据库操作。不同的数据源会自动切换。 五、处理事务 1. 如果需要在一个事务中操作多个数据源,可以使用分布式事务的方式来处理。 2. 可以使用开源的分布式事务框架,如Atomikos、Bitronix等来实现多数据源的事务管理。 六、监控和维护 1. 使用监控工具来监控多个数据源的使用情况,包括连接数、查询次数等。 2. 定期对数据库进行维护,包括索引优化、数据清理等工作,以保证数据库的性能和稳定性。 通过以上步骤,我们可以实现MySQL多数据源的配置和使用。使用多数据源可以更好地管理和处理不同的数据库操作,在提高程序性能和可扩展性的同时,也提供了更灵活的数据操作方式。同时,需要注意合理选择和配置数据源,以及监控和维护数据库,以保证系统的运行效率和数据的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值