前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MyBatis 学习笔记(8) 在Springboot 项目中集成 mybatis

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

作者头像
张云飞Vir
发布2021-07-08 11:02:25
2590
发布2021-07-08 11:02:25
举报
文章被收录于专栏:写代码和思考

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 ,你可以创建一个。

代码语言:javascript
复制
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

开始编写代码

写个实体类

代码语言:javascript
复制
public class City {

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

mapper 映射类

代码语言:javascript
复制
@Mapper
public interface CityMapper {

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

    List<City> findAll();
}

编写service类

代码语言:javascript
复制
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();
    }
}

控制器类

代码语言:javascript
复制
@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/findAll http://localhost:8080/city/findByStatus?status=1

3. 附录

我的建表语句:

代码语言:javascript
复制
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 中使用 MyBatis https://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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 背景
  • 2.知识
    • 2.1 新建项目
      • 2.2 配置 mybatis
        • 2.3 编写代码
          • 2.4 演示访问地址
          • 3. 附录
          • 5.参考:
          相关产品与服务
          云数据库 MySQL
          腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档