0
点赞
收藏
分享

微信扫一扫

12-SpringBoot整合mybatis

12-SpringBoot整合mybatis

SpringBoot整合mybatis

实现步骤

①搭建SpringBoot工程

②引入mybatis起步依赖,添加mysql驱动

③编写DataSource和MyBatis相关配置

④定义表和实体类

⑤编写dao和mapper文件/纯注解开发

实现案例

1. 搭建SpringBoot工程

创建一个maven的空项目:


12-SpringBoot整合mybatis_spring

2. 引入mybatis起步依赖,添加mysql驱动

配置 pom.xml 设置依赖:

<?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>org.example</groupId>
<artifactId>springboot-mybatis</artifactId>
<version>1.0-SNAPSHOT</version>

<!--springboot工程需要继承的父工程-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.8.RELEASE</version>
</parent>

<dependencies>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.2</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>
</dependencies>


</project>

3. 定义数据库表

create database springboot charset=utf8;

CREATE TABLE `t_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(100) DEFAULT NULL,
`password` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`)
);

-- 插入数据
insert into t_user VALUES(null, "李白", "123456");
insert into t_user VALUES(null, "任我肥", "123456");
insert into t_user VALUES(null, "刘德肉", "123456");

-- 查询数据
select * from t_user;

4.编写SpringBoot 启动引导类


12-SpringBoot整合mybatis_数据库_02

package com.lijw.springbootmybatis;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringbootMybatisApplication {

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

}

5. 编写实体类


12-SpringBoot整合mybatis_spring_03

package com.lijw.springbootmybatis.domain;

public class User {
private int id;
private String username;
private String password;

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 String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}

5. 编写数据库连接配置以及mybatis配置


12-SpringBoot整合mybatis_mysql_04

application.yml

# datasource
spring:
datasource:
url: jdbc:mysql:///springboot?serverTimezone=UTC
username: root
password: Lijw**************
driver-class-name: com.mysql.cj.jdbc.Driver


# mybatis
mybatis:
mapper-locations: classpath:mapper/*Mapper.xml # mapper映射文件路径
type-aliases-package: com.lijw.springbootmybatis.domain

# config-location: # 指定mybatis的核心配置文件

mybatis的部分用于XML的映射文件设置,不过也一起配置上,不然会有警告信息。

mybatis.config-location 用于配置 mybatis 的核心配置文件,目前没用到。

6. 纯注解开发,编写UserMapper


12-SpringBoot整合mybatis_数据库_05

package com.lijw.springbootmybatis.mapper;


import com.lijw.springbootmybatis.domain.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;

import java.util.List;

@Mapper
@Repository
public interface UserMapper {

@Select("select * from t_user")
public List<User> findAll();
}

7.编写测试方法类,验证全注解的查询


12-SpringBoot整合mybatis_mybatis_06

package com.lijw.springbootmybatis.mapper;

import com.lijw.springbootmybatis.SpringbootMybatisApplication;
import com.lijw.springbootmybatis.domain.User;
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.test.context.junit4.SpringRunner;

import java.util.List;


@RunWith(SpringRunner.class)
@SpringBootTest(classes = SpringbootMybatisApplication.class)
public class UserMapperTest {

@Autowired
UserMapper userMapper;

@Test
public void findAll() {
List<User> all = userMapper.findAll();
System.out.println(all);
}
}

执行查询测试如下:


12-SpringBoot整合mybatis_数据库_07

8.XML数据查询开发

8.1 编写dao UserXmlMapper


12-SpringBoot整合mybatis_spring_08

package com.lijw.springbootmybatis.mapper;


import com.lijw.springbootmybatis.domain.User;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;

@Mapper
@Repository
public interface UserXmlMapper {

public List<User> findAll();
}

8.2 编写 mapper.xml


12-SpringBoot整合mybatis_java_09

<?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.lijw.springbootmybatis.mapper.UserXmlMapper">
<select id="findAll" resultType="user">
select * from t_user
</select>
</mapper>

9.编写测试代码

12-SpringBoot整合mybatis_mybatis_10

package com.lijw.springbootmybatis.mapper;

import com.lijw.springbootmybatis.SpringbootMybatisApplication;
import com.lijw.springbootmybatis.domain.User;
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.test.context.junit4.SpringRunner;

import java.util.List;


@RunWith(SpringRunner.class)
@SpringBootTest(classes = SpringbootMybatisApplication.class)
public class UserMapperTest {

@Autowired
UserMapper userMapper;

@Autowired
UserXmlMapper userXmlMapper;

@Test
public void findAll() {
List<User> all = userMapper.findAll();
System.out.println(all);
}

@Test
public void findAll2() {
List<User> all = userXmlMapper.findAll();
System.out.println(all);
}
}



举报

相关推荐

0 条评论