[Tutorial de integración MyBatis con Spring Boot]

Spring Boot es un nuevo marco proporcionado por el equipo de Pivotal, que está diseñado para simplificar el proceso inicial de construcción y desarrollo de nuevas aplicaciones Spring. El marco utiliza un enfoque específico para la configuración, por lo que los desarrolladores ya no necesitan definir la configuración repetitiva. De esta forma, Spring Boot aspira a ser líder en el floreciente campo del desarrollo rápido de aplicaciones.
MyBatis es un excelente marco de capa de persistencia que admite SQL personalizado, procedimientos almacenados y mapeo avanzado. MyBatis evita casi todo el código JDBC y la configuración manual de parámetros y la obtención de conjuntos de resultados. MyBatis puede usar XML simple o anotaciones para configurar y mapear información nativa, y mapear interfaces y Java POJO (Plain Ordinary Java Objects, objetos Java ordinarios) en registros en la base de datos.

El siguiente es un tutorial detallado sobre la integración de MyBatis con Spring Boot, que incluye ejemplos de código completos.

1. Crea un proyecto Spring Boot

Primero, necesitamos crear un proyecto Spring Boot. Abra el IDE (se recomienda IntelliJ IDEA), seleccione Nuevo proyecto, luego seleccione Spring Initializr, complete la información necesaria según sea necesario (como Grupo, Artefacto, Dependencias, etc.) y finalmente confirme la creación del proyecto.

2. Agrega las dependencias necesarias

Agrega las siguientes dependencias en el archivo pom.xml para integrar el framework MyBatis:

<dependencies>
    <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.0</version>
    </dependency>
 
    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <version>1.4.195</version>
        <scope>runtime</scope>  
    </dependency>
     
</dependencies>

Entre ellos, spring-boot-starter-web representa el paquete de dependencia inicial del desarrollo web de Spring Boot, mybatis-spring-boot-starter es el paquete de dependencia inicial para integrar Spring Boot proporcionado oficialmente por MyBatis, y h2 es una base de datos en memoria que se puede utilizar como nuestra base de datos para el entorno de prueba.

3. Crear clases de entidad e interfaces de mapeador

Cree un paquete llamado com.example.demo.domain en src/main/java, que almacena clases de entidad. Aquí hay una clase de entidad de usuario simple:

public class User {
    
    
    private Long id;
    private String username;
    private String password;
    // 省略setter和getter方法
}

A continuación, necesitamos definir una interfaz de mapeador para operar la clase de entidad de usuario. Cree un paquete llamado com.example.demo.mapper en src/main/java y luego cree una interfaz llamada UserMapper:

public interface UserMapper {
    
    
    User findByUsername(String username);
    void save(User user);
}

4. Cree un archivo de mapeo de Mapper

Cree un archivo llamado UserMapper.xml en src/main/resources/mapper para definir instrucciones SQL. A continuación se muestra un archivo UserMapper.xml simple:

