学习springboot和mybatisplus相关知识

  1. Spring Boot的核心概念:了解Spring Boot的核心概念,如自动配置、起步依赖、注解驱动等。这些概念是理解和应用Spring Boot的基础。

  2. Spring Boot的常用功能:掌握Spring Boot提供的常用功能,例如Web开发、数据访问、安全性等。学习如何使用Spring Boot的自动配置和起步依赖,简化开发过程。

  3. MyBatis Plus的使用方式:学习MyBatis Plus的核心功能和用法,包括如何配置数据源、定义实体类、使用Mapper接口操作数据库等。

  4. MyBatis Plus的高级功能:了解MyBatis Plus提供的高级功能,例如分页查询、条件构造器、乐观锁等。掌握这些功能可以提高开发效率和开发体验。

  5. 整合Spring Boot和MyBatis Plus:学习如何将Spring Boot和MyBatis Plus整合起来使用,配置并使用MyBatis Plus的Mapper接口,实现数据库访问。

Spring Boot的核心概念:了解Spring Boot的核心概念,如自动配置、起步依赖、注解驱动等。这些概念是理解和应用Spring Boot的基础。 

当了解Spring Boot的核心概念时,以下是关于自动配置、起步依赖和注解驱动的简要解释:

  1. 自动配置(Auto-configuration):Spring Boot的核心特性之一是自动配置。它旨在根据应用程序的类路径和配置属性,为您提供默认的配置,从而简化了Spring应用程序的配置过程。当您引入某个特定的依赖关系时,Spring Boot会根据依赖关系自动配置您的应用程序以实现特定的功能。例如,如果您添加了Spring Data JPA依赖关系,Spring Boot会自动配置JPA数据源和EntityManagerFactory。

  2. 起步依赖(Starter Dependencies):起步依赖是Spring Boot用于简化依赖管理的方式。它们是特定功能的依赖集合,通过一条简单的依赖项,您可以获取所需的全部依赖项。Spring Boot提供了许多预定义的起步依赖,例如“spring-boot-starter-web”用于开发Web应用程序,“spring-boot-starter-data-jpa”用于使用JPA进行数据库访问等。使用起步依赖可以快速搭建特定类型的应用程序,并自动管理依赖版本。

  3. 注解驱动(Annotation-driven):Spring Boot支持使用注解来驱动应用程序的配置和开发。注解驱动是一种让Spring应用程序使用注解来声明配置和开发任务的方式。例如,您可以使用@RestController注解声明一个控制器,并通过@RequestMapping注解指定请求的处理方法,从而简化了传统的XML配置方式。通过使用注解驱动,开发人员可以更加简洁和直观地编写代码。

以上是Spring Boot核心概念中的一部分,其他核心概念包括外部化配置、切片(AOP)、Spring Boot Actuator(用于监控和管理应用程序)等。深入了解这些概念将帮助您更好地理解和应用

 Spring Boot的常用功能:掌握Spring Boot提供的常用功能,例如Web开发、数据访问、安全性等。学习如何使用Spring Boot的自动配置和起步依赖,简化开发过程。

Spring Boot提供了许多常用功能,以下是其中几个:

  1. Web开发:Spring Boot框架支持基于Web的应用程序开发。您可以使用Spring MVC或Spring WebFlux开发Web应用程序,并使用Spring Boot自动配置为您配置Servlet容器、视图解析器、请求映射器等。您可以使用@RestController注解创建RESTful API,也可以使用Thymeleaf、Freemarker等模板引擎构建传统的MVC应用程序。

  2. 数据访问:Spring Boot框架支持各种数据访问技术,包括JDBC、JPA、MyBatis等。 Spring Boot会根据您的类路径和自动配置机制为您配置数据源、事务管理器和实体管理器等。您可以使用SQL或ORM等方式访问数据库。

  3. 安全性:Spring Boot框架提供了多种保护应用程序的安全性的方式,包括使用Spring Security实现基于角色的访问控制、使用OAuth 2.0为应用程序提供安全的API访问等。您可以使用Spring Security的注解来定义安全规则,还可以使用Spring Security OAuth2的自动配置来轻松地保护您的RESTful服务。

  4. 缓存:Spring Boot框架支持多种缓存技术,例如Ehcache、Redis、Guava等。 Spring Boot会根据类路径和自动配置机制为您配置缓存管理器和缓存存储。您可以手动注入CacheManager对象或使用@Cacheable注解来开启缓存。

  5. 日志:Spring Boot框架支持多种日志框架,例如Logback、Log4j2等。 Spring Boot默认使用Logback来记录应用程序日志,并使用SLF4J进行日志抽象。您可以使用@Slf4j注解来实现日志记录。

使用Spring Boot自动配置和起步依赖可以大大简化开发过程。例如,如果您想让应用程序使用H2内存数据库,只需添加“spring-boot-starter-data-jpa”起步依赖项,然后根据您的需求进行配置即可。 Spring Boot自动配置将为您提供一个数据源,它已经预定义了一些通用的属性,例如JDBC URL、用户名和密码等。

 

MyBatis Plus的使用方式:学习MyBatis Plus的核心功能和用法,包括如何配置数据源、定义实体类、使用Mapper接口操作数据库等。 

