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.apache.http.util.TextUtils;
import org.attoparser.util.TextUtil;
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;
import java.util.concurrent.*;
/**
* 背景
* 现在的数据层的开发,大多会使用如MyBatis或JPA之类的开发工具。这些开发工具给我们的开发过程中带来了极大的便利。
* 但是在一些极端的场景下往往原生的jdbc方式操作数据库更灵活,性能更高。由于部分场景下MyBatis或JPA之类无法满足我的需求,所以我打算自己封装一套查数据库的工具类。
*
* 我们会用到fastjson,druid,mysql所以pom.xml增加依赖如下:
*
*
* com.alibaba
* fastjson
* 1.2.62
*
*
* com.alibaba
* druid
* 1.1.9
*
*
*
* mysql
* mysql-connector-java
*
*/
/**
* 源码下载
* 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.9: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.1.9:1521/orcl");
// 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() {
// 自定义一个线程池,内部包含8个线程
ExecutorService customPool = Executors.newFixedThreadPool(4);
// 自定义一个线程池,内部包含10个线程
ExecutorService executorService = Executors.newFixedThreadPool(10);
CompletableFuture future = CompletableFuture.supplyAsync(() -> {
String sql = "select * from temperature where id = ?";
List