<?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.demo.mapper.UserMapper">
 
    <resultMap id="BaseResultMap" type="com.example.demo.domain.User">
        <id column="id" property="id" jdbcType="BIGINT" />
        <result column="username" property="username" jdbcType="VARCHAR" />
        <result column="password" property="password" jdbcType="VARCHAR" />
    </resultMap>
 
    <select id="findByUsername" resultMap="BaseResultMap">
        SELECT * FROM users WHERE username = #{username}
    </select>
     
    <insert id="save" useGeneratedKeys="true" keyProperty="id">
        INSERT INTO users (username, password) 
        VALUES (#{username}, #{password})
    </insert>
 
</mapper>

5. Escribe el código de la capa de servicio

Cree una capa de servicio para implementar la lógica empresarial. Cree un paquete llamado com.example.demo.service en src/main/java y luego cree una interfaz llamada UserService:

public interface UserService {
    
    
    User findByUsername(String username);
    void save(User user);
}

A continuación, cree una clase UserServiceImpl que implemente la interfaz UserService:

@Service
public class UserServiceImpl implements UserService {
    
    
 
    @Autowired
    private UserMapper userMapper;
 
    @Override
    public User findByUsername(String username) {
    
    
        return userMapper.findByUsername(username);
    }
 
    @Override
    public void save(User user) {
    
    
        userMapper.save(user);
    }
 
}

6. Crea el código para la capa del controlador.

Cree un paquete llamado com.example.demo.controller en src/main/java, luego cree una clase llamada UserController:

@RestController
public class UserController {
    
    
 
    @Autowired
    private UserService userService;
 
    @RequestMapping(value = "/findUser")
    public User findUser(HttpServletRequest request) {
    
    
        String username = request.getParameter("username");
        return userService.findByUsername(username);
    }
 
    @RequestMapping(value = "/saveUser")
    public String saveUser(HttpServletRequest request) {
    
    
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        User user = new User();
        user.setUsername(username);
        user.setPassword(password);
        userService.save(user);
        return "SUCCESS";
    }
 
}

7. Modificar el archivo de configuración

Cree un archivo llamado application.properties en src/main/resources. Agregue las siguientes propiedades:

spring.datasource.driverClassName=org.h2.Driver
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.username=sa
spring.datasource.password=
 
mybatis.configuration.map-underscore-to-camel-case=true
mybatis.mapper-locations=classpath:mapper/*.xml

Este archivo se utiliza para configurar algunos parámetros y poner el archivo de configuración de mapeo de MyBatis en la carpeta del mapeador.

Hasta ahora hemos completado todos los pasos de Spring Boot integrando el framework MyBatis.

Finalmente, adjunta el código completo:

código completo

Usuario.java:

public class User {
    
    
    private Long id;
    private String username;
    private String password;
    // 省略setter和getter方法
}

UserMapper.java:

public interface UserMapper {
    
    
    User findByUsername(String username);
    void save(User user);
}

UserMapper.xml:

<?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.demo.mapper.UserMapper">
 
    <resultMap id="BaseResultMap" type="com.example.demo.domain.User">
        <id column="id" property="id" jdbcType="BIGINT" />
        <result column="username" property="username" jdbcType="VARCHAR" />
        <result column="password" property="password" jdbcType="VARCHAR" />
    </resultMap>
 
    <select id="findByUsername" resultMap="BaseResultMap">
        SELECT * FROM users WHERE username = #{username}
    </select>
     
    <insert id="save" useGeneratedKeys="true" keyProperty="id">
        INSERT INTO users (username, password) 
        VALUES (#{username}, #{password})
    </insert>
 
</mapper>

UserServiceImpl.java:

@Service
public class UserServiceImpl implements UserService {
    
    
 
    @Autowired
    private UserMapper userMapper;
 
    @Override
    public User findByUsername(String username) {
    
    
        return userMapper.findByUsername(username);
    }
 
    @Override
    public void save(User user) {
    
    
        userMapper.save(user);
    }
 
}

Controlador de usuario.java:

@RestController
public class UserController {
    
    
 
    @Autowired
    private UserService userService;
 
    @RequestMapping(value = "/findUser")
    public User findUser(HttpServletRequest request) {
    
    
        String username = request.getParameter("username");
        return userService.findByUsername(username);
    }
 
    @RequestMapping(value = "/saveUser")
    public String saveUser(HttpServletRequest request) {
    
    
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        User user = new User();
        user.setUsername(username);
        user.setPassword(password);
        userService.save(user);
        return "SUCCESS";
    }
 
}

aplicaciones.propiedades:

spring.datasource.driverClassName=org.h2.Driver
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.username=root
spring.datasource.password=123456
 
mybatis.configuration.map-underscore-to-camel-case=true
mybatis.mapper-locations=classpath:mapper/*.xml

¡Espero que este tutorial pueda ayudarte!

Supongo que te gusta

Origin blog.csdn.net/qq_43884946/article/details/131157535
Recomendado
Clasificación