SpringBoot项目初始化搭建

创建SpringBoot项目

在这里插入图片描述
首先在IDEA编译器中创建SpringBoot项目,注意选择链接: 阿里云这个网址进行创建,可以选择Java17以下的版本,在这里插入图片描述
点击进行创建之后,这个页面可以选择需要引入的依赖,注意,我们这里SpringBoot的版本为2.6.13,不要选择3.0以上的版本,因为SpringBoot3.0版本需要Java17以上作为支持,我们在这个页面不需要选择任何依赖,阿里云作为镜像网站,其中代码会自动生成,我们不选择任何依赖就可以使用纯净版进行开发,进入项目以后我们可以手动进行依赖的引入。
在这里插入图片描述
进入项目,首先打开pom.xml文件,将依赖引入dependencies双标签中,引入依赖如下:

      <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </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.2.2</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

接下来我们就可以愉快的编程了。

事务

接下来我们可以先学习一下事务(transaction),在Java中,事务通常指的是数据库操作中的一个概念,它确保了数据库操作的原子性、一致性、隔离性和持久性(ACID属性)。在Java的数据库编程中,事务可以通过JDBC API来管理,也可以使用更高级的框架如JPA(Java Persistence API)或Spring Framework来简化事务管理。

  • 原子性(Atomicity):事务中的所有操作要么全部完成,要么全部不完成,不会结束在中间某个点。

  • 一致性(Consistency):事务必须保证数据库从一个一致性状态转换到另一个一致性状态。

  • 隔离性(Isolation):并发执行的事务之间不会相互影响,每个事务都像是在独立运行。

  • 持久性(Durability):一旦事务提交,它对数据库的修改就是永久性的,即使系统发生故障也不会丢失。

在Java中,可以通过以下方式管理事务:

  • JPA:通过实体管理器(EntityManager)来管理事务,可以在实体管理器上调用beginTransaction()开始事务,commit()提交事务,rollback()回滚事务。

  • Spring Framework:Spring提供了声明式事务管理,可以通过注解(如@Transactional)或编程式事务管理来控制事务的边界。

事务管理是确保数据完整性和一致性的关键机制,特别是在多用户环境中进行并发数据库操作时。

编程式事务

首先来讲一下"编程式事务",指的是在编程过程中,通过代码显式地管理事务的开始、提交或回滚。在编程式事务中,开发者需要手动控制事务的生命周期,包括何时开始事务、何时提交事务以及在遇到错误时如何回滚事务。这种方法提供了更细粒度的控制,但同时也增加了代码的复杂性。
我们可以通过创建管理类来进行事务的开启,提交和回滚:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.DefaultTransactionDefinition;
import org.springframework.transaction.support.TransactionTemplate;

@Service
public class MyService {
   
   

    private final TransactionTemplate transactionTemplate;

    @Autowired
    public MyService(PlatformTransactionManager transactionManager) {
   
   
        this.transaction
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

科马

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值