Uso común de spring boot + mybatis

1. Descargue el proyecto predeterminado, inicialice el proyecto de primavera y agregue paquetes dependientes, como se muestra a continuación:

2. Agregue application.properties del archivo de asignación y configuración de origen de datos jdbc:

spring.application.name=mydemo
logging.path=./logs
spring.datasource.url=jdbc:mysql://localhost/jpa?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
server.port=8801
mybatis.type-aliases-package=com.mybatis.springBoot.pojo
mybatis.mapper-locations=classpath:mapper/*.xml

3. Crea un nuevo objeto pojo

 Se requiere la configuración application.properties para escanear el paquete de declaración de alias mybatis.type-aliases-package = com.mybatis.springBoot.pojo , de lo contrario @Alias ​​("usuario") no tendrá efecto

package com.mybatis.springBoot.pojo;

import org.apache.ibatis.type.Alias;

@Alias("user")
public class User {
    private int id;
    private String userName;
    private int sex;
    private int age;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public int getSex() {
        return sex;
    }
    public void setSex(int sex) {
        this.sex = sex;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}

4. Nueva interfaz de asignación de mapas

package com.mybatis.springBoot.mapper;

import com.mybatis.springBoot.pojo.User;
import org.apache.ibatis.annotations.Mapper;

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

5. Cree un nuevo directorio de asignador en el directorio de recursos, cree un nuevo archivo xml UserMapper.xml, el contenido es el siguiente

Es necesario declarar el archivo escaneado, de lo contrario no tendrá efecto mybatis.mapper-locations = classpath: mapper / *. 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.mybatis.springBoot.mapper.UserMapper">
    <resultMap id="userMap" type="user">
        <result column="id" property="id"/>
        <result column="username" property="userName"/>
        <result column="age" property="age"/>
        <result column="sex" property="sex"/>
    </resultMap>
    <insert id="insertUser" parameterType="user" useGeneratedKeys="true" keyProperty="id">
        insert into user(username,sex,age) value(#{userName},#{sex},#{age})
    </insert>
</mapper>

6. Clases de prueba de redacción

@Autowired
private UserMapper userMapper;
@Test
public void insertUser() {
    User user = new User();
    user.setAge(100);
    user.setSex(3);
    user.setUserName("机器人");
    userMapper.insertUser(user);
    System.out.println(user.getId());
}

7. modo de tres capas mvc

   7.1 Nueva interfaz de servicio

package com.mybatis.springBoot.service;

import com.mybatis.springBoot.pojo.User;

public interface IUserService {
    int insertUser(User user);
}

   7.2 Nueva clase de implementación

package com.mybatis.springBoot.service.impl;

import com.mybatis.springBoot.mapper.UserMapper;
import com.mybatis.springBoot.pojo.User;
import com.mybatis.springBoot.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

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

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

   7.3 Nueva llamada de controlador

package com.mybatis.springBoot.controller;

import com.mybatis.springBoot.pojo.User;
import com.mybatis.springBoot.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;

@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private IUserService iUserService;

    @RequestMapping("/insertUser")
    int insertUser(User user) {
        return iUserService.insertUser(user);
    }
}

   7.4 Nueva clase de prueba

package com.mybatis.springBoot;

import com.mybatis.springBoot.mapper.UserMapper;
import com.mybatis.springBoot.pojo.User;
import org.json.JSONObject;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MvcResult;
import org.springframework.test.web.servlet.ResultActions;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.context.WebApplicationContext;

@RunWith(SpringRunner.class)
@WebAppConfiguration
@SpringBootTest
public class ApplicationTests {
    @Autowired
    private WebApplicationContext webApplicationContext;

    private MockMvc mockMvc;
    @Autowired
    private UserMapper userMapper;

    @Before
    public void setMockMvc() {
        mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
    }

    @Test
    public void testUser() {
        try {
            ResultActions resultActions =
                    mockMvc.perform(MockMvcRequestBuilders.post("/user/insertUser")
                            .param("sex", "12")
                            .param("userName", "张三"));
            MvcResult mvcResult = resultActions.andReturn();
            byte[] resultByte = mvcResult.getResponse().getContentAsByteArray();
            System.out.println(new String(resultByte));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    @Test
    public void insertUser() {
        User user = new User();
        user.setAge(100);
        user.setSex(3);
        user.setUserName("机器人");
        userMapper.insertUser(user);
        System.out.println(user.getId());
    }

}

 

Supongo que te gusta

Origin blog.csdn.net/soft_z1302/article/details/85114631
Recomendado
Clasificación