SpringBoot整合mybatis
1.引入依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.dyit.springboot</groupId>
<artifactId>springboot-upgrade</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.lombok.version>1.18.22</project.lombok.version>
<project.mysql.version>8.0.28</project.mysql.version>
<project.druid.version>1.2.8</project.druid.version>
<project.mybatis.version>2.2.2</project.mybatis.version>
<project.lombok.version>1.18.22</project.lombok.version>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.10</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-undertow</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${project.lombok.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${project.mysql.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${project.druid.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${project.mybatis.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${project.junit.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2.配置mybatis
server:
port: 8991
servlet:
context-path: /ssm
spring:
datasource:
druid:
username: root
password: 123
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/mybatis_db?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
mybatis:
type-aliases-package: com.dyit.springboot.entity
mapper-locations: classpath:mapper/*.mapper.xml
logging:
level:
com.dyit.springboot: debug
3.实体类
package com.dyit.springboot.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.ibatis.type.Alias;
@Alias("Publisher")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Publisher {
private Integer id;
private String name;
private String loc;
}
4.mapper接口
package com.dyit.springboot.mapper;
import com.dyit.springboot.entity.Publisher;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface IPublisherMapper {
List<Publisher> findAll();
}
5.mapper.xml
<mapper namespace="com.dyit.springboot.mapper.IPublisherMapper"><!-- 接口的位置 -->
<resultMap type="Publisher" id="PublisherMap">
<id property="id" column="publisher_id"/>
<result property="name" column="publisher_name"/>
<result property="loc" column="publisher_loc"/>
</resultMap>
<select id="findAll" resultMap="PublisherMap">
SELECT * FROM publisher_tab
</select>
</mapper>
补充生成mapper.xml的插件
6.service
@Service
@Transactional
public class PublisherServiceImpl implements IPublisherService {
@Autowired
private IPublisherMapper mapper;
@Override
public List<Publisher> findAll() {
return mapper.findAll();
}
}
7.单元测试
springboot的测试模块+ junit测试
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
@Slf4j
public class PublisherServiceImplTest {
@Autowired
private IPublisherService ips;
@Test
public void findAll() {
List<Publisher> list =ips.findAll();
log.debug("测试数据===>" + list);
}
}
8.Controller
package com.dyit.springboot.controller;
import com.dyit.springboot.dto.HttpResp;
import com.dyit.springboot.entity.Publisher;
import com.dyit.springboot.service.IPublisherService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("/api/publisher")
public class PublisherController {
@Autowired
private IPublisherService ips;
@GetMapping("/findAll")
public HttpResp findAll(){
List<Publisher> list = ips.findAll();
return new HttpResp(20001,"查询所有出版社成功",list);
}
}