实战:实现学生信息管理模块
- 环境准备
- JDK
- Spring Boot
- MyBatis
- 创建Spring Boot项目
使用Spring Initializr创建一个新的Spring Boot项目,并添加以下依赖:
- Spring Web
- MyBatis Framework
- MySQL Driver
- 数据库设计
在MySQL数据库中创建一个名为studentdb
的数据库,并创建一个名为students
的表,表结构如下:
sql
CREATE TABLE `students` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL,
`address` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
- 配置数据源和MyBatis
在application.properties
文件中添加以下配置:
properties
# 数据源配置
spring.datasource.url=jdbc:mysql://localhost:3306/studentdb?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# MyBatis配置
mybatis.type-aliases-package=com.example.demo.entity
mybatis.mapper-locations=classpath:mapper/*.xml
- 定义实体类
创建一个名为Student
的实体类,代码如下:
java
public class Student {
private int id;
private String name;
private String email;
private String address;
// getter和setter方法省略
}
- 定义Mapper接口
创建一个名为StudentMapper
的Mapper接口,代码如下:
java
@Mapper
public interface StudentMapper {
List<Student> getAllStudents();
Student getStudentById(int id);
int addStudent(Student student);
int updateStudent(Student student);
int deleteStudent(int id);
}
- 定义Mapper XML配置文件
在resources/mapper
下创建一个名为StudentMapper.xml
的配置文件,代码如下:
xml
<mapper namespace="com.example.demo.mapper.StudentMapper">
<resultMap id="StudentMap" type="com.example.demo.entity.Student">
<id property="id" column="id" />
<result property="name" column="name" />
<result property="email" column="email" />
<result property="address" column="address" />
</resultMap>
<select id="getAllStudents" resultMap="StudentMap">
SELECT * FROM students
</select>
<select id="getStudentById" resultMap="StudentMap">
SELECT * FROM students WHERE id=#{id}
</select>
<insert id="addStudent" parameterType="com.example.demo.entity.Student">
INSERT INTO students(name, email, address) VALUES(#{name}, #{email}, #{address})
</insert>
<update id="updateStudent" parameterType="com.example.demo.entity.Student">
UPDATE students SET name=#{name}, email=#{email}, address=#{address} WHERE id=#{id}
</update>
<delete id="deleteStudent">
DELETE FROM students WHERE id=#{id}
</delete>
</mapper>
- 实现Controller
创建一个名为StudentController
的Controller,代码如下:
java
@RestController
@RequestMapping("/api")
public class StudentController {
@Autowired
private StudentMapper studentMapper;
@GetMapping("/students")
public List<Student> getAllStudents() {
return studentMapper.getAllStudents();
}
@GetMapping("/students/{id}")
public Student getStudentById(@PathVariable int id) {
return studentMapper.getStudentById(id);
}
@PostMapping("/students")
public int addStudent(@RequestBody Student student) {
return studentMapper.addStudent(student);
}
@PutMapping("/students")
public int updateStudent(@RequestBody Student student) {
return studentMapper.updateStudent(student);
}
@DeleteMapping("/students/{id}")
public int deleteStudent(@PathVariable int id) {
return studentMapper.deleteStudent(id);
}
}
- 测试API
使用Postman或其他工具测试API,例如:
-
POST http://localhost:8080/api/students
请求体:{ "name": "张三", "email": "zhangsan@example.com", "address": "北京市海淀区" }
-
PUT http://localhost:8080/api/students
请求体:{ "id": 1, "name": "张三", "email": "zhangsan@example.com", "address": "北京市海淀区" }
完成以上步骤后,就可以使用Spring Boot和MyBatis实现一个简单的学生信息管理模块了。