SpringBoot整合Mybatis

SpringBoot整合Mybatis

MyBatis 简介

是一个开源的持久层框架,它主要用于简化数据库操作,使开发人员能够更轻松地与数据库进行交互。MyBatis 的核心思想是将 SQL 语句从 Java 代码中分离出来,通过 XML 文件或注解的方式进行配置和映射。

以下是 MyBatis 的主要功能和优点:

  1. SQL 与 Java 代码的分离: MyBatis 允许将 SQL 语句与 Java 代码分离,将 SQL 语句配置在 XML 文件中或通过注解的方式直接写在 Java 代码中,使得 SQL 语句的维护更加灵活和方便。

  2. 参数化查询: MyBatis 支持参数化查询,可以安全地将用户输入的参数插入到 SQL 语句中,有效防止 SQL 注入攻击。

  3. 结果映射: MyBatis 提供了灵活的结果映射机制,可以将数据库查询结果映射为 Java 对象或者 Map 结构,开发人员可以通过配置来控制映射关系。

  4. 事务管理: MyBatis 支持事务管理,可以通过注解或者编程方式来管理事务,保证数据库操作的一致性和完整性。

  5. 插件机制: MyBatis 提供了插件机制,允许开发人员在 SQL 执行的不同阶段插入自定义的逻辑,例如日志记录、性能监控等。

  6. 轻量级: MyBatis 是一个轻量级的框架,学习曲线相对较低,容易上手。

  7. 与各种数据库兼容性良好: MyBatis 支持主流的关系型数据库,如 MySQL、Oracle、SQL Server 等,与不同数据库的集成和使用都很方便。

总的来说,MyBatis 是一个功能强大、灵活易用的持久层框架,适用于各种规模的项目开发,可以有效提高开发效率和代码质量。

Mybatis实现步骤

  1. 添加MyBatis依赖 : 在 pom.xml 文件(如果使用Maven)或 build.gradle 文件(如果使用Gradle)中添加MyBatis和MySQL数据库驱动的依赖项。例如,如果使用Maven,可以添加以下依赖:
xml 复制代码
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.2.0</version> <!-- 使用最新版本 -->
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.26</version> <!-- 使用最新版本 -->
</dependency>
  1. 配置数据源 : 在 application.propertiesapplication.yml 文件中配置数据源信息,包括数据库URL、用户名和密码。
yaml 复制代码
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/your_database_name
    username: your_username
    password: your_password
  1. 创建MyBatis Mapper接口: 创建一个接口来定义MyBatis的SQL映射操作。这些接口通常包含一些注解,用于指定SQL语句的映射关系。
java 复制代码
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

@Mapper
public interface UserMapper {

    @Select("SELECT * FROM users WHERE id = #{id}")
    User findById(Long id);
}
  1. 创建实体类: 创建一个Java类来映射数据库表中的数据。
java 复制代码
public class User {
    private Long id;
    private String username;
    private String email;
    // 省略getter和setter
}
  1. 配置MyBatis扫描路径 : 在Spring Boot的主配置类(通常是带有 @SpringBootApplication 注解的类)上添加 @MapperScan 注解,指定MyBatis的Mapper接口所在的包路径。
java 复制代码
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.example.mapper") // 指定Mapper接口所在的包路径
public class MyApplication {

    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}

具体实例

以上是文件结构首先我们学要在我们的application.yml文件他是配置我们数据库的配置

yml文件要严格按照格式写,冒号后面有空格

java 复制代码
package com.itheima.springbootmybatis.controller;

import com.itheima.springbootmybatis.pojo.User;
import com.itheima.springbootmybatis.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UserController {

    @Autowired
    private UserService userService;


    @RequestMapping("/findById")
    public User findById(Integer id){
        System.out.println("id:"+id);
      return userService.findById(id);
    }

}
java 复制代码
package com.itheima.springbootmybatis.mapper;

import com.itheima.springbootmybatis.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

@Mapper
public interface UserMapper {

    @Select("select * from user where id = #{id}")
    public User findById(Integer id);

}
java 复制代码
package com.itheima.springbootmybatis.service.impl;

import com.itheima.springbootmybatis.mapper.UserMapper;
import com.itheima.springbootmybatis.pojo.User;
import com.itheima.springbootmybatis.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    @Override
    public User findById(Integer id) {
        return userMapper.findById(id);
    }
}

总结

根据上述,springboot整合mybatis主要是现在yml文件中来配置数据库信息,再设置mapper层接口,里面要写上查询语句最重要的是里面要加上@Mapper注解以便springboot能找到然后在创建一个是Service接口里面内容要和Mapper层一样然后我们再在Service实体类中实现Service接口,重写方法再创建一个mapper接口成员对象,以便调用成员接口**(这里service接口和Mapper接口的函数要一样这样方便直接用Service的实现类调用)**最后是我们的访问

相关推荐
goTsHgo1 小时前
Spring Boot 自动装配原理详解
java·spring boot
炒空心菜菜2 小时前
SparkSQL 连接 MySQL 并添加新数据:实战指南
大数据·开发语言·数据库·后端·mysql·spark
唐僧洗头爱飘柔95273 小时前
【SSM-SSM整合】将Spring、SpringMVC、Mybatis三者进行整合;本文阐述了几个核心原理知识点,附带对应的源码以及描述解析
java·spring·mybatis·springmvc·动态代理·ioc容器·视图控制器
蜗牛沐雨4 小时前
Rust 中的 `PartialEq` 和 `Eq`:深入解析与应用
开发语言·后端·rust
Python私教4 小时前
Rust快速入门:从零到实战指南
开发语言·后端·rust
秋野酱5 小时前
基于javaweb的SpringBoot爱游旅行平台设计和实现(源码+文档+部署讲解)
java·spring boot·后端
小明.杨5 小时前
Django 中时区的理解
后端·python·django
有梦想的攻城狮5 小时前
spring中的@Async注解详解
java·后端·spring·异步·async注解
qq_12498707535 小时前
原生小程序+springboot+vue医院医患纠纷管理系统的设计与开发(程序+论文+讲解+安装+售后)
java·数据库·spring boot·后端·小程序·毕业设计
伊成6 小时前
一文详解Spring Boot如何配置日志
java·spring boot·单元测试