SpringBoot整合Mybatis的增删查改(详细教程)

本文介绍了如何在SpringBoot项目中整合Mybatis进行增删查改操作。首先创建了对应的包结构,包括domain、mapper、service和controller。接着在mysql数据库中创建了school库和student表。然后编写了实体类、mapper接口和XML配置文件、业务层和服务层的代码。最后展示了前端页面和操作效果的资源链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SpringBoot整合Mybatis(mapper代理)的增删查改

首先想要实现查询基本信息这个功能,需要先把环境配置好,这里就不对环境的配置进行阐述了,直接开始代码的部分。先说一下我的配置环境,我使用的是:
1.eclipse java-ee
2.jdk是1.8版本
3.mysql8.0.16

(1)创建项目的步骤省略,首先是在项目下创建相应的包:

1.domain(实体类包)
2.mapper(持久层包)
3.service(业务层包)
4.controller(控制层包)

5.mapper文件夹,因为使用的是mapper代理的方式
6.在/resources的路径下创建数据源文件:application.yml

在这里插入图片描述

(2)创建mysql数据库,并连接,为了方便演示,这里只创建一个表。

1.数据库的名字是:school;表:student。字段如下:
在这里插入图片描述
2.连接数据库:在刚刚创建的数据源文件:application.yml中输入下面代码。

server:
  port: 8080

spring:
  datasource:
    name:
    url: jdbc:mysql://localhost:3306/school?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=UTC
    username: root
    password: 123456

mybatis:
  mapper-locations: classpath:mapper/*.xml

(3)开始编写代码。

1.实体类部分:在domain的包下创建“StudentDomain.java”,代码如下:

package com.fsj.domain;

public class StudentDomain {
   
   

	private int sno;
	private String sname;
	private String sex;
	private String sclass;
	public int getSno() {
   
   
		return sno;
	}
	public void setSno(int sno) {
   
   
		this.sno = sno;
	}
	public String getSname() {
   
   
		return sname;
	}
	public void setSname(String sname) {
   
   
		this.sname = sname;
	}
	public String getSex() {
   
   
		return sex;
	}
	public void setSex(String sex) {
   
   
		this.sex = sex;
	}
	public String getSclass() {
   
   
		return sclass;
	}
	public void setSclass(String sclass) {
   
   
		this.sclass = sclass;
	}
	@Override
	public String toString() {
   
   
		return "StudentDomain [sno=" + sno + ", sname=" + sname + ", sex=" + sex + ", sclass=" + sclass + "]";
	}
	
	
	
}

2.持久层部分:在mapper的包下创建一个接口:“StudentMapper.java” ,代码如下:

package com.fsj.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;

import com.fsj.domain.StudentDomain;


// **这是mapper注解,不要忘了**
@Mapper
public interface StudentMapper {
   
   
    
	     //**定义查询所有学生信息的方法**
	
		List<StudentDomain> getAll();
       //根据sno删除用户
		 void delete(int sno);
		 
		 
		//更新学生信息
		 void update(StudentDomain studentDomain);
		 
		 
		//添加学生信息
		 void newstudent(StudentDomain studentDomain);
}

3.在mapper文件夹下面创建一个配置文件:“StudentMapper.xml” ,与持久层(mapper)建立映射关系。代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 
<!-- 这里填写对应的mapper包所在的路径,建立映射关系 -->
<mapper namespace="com.fsj.mapper.StudentMapper">
  
   <!-- parameterType是输入参数的类型,resultType是输出结果的类型,根据不同的需要使用不同的类型 -->
   
   
    <!-- 查询所有学生信息 其中id填的是StudentMapper.java的方法名,查询只有输出,没有输入,输出的是一个实体-->
    <select id="getAll" resultType="com.fsj.domain.StudentDomain">  
        select * from student
    </select>
  
  <!-- 删除学生信息   -->
     <delete id="delete" parameterType="com.fsj.domain.StudentDomain">
        DELETE FROM student WHERE sno = #{
   
   sno}
    </delete>
    
    
    <!--更新学生信息-->
    <update id="update" parameterType="com.fsj.domain.StudentDomain">
        UPDATE
        student
        SET sno = #{
   
   sno},sname = #{
   
   sname},sex = #{
   
   sex},sclass = #{
   
   sclass}
        WHERE sno = #{
   
   sno}
    </update>
    
    <!-- 添加学生信息   -->
    <insert id="newstudent" parameterType="com.fsj.domain.StudentDomain">
        INSERT INTO
        student(sno,sname,sex,sclass)
        VALUES
        (#{
   
   sno},#{
   
   sname},#{
   
   sex},#{
   
   sclass})
    </insert>
    

</mapper>

4.业务层部分:在service的包下创建:“StudentService.java” ,代码如下:

package com.fsj.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.fsj.domain.StudentDomain;
import com.fsj.mapper.StudentMapper;

@Service
public class StudentService {
   
   

	@Autowired
	StudentMapper studentMapper;
	
	//查询所有的学生信息
	public List<StudentDomain> getAll() {
   
   
		return studentMapper.getAll();
	}
	
	//删除学生信息
		public void  delete(int sno){
   
   
			studentMapper.delete(sno);
	    }
		
	//更新学生信息
		public void update(StudentDomain studentDomain){
   
   
			studentMapper.update(studentDomain);
	    }
		
		//添加学生信息
		public void newstudent(StudentDomain studentDomain){
   
   
			studentMapper.newstudent(studentDomain);
	    }	
		
}

5.控制层部分:在controller的包下创建:“StudentController.java” ,代码如下:

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.fsj.domain.StudentDomain;
import com.fsj.service.StudentService;

@RestController
@RequestMapping("/student")
public class StudentController {
   
   
	
	@Autowired
	StudentService studentService;
	
	//查询所有学生信息
	@RequestMapping("/getAll")
	public List<StudentDomain> getAll(){
   
   
        // 顾名思义 实体和数据 同时返回页面和数据
		List<StudentDomain> studentDomain = studentService.getAll();
        return studentDomain;
    }

//删除学生信息
	@RequestMapping(value = "/delete/{sno}" ,method = RequestMethod.DELETE)
	public void de
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值