12、springboot-数据库数据提取及详细处理

本文详述了在疫情大数据平台后台,如何使用MybatisPlus进行数据库数据的复杂提取和处理。在数据处理过程中,遇到如SQL限制、字段匹配等问题,并展示了部分代码示例,特别是针对数据构造和复杂数组处理的挑战,以及解决数据提取失效问题的策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

疫情大数据平台,后台首要的任务是从各种渠道获得数据及对获取后的数据进行处理,本篇主要是记录各类历史数据从数据库中取出,并进行详细处理的过程

主要使用MybatisPlus进行复杂查找

MybatisPlus进行简单查找时较为方便,但进行复杂查找时,需要注意的地方有很多,也比较麻烦

例如

sql语句:sql = "SELECT max(confirm),cast(sum(confirm_add) as signed),date_format(date,'%Y-%m') " \
          "FROM epidemicplatform.province_history " \
          "where province={} " \
          "GROUP BY DATE_FORMAT(date, '%Y-%m');"

查询语句中不能出现下划线,及较低版本的sql中,出现在select中的字段也必须出现在group by中,否则会报错

 QueryWrapper<Province_history> queryWrapper1 = new QueryWrapper<>();
        queryWrapper1.eq("province",region);
        queryWrapper1.groupBy("DATE_FORMAT(date, '%Y-%m')").select("max(confirm) as maxconfirm","DATE_FORMAT(date, '%Y-%m') as d","sum(confirm_add) as sumconfirmadd");
               

部分提取代码

 QueryWrapper<Province_history1> queryWrapper1 = new QueryWrapper<>();
        queryWrapper1.eq("province", region);
        queryWrapper1.ge("date","2022-04-01");
        queryWrapper1.groupBy("DATE_FORMAT(date, '%Y-%m-%d')").select("DATE_FORMAT(date, '%Y-%m-%d') as date1","heal_add as sumhealadd","dead_add as sumdeadadd","confirm_add as sumconfirmadd");
        List<Province_history1> history = province_historyMapper1.selectList(queryWrapper1
Spring Boot与数据库交互通常通过JPA(Java Persistence API)或MyBatis等ORM框架来实现。以下是基本步骤: 1. **添加依赖**:在项目pom.xml或build.gradle文件中添加对应数据库驱动(如MySQL、PostgreSQL等)的依赖。 ```xml <!-- Maven --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!-- Gradle --> implementation 'org.springframework.boot:spring-boot-starter-data-jpa' ``` 2. **配置数据库连接**:在application.properties或application.yml中设置数据库连接信息,包括URL、用户名、密码等。 ```properties spring.datasource.url=jdbc:mysql://localhost:3306/mydb spring.datasource.username=myuser spring.datasource.password=mypassword ``` 3. **创建实体类**(Model):将数据库表映射到Java类,使用`@Entity`注解标记。 4. **定义Repository接口**:使用Spring Data JPA,创建Repository接口继承自`JpaRepository`或自定义接口,它会提供CRUD操作。 ```java import org.springframework.data.jpa.repository.JpaRepository; public interface UserRepository extends JpaRepository<User, Long> { } ``` 5. **注入Repository**:在需要使用的Service或Controller类中注入对应的Repository。 6. **执行查询**:在Repository方法里调用查询方法,例如`findAll()`获取所有记录,`findById(id)`获取特定ID的记录。 ```java @Service public class UserService { private final UserRepository userRepository; public UserService(UserRepository userRepository) { this.userRepository = userRepository; } public List<User> getUsers() { return userRepository.findAll(); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值