You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
admin-client-temperature/src/main/java/com/rehome/mqttclienttemperature/controller/JdbcDemoController.java

133 lines
4.5 KiB
Java

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package com.rehome.mqttclienttemperature.controller;
import com.google.gson.Gson;
import com.rehome.mqttclienttemperature.datasource.DataSource;
import com.rehome.mqttclienttemperature.dto.ResponseDto;
import com.rehome.mqttclienttemperature.dto.ResponseTemperatureDto;
import com.rehome.mqttclienttemperature.dto.TemperatureDto;
import com.rehome.mqttclienttemperature.entity.Temperature;
import com.rehome.mqttclienttemperature.service.TemperatureService;
import com.rehome.mqttclienttemperature.utils.JdbcUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
*
* 背景
* 现在的数据层的开发大多会使用如MyBatis或JPA之类的开发工具。这些开发工具给我们的开发过程中带来了极大的便利。
* 但是在一些极端的场景下往往原生的jdbc方式操作数据库更灵活性能更高。由于部分场景下MyBatis或JPA之类无法满足我的需求所以我打算自己封装一套查数据库的工具类。
*
* 我们会用到fastjson,druid,mysql所以pom.xml增加依赖如下
*
* <dependency>
* <groupId>com.alibaba</groupId>
* <artifactId>fastjson</artifactId>
* <version>1.2.62</version>
* </dependency>
* <dependency>
* <groupId>com.alibaba</groupId>
* <artifactId>druid</artifactId>
* <version>1.1.9</version>
* </dependency>
* <!-- Mysql驱动包 -->
* <dependency>
* <groupId>mysql</groupId>
* <artifactId>mysql-connector-java</artifactId>
* </dependency>
*
*/
/**
*源码下载
* https://download.csdn.net/download/lxyoucan/85094574
*
* 参考
* https://github.com/freakchick/DBApi
*
*SpringBoot中封装jdbc工具类
* https://blog.csdn.net/lxyoucan/article/details/124042295
*
*
*/
@Slf4j
@RestController
public class JdbcDemoController {
@Resource
private TemperatureService temperatureService;
public static DataSource ds = new DataSource();
static {
//配置数据源
// ds.setId("1");
// ds.setName("mysql");
// ds.setUrl("jdbc:mysql://192.168.3.7:3306/appserver?useUnicode=true&characterEncoding=utf-8&useSSL=false&autoReconnect=true");
// ds.setUsername("root");
// ds.setPassword("Skyinno251,");
// ds.setDriver("com.mysql.cj.jdbc.Driver");
ds.setId("2");
ds.setName("oracle");
ds.setUrl("jdbc:oracle:thin:@192.168.3.7:1521/orcl");
ds.setUsername("appserver");
ds.setPassword("appserver");
ds.setDriver("oracle.jdbc.driver.OracleDriver");
}
/**
* 查询测试
* @return
*/
//@RequestMapping("/api/list")
public ResponseDto queryList()
{
String sql = "select * from temperature where id = ?";
List<Object> jdbcParamValues = new ArrayList<>();
for(int i=1659797;i<1669689;i++){
// try {
// Thread.sleep(5);
// } catch (InterruptedException e) {
// e.printStackTrace();
// }
jdbcParamValues.add(i+1);
Gson gson = new Gson();
ResponseDto responseDto = JdbcUtil.executeSql(ds,sql,jdbcParamValues);
String dbQueryResult = gson.toJson(responseDto);
log.info(dbQueryResult);
jdbcParamValues.clear();
ResponseTemperatureDto responseTemperatureDto=gson.fromJson(dbQueryResult,ResponseTemperatureDto.class);
if(responseTemperatureDto.isSuccess()&&responseTemperatureDto.getData()!=null&&responseTemperatureDto.getData().size()>0){
log.info(gson.toJson(responseTemperatureDto.getData().get(0)));
TemperatureDto dto = responseTemperatureDto.getData().get(0);
Temperature temperature = new Temperature();
temperature.setCreateDate(dto.getCreateDate());
temperature.setDataDate(dto.getDataDate());
temperature.setDataHour(dto.getDataHour());
temperature.setDataMinute(dto.getDataMinute());
temperature.setTopic(dto.getTopic());
temperature.setHumidity(String.valueOf(dto.getHumidity()));
temperature.setTemperature(String.valueOf(dto.getTemperature()));
temperature.setLocationDesc(dto.getLocationDesc());
temperatureService.saveTemperature(temperature);
}
}
return null;
}
}