玩转 Spring Boot 集成篇(MyBatis、JPA、事务支持)

在使用 Spring 进行实际项目研发中,Spring 整合 ORM 组件(MyBatis、JPA)是必不可少一个环节,而在整合过程中,往往要进行大量的配置。

借助 SpringBoot 可以屏蔽 Spring 整合 ORM 组件配置的大量简化,进而让研发人员更加专注于业务逻辑的开发,使得企业级项目开发更加快速和高效。

本文将重点分享 Spring Boot 与两种常用的 ORM 组件的整合:MyBatis 和 JPA,顺带提一嘴 Spring Boot 的事务支持。

a27d5242f9a31983418f99d4aa9e9cda.png

1. Spring Boot 集成 MyBatis

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。

MyBatis 特点:简单易学、灵活、解除sql与程序代码的耦合、提供映射标签,支持对象与数据库的orm字段关系映射、提供对象关系映射标签,支持对象关系组建维护、提供xml标签,支持编写动态sql等。

1.1. 引入依赖

<!-- 引入 MyBatis 依赖-->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybaits-spring-boot-starter</artifactId>
    <version>2.2.1</version>
</dependency>

1.2. 添加配置

# MySQL 链接信息
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver


## MyBatis 的配置
# Mapper资源文件存放的路径
mybatis.mapper-locations=classpath*:mapper/*Mapper.xml
# Dao 接口文件存放的目录
mybatis.type-aliases-package=com.example.demo.dao
# 开启 debug,输出 SQL
logging.level.com.example.demo.dao=debug

1.3. 编写代码

主要完成秒杀商品的添加、查询相关的数据库操作。

1.3.1. 创建实体类

package com.example.demo.model;
import java.io.Serializable;
import java.util.Date;
/**
 * 商品类
 * @author caicai
 */
public class ScProduct implements Serializable {
    private Integer id;
    private String name;
    private String productImg;
    private Integer number;
    private Date startTime;
    private Date endTime;
    private Date createTime;
    // 提供 setter、getter 方法
}

1.3.2. 创建Dao

package com.example.demo.dao;
import com.example.demo.model.ScProduct;
import org.apache.ibatis.annotations.Mapper;


@Mapper
public interface ScProductDao {
    /** 查询指定编号的商品信息*/
    ScProduct findByProductId(Integer id);
    /** 保存商品信息*/
    int insert(ScProduct scProduct);
}
  • @Mapper 注解,MyBatis 会根据接口定义与 Mapper 文件中的 SQL 语句动态创建接口的实现。

1.3.3. 创建 Service 接口

package com.example.demo.service;
import com.example.demo.model.ScProduct;


public interface ScProductService {
    /** 查询指定编号的商品信息*/
    ScProduct findByProductId(Integer id);
    /** 保存商品信息*/
    int save(ScProduct scProduct);
}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值