SpringBoot integra Mybatis para realizar adiciones, eliminaciones, modificaciones y consultas básicas

¿Qué es Mybatis?

Mybatis es un excelente marco de capa de persistencia basado en Java que encapsula jdbc en su interior, de modo que los desarrolladores solo necesitan prestar atención a la declaración SQL en sí, sin gastar energía en cargar controladores, crear conexiones, crear declaraciones y otros procesos complicados.

SpringBoot integra Mybatis

Cree un proyecto SpringBoot e introduzca dependencias de Maven

		<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <!-- mybatis依赖-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.4</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

Cree una carpeta de mapeador en el directorio de recursos

Crear bases de datos y tablas de datos y las clases de entidad correspondientes.

package com.mybatis.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

// 引入lombok,省略getter和setter
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    
    
    private Integer id;
    private String username;
    private String email;
}

Mejorar el archivo de configuración application.yml

server.port:
  8080
spring:
  datasource:
    username: root
    password: 123456
    ## mysql8版本需要在以下url中配置时区,即serverTimezone
    url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=Asia/Shanghai&characterEncoding=utf-8
    driver-class-name: com.mysql.cj.jdbc.Driver
    ## 使用默认的Hikari数据源
    type: com.zaxxer.hikari.HikariDataSource

mybatis:
  ## 映射的实体类所在位置
  type-aliases-package: com.mybatis.entity
  ## mapper文件存放路径
  mapperLocations: classpath:mapper/*.xml

Cree un nuevo archivo UserMapper.xml

Implementar operaciones básicas de adición, eliminación, modificación y consulta en el archivo del mapeador.

Nota : No agregue un punto y coma al final de la declaración SQL en dichos archivos; de lo contrario, mybatis puede cometer errores al unir declaraciones SQL.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mybatis.mapper.UserMapper"> <!-- 命名空间为DAO文件存放位置-->
		<!-- 添加用户-->
    <insert id="addUser">
        insert into t_user (id, username, email)
        values (#{id}, #{username}, #{email})
    </insert>
		<!-- 删除用户-->
    <delete id="delUser">
        delete from t_user where id = #{id}
    </delete>
		<!-- 更新用户-->
    <update id="updateUser">
        update t_user
        set username = #{username}, email = #{email}
        where id = #{id}
    </update>
		<!-- 根据ID查找用户-->
    <select id="findById">
        select * from t_user where id = #{id}
    </select>
		<!-- 获取所有用户-->
    <select id="findAllUsers">
        select * from t_user
    </select>

</mapper>

Defina DAO, el nombre del método debe ser el mismo que en Mapper

package com.mybatis.mapper;

import com.mybatis.entity.User;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface UserMapper {
    
    
    int addUser(User user);

    int updateUser(User user);

    int delUser(Integer id);

    User findById(Integer id);

    List<User> findAllUsers();
}

definir interfaz

package com.mybatis.service;

import com.mybatis.entity.User;

import java.util.List;

public interface UserService {
    
    
    int addUser(User user);

    int updateUser(User user);

    int delUser(Integer id);

    User findById(Integer id);

    List<User> findAllUsers();
}

Definir la clase de implementación de la interfaz.

package com.mybatis.service.impl;

import com.mybatis.entity.User;
import com.mybatis.mapper.UserMapper;
import com.mybatis.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserServiceImpl implements UserService {
    
    
    @Autowired
    private UserMapper userMapper;

    @Override
    public int addUser(User user) {
    
    
        return userMapper.addUser(user);
    }

    @Override
    public int updateUser(User user) {
    
    
        return userMapper.updateUser(user);
    }

    @Override
    public int delUser(Integer id) {
    
    
        return userMapper.delUser(id);
    }

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

    @Override
    public List<User> findAllUsers() {
    
    
        return userMapper.findAllUsers();
    }
}

Estructura de directorios

inserte la descripción de la imagen aquí

prueba

package com.mybatis;

import com.mybatis.entity.User;
import com.mybatis.service.UserService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class MybatisApplicationTests {
    
    
    @Autowired
    private UserService userService;

    @Test
    void contextLoads() {
    
    
        User user = new User(1, "小明", "[email protected]");
        userService.addUser(user);
    }
}


La prueba es exitosa y los datos se han mostrado en la base de datos.

Supongo que te gusta

Origin blog.csdn.net/wzc3614/article/details/127504117
Recomendado
Clasificación