SpringBoot整合Mybatis并实现数据库增删改查

写在前面

Mybatis一个基于Java的持久层框架,它通过XML或注解的方式,将SQL语句和Java方法进行映射,使得开发者可以轻松地进行数据库操作。下面我会演示mybatis的配置与使用并实现数据库的增删改查。

1.准备测试数据

使用mybatis实现对数据库的增删改查之前,我们先创建一个数据库,,然后在数据库中新建一张表。我准备的数据(person表)如下(SQL Server):
在这里插入图片描述

2.创建SpringBoot项目

使用IDEA新建一个springboot项目:
在这里插入图片描述
在创建项目时导入依赖,也可以在项目创建后手动导入:
在这里插入图片描述

3.导入mybatis依赖

如果在创建项目时已导入依赖可以跳过这一步。
pom.xml文件中导入mybatis依赖:

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter-test</artifactId>
    <version>3.0.3</version>
    <scope>test</scope>
</dependency>

导入sql server的依赖:

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <scope>runtime</scope>
</dependency>

如果想要使用其他版本的mybatis依赖,请前往https://mvnrepository.com/

4.如何使用mybatis

4.1 配置mybatis

4.1.1 配置数据源

application.properties中配置数据库:

spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.datasource.url=jdbc:sqlserver://localhost:1433;database=数据库名称
spring.datasource.username=sa
spring.security.user.password=123456

也可以在application.yamlapplication.yml文件中配置数据库:

spring:
  datasource:
    driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
    url: jdbc:sqlserver://localhost:1433;database=数据库名称
    username: sa
    password: 123456

4.1.2 相关配置

#配置映射文件路径(使用xml配置文件映射SQL语句时设置),此处的mapper是自己在resources目录下创建的子目录
mybatis.mapper-locations=classpath:/mapper/*.xml

4,2 使用mybatis

4.2.1 创建实体类(entity)

在启动类的所在目录下创建实体类:
在这里插入图片描述
Person类中:

@Data
public class Person {
    //Person类中的字段要与数据库对应
    private int id;
    private String name;
    private int age;
    private String gender;
}

4.2.2 创建mapper

在启动类的所在目录下创建mapper:
在这里插入图片描述
创建PersonMapper对应的xml文件,使用MybatisX插件创建xml文件,这个插件可以在idea的plugins中下载。
PersonMapper文件中将光标放在接口名上按下alt + enter后选择[MybatisX] Generate mapper of xml后如下图选择路径:
在这里插入图片描述
PersonMapper.xml中情况:
在这里插入图片描述

4.2.3 定义查询方法并编写SQL语句

PersonMapper中定义查询所有Person信息的方法:
在这里插入图片描述

① xml形式

在方法名处按下alt + enter后选择Generate statement,在xml文件中自动生成对应的映射语句:
在这里插入图片描述
<select>标签中编写SQL语句:

select * from person
② 注解形式

直接在方法的上面使用@Select注解:

@Select("select * from person")

4.2.4 创建controller并调用mapper

在启动类的所在目录下创建controller:
在这里插入图片描述
PersonController中:

@RestController
public class PersonController {
    @Autowired
    PersonMapper personMapper;
    
    @GetMapping("/allPerson")
    public List<Person> getAllPerson() {
        return personMapper.getAllPerson();
    }
}

4.2.5 在启动类中添加@MapperScan注解

在启动类添加@MapperScan注解可以使容器扫描到mapper:

@MapperScan(basePackages = "com.example.demo.mapper")

4.2.5 启动项目并使用controller

结果如下:
在这里插入图片描述

5.实现数据库的增删改查

5.1 查询

上面演示了获取全部person数据,这里举例通过id查询数据,我们可以模仿这个例子实现其他方式的查询。
定义查询方法并编写SQL语句

//使用@Param("id")接收前端传来的参数
@Select("select * from person where id = #{id}")
Person getPersonById(@Param("id") int id);

调用:

@GetMapping("/byId/{id}")
    public Person getPersonById(@PathVariable("id") int id) {
        return personMapper.getPersonById(id);
    }

结果:
在这里插入图片描述

5.2 新增

定义新增方法并编写SQL语句:

//由于id设置了自增,所以这里不需要传入id
@Insert("insert into person values (#{name},#{age},#{gender})")
void addPerson(Person person);

调用:

@GetMapping("/add")
    public void addPerson(@RequestParam("name") String name, 
                          @RequestParam("age") int age,
                          @RequestParam("gender") String gender) {
        Person person = new Person();
        person.setName(name);
        person.setAge(age);
        person.setGender(gender);
        personMapper.addPerson(person);
    }

使用:
在这里插入图片描述
查询所有person:
在这里插入图片描述

5.3 修改

这里我通过id修改person的信息,我们可以模仿这个例子通过名字来修改person信息,也可以修改person一个或多个字段信息。
定义修改方法并编写SQL语句:

//通过id修改person信息
@Update("update person set name = #{name}, age = #{age}, gender = #{gender} where id = #{id}")
void updatePerson(Person person);

调用:

@GetMapping("/update")
    void updatePerson(@RequestParam("id") int id,
                      @RequestParam("name") String name,
                      @RequestParam("age") int age,
                      @RequestParam("gender") String gender) {
        Person person = new Person();
        person.setId(id);
        person.setName(name);
        person.setAge(age);
        person.setGender(gender);
        personMapper.updatePerson(person);
    } 

使用:
在这里插入图片描述
修改前:
在这里插入图片描述
修改后:
在这里插入图片描述

5.4 删除

这里我通过姓名删除person信息,我们也可以通过其他字段删除person信息
定义删除方法并编写SQL语句:

@Delete("delete from person where name = #{name}")
void deletePersonByName(@Param("name") String name);

调用:

@GetMapping("/del")
    void deletePerson(@RequestParam("name") String name) {
        personMapper.deletePersonByName(name);
    }

使用:
在这里插入图片描述

删除前:
在这里插入图片描述
删除后:
在这里插入图片描述

写在后面

通过springboot整合mybatis,我们不仅可以进行简单的增删改查操作,还可以进行一些更高级的信息查询操作。通过接收前端传回来的信息对数据库进行相应的操作,可以让我们查询数据库更加方便快捷。

  • 24
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot 是一个快速开发 Java 应用程序的框架,而 MyBatis 是一个优秀的持久层框架。将它们整合在一起可以方便地进行数据库操作,下面以整合实现表的增删改查为例,给出源码下载。 首先,我们需要创建一个 Spring Boot 项目并添加 MyBatis 依赖。在 pom.xml 文件中添加以下依赖项: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.4</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> ``` 然后在 application.properties 配置文件中添加数据库连接信息: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/your_database_name spring.datasource.username=your_username spring.datasource.password=your_password spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver ``` 接下来创建一个实体类,例如 User: ```java public class User { private Long id; private String name; // 省略 getter 和 setter 方法 } ``` 再创建一个 Mapper 接口和对应的映射文件,例如 UserMapper 和 UserMapper.xml,在映射文件中编写对应的 SQL 语句。 最后,在 Controller 中注入 UserMapper,并编写增删改查的方法,例如: ```java @Autowired private UserMapper userMapper; @GetMapping("/users") public List<User> getAllUsers() { return userMapper.getAllUsers(); } @PostMapping("/users") public void addUser(@RequestBody User user) { userMapper.addUser(user); } // 省略删除和修改的方法 ``` 以上就是整合 Spring BootMyBatis 实现表的增删改查的方法。大家可以根据需求自行修改和完善。可以通过以下链接下载整合的源码:[Spring Boot 整合 MyBatis 源码](example.com)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值