java | (三十三)springboot

本文详细介绍了SpringBoot应用中配置数据源、使用@Transactional注解管理事务、多文件配置、以及如何通过注解和XML文件整合MyBatis Plus。在整合过程中,文章提到了常见问题及解决方案,包括事务隔离级别、配置文件覆盖、数据库连接地址的正确写法,以及处理特定错误的方法。此外,还展示了MyBatis Plus的查询、删除、插入和按ID查询的方法实现。
摘要由CSDN通过智能技术生成


用idea创建了一个springboot架子(基于maven)

在这里插入图片描述

访问网站及配置数据源

数据源的配置在application.properties中,生成项目中有默认的,如下:

# 应用名称
spring.application.name=demo
# 数据库驱动:
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# 数据源名称
spring.datasource.name=defaultDataSource
# 数据库连接地址
spring.datasource.url=jdbc:mysql://localhost:3306/blue?serverTimezone=UTC
# 数据库用户名&密码:
spring.datasource.username=***
spring.datasource.password=***

web访问:需要@RestController和@RequestMapping

package com.example.demo.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.sql.DataSource;

@RestController
@RequestMapping("/test")
public class TestController {
   
    @Autowired
    private DataSource dataSource;
    @RequestMapping("/dataSource")
    public String testDataSource(){
   
        System.out.println("数据源类型是:" + dataSource.getClass().getName());
        return "OK";
    }
}

在浏览器中输入:
在这里插入图片描述
结果:
在这里插入图片描述

@Transactional注解

@Transactional用来标识在类或类中的方法上。
标识在类上代表此类中所有非静态公共方法将应用数据库事务。
标识在方法上代表此方法将应用数据库事务;
@Transactional注解还定义了事务的隔离级别和传播行为,异常类型的配置,这些配置定义了事务如何执行,具有哪些特征

事务的隔离级别
DEFAUTL 值为-1,不执行事务
READ_UNCOMMITTED 值为1,未提交读,会产生脏读
READ_COMMITTED 值为2,读写提交,会产生不可重复读
PEATABLE_READ 值为4,可重复读,会产生幻读
SERIALIZABLE 值为8,串行化,最高级别,避免以上所有问题

在这里插入图片描述
例如:

package com.example.demo.service;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional;

public class DepartmentService {
   
    @Transactional(rollbackFor = java.lang.Exception.class,
            isolation = Isolation.READ_COMMITTED,timeout = 1)
    public int saveDepartment(){
   
        return 0;
    }
}

在psvm中要有EnableTransactionManagement

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.transaction.annotation.EnableTransactionManagement;

//@SpringBootApplication

@SpringBootApplication
@EnableTransactionManagement
public class DemoApplication {
   

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

}

注意:这个注解和org.springframework的spring-tx有关,要引入

多文件配置

参考这篇
文件目录:
在这里插入图片描述
在application.properties要加入

spring.profiles.active=dev

application-dev.yml:(修改了端口号)

server:
  port: 8912

结果:
在这里插入图片描述
使用了覆盖原有的配置的dev作为设置

springboot整合mybatis

注解方式

属性配置文件

#配置mybatis属性
mybatis.type-aliases-package=com.example.demo

方法的接口:

package com.example.demo.mappers;

import com.example.demo.domin.Department;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

public interface DepartmentMapper {
   
    @Select("select * from department")
    List<Department>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值