最简单易懂的springboot集成mybatis

使用springboot如何集成mybatis?其实很简单,四部曲,而这些步骤大部分都是通法。无论是集成mybatis,还是jsp,mvc甚至是redis数据库等等,都是同样的步骤,只不过细节有所不同。

首先我们要确定目录结构是一致的,否则配置的即使都是相同的文件,但它并不能成功读取也是徒劳,这里mapper里放的是接口,也有习惯用dao的,无伤大雅:

目录结构对了,下面进入正题:

1、pom文件加入依赖

这里要提一点,让一个maven工程成为springboot工程,其实就是加入了springboot工程的父类,如果建立的就是springboot工程,只是帮你完成了这些依赖的加入,并且springboot有一个父类工程里都整合好了一些常用的依赖。 这里阿里连接池的可以使用只需在后面yml文件中加入一点配置即可,后文会写到。

<modelVersion>4.0.0</modelVersion>
    <groupId>com.yj</groupId>
    <artifactId>springboot-mybatis</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot-mybatis</name>
    <description>Demo project for Spring Boot</description>
 <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.2.RELEASE</version>
        <relativePath /> <!-- lookup parent from repository -->
 </parent>   

 <properties>
        <java.version>1.8</java.version>
 </properties>

<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jdbc</artifactId>
		</dependency>
		<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.0.0</version>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
        
        <!--使用alibaba连接池需要依赖-->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid-spring-boot-starter</artifactId>
			<version>1.1.23</version>
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-pool2</artifactId>
		</dependency>	
</dependencies>

<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
</build>

2、yml文件和mybatis-config.xml的配置

server:
  port: 8080
spring:
  datasource:
    username: root
    password: yjhandsome
    url: jdbc:mysql://localhost:3308/webtest?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
    driver-class-name: com.mysql.cj.jdbc.Driver
    
#这里是使用alibaba的的连接池配置
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      max-active: 20
      min-idle: 10
      initial-size: 10

mybatis:
  type-aliases-package: com.yj.pojo
  config-location: classpath:/mybaits/mybatis-config.xml
# 这里是用注解方式sql语句,所以不用配置mapper.xml
#  mapper-locations: classpath:mybatis/mapper/*Mapper.xml 
  
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <typeAliases>
        <typeAlias alias="Integer" type="java.lang.Integer" />
        <typeAlias alias="Long" type="java.lang.Long" />
        <typeAlias alias="HashMap" type="java.util.HashMap" />
        <typeAlias alias="LinkedHashMap" type="java.util.LinkedHashMap" />
        <typeAlias alias="ArrayList" type="java.util.ArrayList" />
        <typeAlias alias="LinkedList" type="java.util.LinkedList" />
    </typeAliases>
</configuration>

3、配置Mapper接口,这里使用注解的方式加入sql语句,所以上一步yml配置文件里不需要mapper.xml。

@Mapper表示这个Mapper接口是我们需要找的,但是如果有很多接口,每个都要加上@Mapper,所以可以在第四步中增加一个通法,这里就不需要了

//@Mapper
public interface UserMapper {
	@Select("select * from user")
	List<User> queryUserPage();
	
	@Select("select * from user where id = #{id}")
	User queryUserById(int id);
	
}

4、启动类配置,配置@SpringBootApplication表示这是个启动类,配置@MapperScan("com.yj.mapper"),表示到这个包中寻找需要的Mapper接口。

@SpringBootApplication
@MapperScan("com.yj.mapper")
public class SpringbootMybatisApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringbootMybatisApplication.class, args);
	}
}

以上配置完了就大功告成了,在controller中写个方法,然后运行启动类,最后在页面直接请求方法即可。如下:

//@Controller
@RestController
@RequestMapping("/user")
public class UserController {
	
	@Autowired
	private UserService userService;
	
	@RequestMapping("/queryAll")\
    // @ResponseBody
	private List<User> queryAll() {
		List<User> queryUser = userService.queryUser();
		return queryUser;
	}

	@RequestMapping("/queryUserById/{shit}")
    //@ResponseBody
	private User queryUserById(@PathVariable("shit")int id) {
		User  u = userService.queryUserById(id);
		return u;
	}
	
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值