MyBatis Plus是一个强大且易于使用的ORM(对象关系映射)框架,它在MyBatis的基础上提供了更多的便利功能。以下是使用MyBatis Plus的基本步骤:

  1. 引入依赖:在Maven或Gradle配置文件中添加MyBatis Plus的依赖。例如,在Maven项目中,可以添加以下依赖项:
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>最新版本</version>
</dependency>

  1. 配置数据源:在application.propertiesapplication.yml文件中配置数据库连接信息,例如数据库URL、用户名、密码等。MyBatis Plus会自动使用这些配置初始化数据源。

  2. 定义实体类:创建Java实体类来映射数据库表。实体类的字段名称和数据库表的字段名称应该一致。使用@Table注解标记实体类对应的数据库表名,使用@Column注解指定字段名(若与属性名不同)。

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

@Data
@TableName("user")
public class User {
    private Long id;
    @TableField("name")
    private String username;
    private Integer age;
}

  1. 创建Mapper接口:创建一个继承自BaseMapper接口的自定义Mapper接口,并添加对应的数据库操作方法。MyBatis Plus会根据接口的定义自动生成SQL语句和执行相应的数据库操作。
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.entity.User;

public interface UserMapper extends BaseMapper<User> {
    // 可以添加一些自定义的数据库操作方法
}

  1. 使用Mapper接口进行数据库操作:通过注入Mapper接口的实例,可以使用MyBatis Plus提供的API进行数据库操作,例如插入、查询、更新、删除等。
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.stereotype.Service;

@Service
public class UserService {
    private final UserMapper userMapper;

    public UserService(UserMapper userMapper) {
        this.userMapper = userMapper;
    }

    public User getById(Long id) {
        return userMapper.selectById(id);
    }

    // 其他数据库操作方法
}

通过以上步骤,您可以简单地配置数据源、定义实体类和使用Mapper接口操作数据库。MyBatis Plus还提供了许多其他的便利功能,例如分页查询、条件构造器、乐观锁支持等。

 

 MyBatis Plus的高级功能:了解MyBatis Plus提供的高级功能,例如分页查询、条件构造器、乐观锁等

MyBatis Plus提供了许多高级功能,以下是其中几个:

  1. 分页查询:MyBatis Plus提供了分页插件,可以轻松进行分页查询。使用com.baomidou.mybatisplus.extension.plugins.pagination.Page类定义分页参数,并调用Mapper接口的selectPage方法进行查询。
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.stereotype.Service;

@Service
public class UserService {
    private final UserMapper userMapper;

    public UserService(UserMapper userMapper) {
        this.userMapper = userMapper;
    }

    public Page<User> getByPage(int pageNum, int pageSize) {
        return userMapper.selectPage(new Page<>(pageNum, pageSize), null);
    }

    // 其他数据库操作方法
}

  1. 条件构造器:MyBatis Plus提供了方便的条件构造器,可以动态生成SQL查询语句。使用com.baomidou.mybatisplus.core.conditions.query.QueryWrapper类定义查询条件,使用eqgtlike等方法设置查询条件。
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.stereotype.Service;

@Service
public class UserService {
    private final UserMapper userMapper;

    public UserService(UserMapper userMapper) {
        this.userMapper = userMapper;
    }

    public User getByName(String username) {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("name", username);
        return userMapper.selectOne(queryWrapper);
    }

    // 其他数据库操作方法
}

  1. 乐观锁支持:MyBatis Plus提供了乐观锁支持,可以处理多个并发请求同时对同一条数据进行修改的情况。使用@Version注解标记版本号属性,在更新操作时会自动增加版本号,并将旧版本号传入SQL语句中进行比较。
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.stereotype.Service;

@Service
public class UserService {
    private final UserMapper userMapper;

    public UserService(UserMapper userMapper) {
        this.userMapper = userMapper;
    }

    public boolean updateAge(Long id, Integer age) {
        User user = new User();
        user.setAge(age);
        UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
        updateWrapper.eq("id", id);
        updateWrapper.eq("age", 20); // 条件更新,防止被其他请求误更新
        updateWrapper.last("limit 1"); // 只更新1条,防止影响其他数据
        updateWrapper.setSql("version = version + 1"); // 自动增加版本号
        return userMapper.update(user, updateWrapper) == 1;
    }

    // 其他数据库操作方法
}

整合Spring Boot和MyBatis Plus:学习如何将Spring Boot和MyBatis Plus整合起来使用,配置并使用MyBatis Plus的Mapper接口,实现数据库访问。 

  1. 添加依赖项

在pom.xml文件中添加以下依赖项:

<!-- MyBatis Plus -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.x.x</version>
</dependency>

  1. 配置数据源

在application.properties或application.yml中配置数据源。例如:

spring.datasource.url=jdbc:mysql://localhost:3306/testdb?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

  1. 配置MyBatis Plus

创建一个MyBatis Plus的配置类,例如:

@Configuration
@MapperScan("com.example.springbootmybatisplus.mapper")
public class MybatisPlusConfig {

    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }
}

这个配置类中,我们使用@MapperScan注解来指定Mapper接口所在的包,同时,我们创建了一个PaginationInterceptor对象用于分页操作。

  1. 创建Mapper接口

创建一个Mapper接口,例如:

@Mapper
public interface UserMapper extends BaseMapper<User> {
    //自定义Mapper方法
}

这里我们使用了@Mapper来标注这是一个Mapper接口,并且继承了MyBatis Plus提供的BaseMapper,这样就可以直接使用MyBatis Plus提供的通用Mapper方法。

  1. 使用Mapper接口

在Service层中使用Mapper接口,例如:

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    @Override
    public List<User> findAll() {
        return userMapper.selectList(null);
    }

    //其他自定义的Service方法
}

这里我们使用@Autowired来注入UserMapper,在Service层中直接使用UserMapper所提供的方法进行数据库访问。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值