MyBatis 学习笔记(8) 在Springboot 项目中集成 mybatis

1. 背景

在Springboot 项目中集成 mybatis。
官方介绍:http://mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/

2.知识

2.1 新建项目

Step:1 使用 IDEA 编辑器,点击 Create New Project, 选择 Spring Initializr

Setp-1
  • 备注: Spring Initializr 是Spring官方提供的一个用于快速创建 Spring 项目的辅助方法。

Step:2

Step:2

Step:3

Step:3

这里创建项目时应用了 4个类库:

  • MyBatis Framework : 就是 MyBatis 库
  • MySQL Driver:即 mySQL 的数据库驱动
  • Spring Web : 构建 Web 应用,用于处理请求
  • Lombok : 一个强大的辅助类库

2.2 配置 mybatis

Springboot 使用 application.propery 或者 application.yml 来配置应用。我这里用了 application.yml ,你可以创建一个。

server:
  port: 8080

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/springboot_mybatis?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
    username: root
    password: 123456
    driver-class-name: com.mysql.jdbc.Driver

mybatis:
  mapper-locations: classpath:mapper/*Mapper.xml
  type-aliases-package: com.example.entity

# 打印日志。比如你的包名在: cn.zyfvir.demo.mapper 下
logging:
  level:
    cn:
      zyfvir:
        demo : debug
  • spring: datasource 这样的配置,是你的数据库数据源的配置,这里配置数据库连接字符串和用户名密码等。
  • mapper-locations: classpath:mapper/*Mapper.xml 这句话很关键,它描述了 “如何查找myabatis 的 XML映射文件”,这句话的意思是在 resource下的 mapper 文件夹下查找 以 mapper.xml 结尾的文件。

2.3 编写代码

mybaits 支持两种方式映射:

  • xml文件描述映射
  • 注解映射

实际项目中可以混合使用,我这里都做了示例。

先看下我的代码结构:

image.png

开始编写代码

写个实体类

public class City {

    private Long id;
    private String name;
    private String state;
    private String country;
}

mapper 映射类

@Mapper
public interface CityMapper {

    @Select("SELECT * FROM city WHERE status = #{status}")
    City findByStatus(@Param("status") int status);

    List<City> findAll();
}

编写service类

public interface CityService {
    City findByStatus(int status);

    List<City> findAll();
}

/* 实现类 */

@Service
public class CityServiceImpl implements CityService {
    @Autowired
    CityMapper cityMapper;

    @Override
    public City findByStatus(int status) {
        return cityMapper.findByStatus(status);
    }

    @Override
    public List<City> findAll() {
        return cityMapper.findAll();
    }
}

控制器类

@RestController
@RequestMapping("/city")
public class CityController {
    @Autowired
    CityService cityService;

    @RequestMapping("/findByStatus")
    public City findByStatus(int status){
        return cityService.findByStatus(status);
    }

    @RequestMapping("/findAll")
    public List<City> findAll(){
        return cityService.findAll();
    }
}

2.4 演示访问地址

在浏览器打开这个地址:http://localhost:8080/city/findAllhttp://localhost:8080/city/findByStatus?status=1

3. 附录

我的建表语句:

CREATE TABLE city
(
  id INT PRIMARY KEY auto_increment,
  name VARCHAR(100) NULL,
  status INT NOT NULL,
  country VARCHAR(100) NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT '城市';


INSERT INTO city (name,STATUS) VALUES ('北京',0);
INSERT INTO city (name,STATUS) VALUES ('上海',0);
INSERT INTO city (name,STATUS) VALUES ('河北',1);

我的代码示例:https://github.com/vir56k/java_demo/tree/master/mybatisdemo8_springboot_mybatis

5.参考:

MyBatis Spring-Boot-Starter 将帮助你在 Spring Boot 中使用 MyBatishttps://github.com/mybatis/spring-boot-starter

http://mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/

https://github.com/mybatis/spring-boot-starter/wiki/Quick-Start

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值