【Spring Boot】Spring Boot结合MyBatis简单实现学生信息管理模块

实战:实现学生信息管理模块

  1. 环境准备
  • JDK
  • Spring Boot
  • MyBatis
  1. 创建Spring Boot项目
    使用Spring Initializr创建一个新的Spring Boot项目,并添加以下依赖:
  • Spring Web
  • MyBatis Framework
  • MySQL Driver
  1. 数据库设计
    在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;
  1. 配置数据源和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
  1. 定义实体类
    创建一个名为Student的实体类,代码如下:
java 复制代码
public class Student {
    private int id;
    private String name;
    private String email;
    private String address;

    // getter和setter方法省略
}
  1. 定义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);
}
  1. 定义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>
  1. 实现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);
    }
}
  1. 测试API
    使用Postman或其他工具测试API,例如:

完成以上步骤后,就可以使用Spring Boot和MyBatis实现一个简单的学生信息管理模块了。

相关推荐
_Evan_Yao5 小时前
Redis 缓存穿透、击穿、雪崩,一次讲清!
java·spring·mybatis
王中阳Go6 小时前
两个入口答案不一致先别调模型:6 行入口口径对账表(附脚本)
人工智能·后端·python·大语言模型·1024程序员节
码事漫谈7 小时前
消除AI幻觉,普通人能做的五件事
后端
paopaokaka_luck9 小时前
宠物门店经营管理系统(销售与库存联动、进货自动记账、 退换与退款关联、员工个人业绩、ECharts 经营分析、滞销识别与客户分层、宠物档案年龄计算)
前端·javascript·spring boot·mysql·echarts·mybatis·1024程序员节
金銀銅鐵9 小时前
[Java] 用 GUI 展示 EnumSet 增减元素时的内部变化(下)
java·后端·ai编程
Mk5987811 小时前
给 Agent 装上对话框 —— AgentScope-Java 接入 Spring Boot 与 SSE 流式实战
后端
付威202311 小时前
从 Loop 到 Runtime:rpi Agent Loop 与 Cordis 的边界、取舍与组合
后端
IT_陈寒11 小时前
Redis的LRU淘汰策略坑了我一整天
前端·人工智能·后端
paopaokaka_luck11 小时前
心理咨询管理系统(WebSocket实时沟通、基于用户的协同过滤、 ECharts多维分析、 预约业务流程、预约校验与定时处理)
java·vue.js·spring boot·mysql·spring·echarts·1024程序员节
2301_322414280411 小时前
springboot农产品交易平台的设计与实现08055-计算机毕设 原创(免费领源码+部署教程+开发环境)
java·spring boot·redis·mysql·tomcat·maven·mybatis