标准数据层开发

1、MyBatisPlus的CRUD操作

package com.itheima;

import com.itheima.dao.UserDao;
import com.itheima.domain.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;

@SpringBootTest
class Mybatisplus01QuickstartApplicationTests {

    @Autowired
    private UserDao userDao;

    @Test
    void testSave() {
        User user = new User();
        user.setName("黑马程序员");
        user.setPassword("itheima");
        user.setAge(12);
        user.setTel("4006184000");
        userDao.insert(user);
    }

    @Test
    void testDelete() {
        userDao.deleteById(1401856123725713409L);
    }

    @Test
    void testUpdate() {
        User user = new User();
        user.setId(1L);
        user.setName("Tom888");
        user.setPassword("tom888");
        userDao.updateById(user);
    }

    @Test
    void testGetById() {
        User user = userDao.selectById(2L);
        System.out.println(user);
    }


    @Test
    void testGetAll() {
        List<User> userList = userDao.selectList(null);
        System.out.println(userList);
    }
}

 

2、Lombok插件介绍

问题导入

有什么简单的办法可以自动生成实体类的GET、SET方法?

  • Lombok,一个Java类库,提供了一组注解,简化POJO实体类开发。

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.12</version>
</dependency> 

  • 常用注解:==@Data==,为当前实体类在编译期设置对应的get/set方法,无参/无参构造方法,toString方法,hashCode方法,equals方法等

package com.itheima.domain;

import lombok.*;
/*
    1 生成getter和setter方法:@Getter、@Setter
      生成toString方法:@ToString
      生成equals和hashcode方法:@EqualsAndHashCode

    2 统一成以上所有:@Data

    3 生成空参构造: @NoArgsConstructor
      生成全参构造: @AllArgsConstructor

    4 lombok还给我们提供了builder的方式创建对象,好处就是可以链式编程。 @Builder【扩展】
 */
@Data
public class User {
    private Long id;
    private String name;
    private String password;
    private Integer age;
    private String tel;
}

 

3、MyBatisPlus分页功能

3.1、MyBatisPlus分页使用

①:设置分页拦截器作为Spring管理的bean

package com.itheima.config;

import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MybatisPlusConfig {
    
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        //1 创建MybatisPlusInterceptor拦截器对象
        MybatisPlusInterceptor mpInterceptor=new MybatisPlusInterceptor();
        //2 添加分页拦截器
        mpInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
        return mpInterceptor;
    }
}

②:执行分页查询

//分页查询
@Test
void testSelectPage(){
    //1 创建IPage分页对象,设置分页参数
    IPage<User> page=new Page<>(1,3);
    //2 执行分页查询
    userDao.selectPage(page,null);
    //3 获取分页结果
    System.out.println("当前页码值:"+page.getCurrent());
    System.out.println("每页显示数:"+page.getSize());
    System.out.println("总页数:"+page.getPages());
    System.out.println("总条数:"+page.getTotal());
    System.out.println("当前页数据:"+page.getRecords());
}

3.2、开启MyBatisPlus日志

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mybatisplus_db?serverTimezone=UTC
    username: root
    password: root
# 开启mp的日志(输出到控制台)
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

取消初始化spring日志打印

做法:在resources下新建一个logback.xml文件,名称固定,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

</configuration>

关于logback参考博客:logback.xml常用配置详解 - 简书

取消SpringBoot启动banner图标

spring:
  main:
    banner-mode: off # 关闭SpringBoot启动图标(banner)

