1、Springboot使用mybatis

本文详细介绍了如何在Springboot项目中集成Mybatis,包括Maven依赖配置、YML文件设置、POJO实体类创建、Mapper接口与XML文件编写、Service层和服务实现以及Controller层的实现。通过一个简单的查询例子展示了数据的获取和打印,同时提供了测试方法来验证数据库连接是否成功。

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

Springboot使用mybatis

第一步:选择我们需要的maven(我们需要jdbc,web,mysql,和lombok)

第二步:配置yml(spring datasource(数据库)和mybatis)

其中也就是spring datasource下的username,password,url以及driver-class-name

spring:
  datasource:
    username: root
    password: 495910871a
    url: jdbc:mysql://localhost:3306/vuedemo?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
    driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:
  type-aliases-package: com.example.vue.pojo
  mapper-locations: classpath:mybatis/mapper/*.xml
server:
  port: 8081

第三步:就是去写我们的mvc的架构了

  1. 首先就是我们pojo类(根据我们的数据库写好我们的字段,注解@data代表get,set

@NoArgsConstructor代表无参构造,@AllArgsConstructor代表有参构造)

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Book {
    private Integer id;
    private String name;
    private String author;
    private String publish;
    private Integer page;
}
  1. 我们的mapper接口写好我们想要查的方法(结果集)上面需要我们的@Mapper和@Component这个注解交给我们spring容器管理

@Mapper
@Component
public interface BookMapper {
    List<Book> queryBookList();

}
  1. 就是写我们的.xml(里面就是我们的sql语句)

<?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 namespace="com.example.vue.mapper.BookMapper">
    <select id="queryBookList" resultType="Book">
        select * from book
    </select>
    <select id="queryBookById" resultType="Book">
        select * from book where id=#{id}
    </select>
</mapper>
  1. 注意我们的yml配置mybatis的一个设置

type-aliases-package:写的是我们的实体类的位置到pojo

mapper-locations:配置的就是我们发现我们写sql语句的xml位置。注意我们这里的位置classpath这里的位置其实就是在我们resources文件了。所以下面mybatis/mapper/*.xml前面不加/(若是加了/就代表这从最上面的vue这里开始了) 

  1. 写我们的service层(其中是一个接口,一个接口的实现类)

这个接口其实就是也是我们的BookMapper下的方法(上面没有任何参数)

public interface BookService {
    List<Book> queryBookList();

}

下面的实现类实现我们的接口需要注解@Service。然后将我们这个接口注入进来(我们去使用其中的方法嘛)

@Service
public class BookServiceImpl implements BookService{
    @Autowired
    private BookMapper bookMapper;
    @Override
    public List<Book> queryBookList() {
        List<Book> bookList = bookMapper.queryBookList();
        return bookList;
    }
}
  1. 最后就是我们controller层了(注入我们的service服务)类上是我们的@RestController

方法上是我们访问路径 @GetMapping("/book")

import java.util.List;

@RestController
public class BookController {
   @Autowired
   private BookService bookService;

    @GetMapping("/book")
    public List<Book> queryBookList(){
        List<Book> books = bookService.queryBookList();
        for (Book book:books){
            System.out.println(book);
        }
        return books;
    }
}

第四步:如何测试出我们连接的数据库是否连接成功(在测试里面)需要注入我们的DataSource然后打印下我们的dataSource.getCLass()以及dataSource.getConnection()

我们可以看其中的连接就是我们的con.mysql.cj.jdbc.ConnectionImpl

@SpringBootTest
class VueApplicationTests {
   @Autowired
   DataSource dataSource;


   @Test
   void contextLoads() throws SQLException {
      System.out.println(dataSource.getClass());
      System.out.println(dataSource.getConnection());
   }

}

测试:最后跑一下我们的url看是否能够拿到数据

程序展示:

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值