利用 JAVA 语言、结合MySQL数据库技术、SSM 开发框架,把上面这个数据库
时间: 2024-02-02 20:02:36 浏览: 130
SSM+MYSQL(JAVA)
中的数据进行增删改查操作,实现一个简单的学生成绩管理系统。
首先需要建立一个学生表和一个成绩表,学生表包括学生的基本信息,成绩表包括学生的各科成绩。
学生表包括以下字段:
- 学号
- 姓名
- 性别
- 出生日期
- 入学日期
- 班级
成绩表包括以下字段:
- 学号
- 课程名称
- 分数
使用 JAVA 语言和 MySQL 数据库技术,可以使用 JDBC 连接数据库,并通过 SQL 语句实现增删改查操作。SSM 框架可以用于快速搭建 Web 应用程序,实现前后端分离,提高开发效率。
具体实现步骤如下:
1. 建立数据库和表
使用 MySQL Workbench 建立一个数据库,命名为 student_management_system,然后在该数据库中建立两个表:student 和 score。
student 表的建表语句如下:
CREATE TABLE `student` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`student_no` varchar(20) NOT NULL,
`name` varchar(20) NOT NULL,
`gender` varchar(10) NOT NULL,
`birthday` date NOT NULL,
`enrollment_date` date NOT NULL,
`class` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
score 表的建表语句如下:
CREATE TABLE `score` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`student_no` varchar(20) NOT NULL,
`course_name` varchar(20) NOT NULL,
`score` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
2. 导入 JDBC 驱动
在项目中导入 MySQL 的 JDBC 驱动,以便连接数据库。可以从 MySQL 官网下载 MySQL Connector/J 驱动,或者从 Maven 仓库中获取。
3. 编写 DAO 层代码
在项目中编写 DAO 层代码,包括对数据库的增删改查操作。可以使用 JDBC 或者 MyBatis 框架实现。
以 JDBC 为例,DAO 层代码如下:
public class StudentDao {
private Connection conn;
private PreparedStatement pstmt;
public StudentDao(Connection conn) {
this.conn = conn;
}
public boolean add(Student student) throws SQLException {
String sql = "INSERT INTO student(student_no, name, gender, birthday, enrollment_date, class) VALUES(?,?,?,?,?,?)";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, student.getStudentNo());
pstmt.setString(2, student.getName());
pstmt.setString(3, student.getGender());
pstmt.setDate(4, new java.sql.Date(student.getBirthday().getTime()));
pstmt.setDate(5, new java.sql.Date(student.getEnrollmentDate().getTime()));
pstmt.setString(6, student.getClassName());
int result = pstmt.executeUpdate();
return result > 0;
}
public boolean update(Student student) throws SQLException {
String sql = "UPDATE student SET name=?, gender=?, birthday=?, enrollment_date=?, class=? WHERE student_no=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, student.getName());
pstmt.setString(2, student.getGender());
pstmt.setDate(3, new java.sql.Date(student.getBirthday().getTime()));
pstmt.setDate(4, new java.sql.Date(student.getEnrollmentDate().getTime()));
pstmt.setString(5, student.getClassName());
pstmt.setString(6, student.getStudentNo());
int result = pstmt.executeUpdate();
return result > 0;
}
public boolean delete(String studentNo) throws SQLException {
String sql = "DELETE FROM student WHERE student_no=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, studentNo);
int result = pstmt.executeUpdate();
return result > 0;
}
public Student get(String studentNo) throws SQLException {
String sql = "SELECT * FROM student WHERE student_no=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, studentNo);
ResultSet rs = pstmt.executeQuery();
if (rs.next()) {
Student student = new Student();
student.setId(rs.getInt("id"));
student.setStudentNo(rs.getString("student_no"));
student.setName(rs.getString("name"));
student.setGender(rs.getString("gender"));
student.setBirthday(rs.getDate("birthday"));
student.setEnrollmentDate(rs.getDate("enrollment_date"));
student.setClassName(rs.getString("class"));
return student;
}
return null;
}
public List<Student> list() throws SQLException {
List<Student> students = new ArrayList<>();
String sql = "SELECT * FROM student";
pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
Student student = new Student();
student.setId(rs.getInt("id"));
student.setStudentNo(rs.getString("student_no"));
student.setName(rs.getString("name"));
student.setGender(rs.getString("gender"));
student.setBirthday(rs.getDate("birthday"));
student.setEnrollmentDate(rs.getDate("enrollment_date"));
student.setClassName(rs.getString("class"));
students.add(student);
}
return students;
}
}
4. 编写 Service 层代码
在项目中编写 Service 层代码,包括对 DAO 层的调用和业务逻辑处理。可以使用 Spring 框架实现,使用注解方式进行配置。
以 Spring 为例,Service 层代码如下:
@Service
public class StudentService {
@Autowired
private StudentDao studentDao;
public boolean add(Student student) throws SQLException {
return studentDao.add(student);
}
public boolean update(Student student) throws SQLException {
return studentDao.update(student);
}
public boolean delete(String studentNo) throws SQLException {
return studentDao.delete(studentNo);
}
public Student get(String studentNo) throws SQLException {
return studentDao.get(studentNo);
}
public List<Student> list() throws SQLException {
return studentDao.list();
}
}
5. 编写 Controller 层代码
在项目中编写 Controller 层代码,使用 Spring MVC 框架实现请求和响应的处理。
以 Spring MVC 为例,Controller 层代码如下:
@Controller
@RequestMapping("/student")
public class StudentController {
@Autowired
private StudentService studentService;
@GetMapping("/list")
@ResponseBody
public List<Student> list() throws SQLException {
return studentService.list();
}
@GetMapping("/{studentNo}")
@ResponseBody
public Student get(@PathVariable String studentNo) throws SQLException {
return studentService.get(studentNo);
}
@PostMapping("/")
@ResponseBody
public boolean add(@RequestBody Student student) throws SQLException {
return studentService.add(student);
}
@PutMapping("/")
@ResponseBody
public boolean update(@RequestBody Student student) throws SQLException {
return studentService.update(student);
}
@DeleteMapping("/{studentNo}")
@ResponseBody
public boolean delete(@PathVariable String studentNo) throws SQLException {
return studentService.delete(studentNo);
}
}
6. 编写前端页面代码
在项目中编写前端页面代码,使用 HTML、CSS 和 JavaScript 实现页面的布局和交互效果。可以使用 Bootstrap 框架和 jQuery 库实现快速开发。
7. 运行项目
在项目中运行 Maven 命令进行打包,然后将打包后的 WAR 文件部署到 Tomcat 服务器上。在浏览器中访问项目的 URL,即可看到学生成绩管理系统的界面。
以上就是利用 JAVA 语言、结合 MySQL 数据库技术、SSM 开发框架,实现一个简单的学生成绩管理系统的详细步骤。
阅读全文