取消MybatisPlus启动banner图标  

 # mybatis-plus日志控制台输出
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  global-config:
    banner: off # 关闭mybatisplus启动图标

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: TiDB数据中台开发架构是一种基于分布式数据库TiDB构建的数据中台解决方案。其主要特点是高可靠性、高可扩展性和高性能。 首先,TiDB是一种分布式数据库,具备水平扩展的能力。它可以通过添加新的节点来实现容量和性能的线性扩展,从而满足海量数据的存储和处理需求。这为数据中台的发展提供了坚实的基础。 其次,TiDB采用了一种分布式事务的架构,能够保证数据的一致性和可靠性。在数据中台的应用场景中,不同的业务模块需要进行数据的协同和协作,这就需要一个可靠的事务机制来确保数据的同步和一致性。 另外,TiDB支持多种运算模型,包括关系型数据库的SQL操作和分布式计算的MapReduce操作,满足不同的数据处理需求。这使得数据中台能够灵活地处理结构化和半结构化数据,并进行各种复杂的分析和挖掘。 此外,TiDB还提供了一套完整的数据管理工具,包括数据备份和恢复、监控和调度等功能,帮助用户更好地管理和运维数据中台。这些工具可以帮助用户快速建立和维护数据中台的基础设施,提高开发和运维效率。 总的来说,TiDB数据中台开发架构是一种基于分布式数据库TiDB构建的数据中台解决方案。通过其高可靠性、高可扩展性和高性能的特点,可以满足数据中台在存储和处理海量数据、实现数据协同和协作等方面的需求。同时,TiDB还提供了一套完整的数据管理工具,帮助用户更好地建立和维护数据中台的基础设施。 ### 回答2: TiDB数据中台开发架构是一种基于TiDB分布式数据库的架构,旨在实现数据的集中管理和统一维护。该架构将数据作为核心资源,通过构建数据管道和数据服务来实现数据的高效流转和使用。 首先,TiDB数据中台开发架构包括数据管道模块。这个模块主要负责数据的采集、加工和传输。数据可以来自多个源,包括在线交易系统、传感器设备、第三方数据接口等。通过数据采集组件,将数据实时或批量地收集到中台的数据湖中。然后,通过数据加工组件,将原始数据进行清洗、转换和整合,以满足业务需求。最后,通过数据传输组件,将加工后的数据发送给其他系统或用户。 其次,TiDB数据中台开发架构还包括数据服务模块。这个模块提供了基于中台数据的多种服务,包括数据查询、分析、挖掘和可视化。用户可以通过数据服务组件,根据自己的需求对中台数据进行查询和分析,以获取业务洞察。同时,数据服务还支持数据挖掘算法和机器学习模型的应用,用于进行数据挖掘和预测分析。此外,数据服务还可以将分析结果通过可视化组件展示给用户,以便更直观地理解数据。 最后,TiDB数据中台开发架构还包括数据安全和治理模块。这个模块主要负责数据的安全管理和合规性监控。通过数据安全组件,可以对数据进行权限控制和数据脱敏,以保护数据的安全性。同时,通过治理组件,可以对数据进行数据质量监控、数据血缘追溯和数据合规性检查,以提高数据的管理和使用效率。 总结来说,TiDB数据中台开发架构通过构建数据管道和数据服务,实现了数据的集中管理和统一维护。它以数据为核心,提供了数据的采集、加工、传输和服务等功能,帮助企业更高效地进行数据的管理和应用。 ### 回答3: TiDB数据中台开发架构是指以TiDB为核心,构建一个统一的数据中台平台,通过整合数据资源、提供丰富的功能和服务,支持多种应用场景的数据开发数据应用。 首先,TiDB是一个分布式的关系型数据库,具有高可用、高性能和强一致性的特点。它能够处理大规模的数据存储和查询需求,并支持水平扩展,能够满足数据中台平台的高并发和大数据量处理的要求。 在TiDB数据中台的架构中,还包含了以下关键组件: 1. 数据接入:负责将不同数据源的数据导入到TiDB中,如数据仓库、数据湖、实时数据流等。通过提供统一的接入接口和数据转换能力,将数据标准化、去重、清洗等,确保数据的质量和一致性。 2. 数据存储与计算:包括TiDB、TiKV等核心组件,用于存储和处理数据。TiDB采用分布式的架构,将数据分片存储在多个TiKV节点上,通过Raft协议实现数据的分布式一致性。同时,TiDB还支持分布式事务和弹性伸缩,提供了强大的数据处理能力。 3. 数据服务:提供丰富的数据服务和功能,比如数据查询、数据分析、数据挖掘等。通过对外暴露接口和提供标准化的数据模型,支持多种应用场景的数据开发数据应用。 4. 数据治理:用于管理和监控数据资源,包括数据质量、数据安全、数据准入等。通过数据治理策略和规则,确保数据的合规性和安全性。 5. 数据应用:支持各种数据应用的开发和部署,包括数据可视化、数据报表、数据分析平台等。通过与其他工具和平台的集成,提供全面的数据解决方案。 总的来说,TiDB数据中台开发架构通过整合数据资源、提供丰富的功能和服务,实现了对数据的有效管理和利用。它具有高可用、高性能和强一致性的特点,能够支持多种应用场景的数据开发数据应用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

悠然予夏

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

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

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

打赏作者

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

抵扣说明:

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

余额充值