小李: 嗨,小张,我们最近需要在宁波开发一个实习生管理系统,你有什么好的建议吗?
小张: 当然有。首先我们需要明确系统的需求,比如用户登录、信息录入、查询等功能。其次就是选择合适的开发框架和技术栈。
小李: 那我们应该使用什么技术栈呢?
小张: 我建议我们可以使用JavaWeb技术栈,它包括SpringBoot作为后端框架,MySQL作为数据库,Vue.js作为前端框架。这样可以快速搭建起一个高效稳定的系统。
小李: 听起来不错,那我们先从数据库设计开始吧。
CREATE DATABASE InternshipManagementSystem;
USE InternshipManagementSystem;
CREATE TABLE Users (
UserID INT AUTO_INCREMENT PRIMARY KEY,
UserName VARCHAR(255) NOT NULL,
Password VARCHAR(255) NOT NULL,
Email VARCHAR(255),
Role ENUM('Admin', 'Intern') DEFAULT 'Intern'
);
CREATE TABLE Interns (
InternID INT AUTO_INCREMENT PRIMARY KEY,
UserID INT UNIQUE,
Name VARCHAR(255) NOT NULL,
Major VARCHAR(255),
Company VARCHAR(255),
FOREIGN KEY (UserID) REFERENCES Users(UserID)
);
小张: 这是数据库的基本表结构,接下来我们需要编写后端接口。
@RestController
public class UserController {
@Autowired
private UserService userService;
@PostMapping("/login")
public ResponseEntity<Map<String, Object>> login(@RequestBody Map<String, String> loginInfo) {
String username = loginInfo.get("username");
String password = loginInfo.get("password");
// 这里省略了具体的登录逻辑
return ResponseEntity.ok(Collections.singletonMap("success", true));
}
@GetMapping("/interns")
public ResponseEntity<List<Intern>> getInterns() {
List<Intern> interns = userService.getAllInterns();
return ResponseEntity.ok(interns);
}
}
小李: 前端部分呢?
<template>
<el-table :data="interns">
<el-table-column prop="name" label="姓名"/>
<el-table-column prop="major" label="专业"/>
<el-table-column prop="company" label="公司"/>
</el-table>
</template>
<script>
export default {
data() {
return {
interns: []
};
},
created() {
this.fetchInterns();
},
methods: {
fetchInterns() {
axios.get('/api/interns').then(response => {
this.interns = response.data;
});
}
}
};
</script>

