1. Descargue el proyecto predeterminado, inicialice el proyecto de primavera y agregue paquetes dependientes, como se muestra a continuación:![](https://img-blog.csdnimg.cn/20181220110936531.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NvZnRfejEzMDI=,size_16,color_FFFFFF,t_70)
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());
}
}
|