add sqlserver

master
wenfei 6 months ago
parent 39dfb3ed59
commit 9071d74327

@ -5,58 +5,11 @@
</component>
<component name="ChangeListManager">
<list default="true" id="eacd3dd8-1e95-428c-a6af-1aadb9921989" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.idea/encodings.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/encodings.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/service/SqlServerTemperatureService.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/service/impl/SqlServerTemperatureServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/pom.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/AdminClientTemperatureApplication.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/AdminClientTemperatureApplication.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/Swagger2.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/controller/JdbcDemoController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/controller/JdbcDemoController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/controller/TemperatureController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/controller/TemperatureController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/controller/WeatherController.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/controller/api/TemperatureApiController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/controller/api/TemperatureApiController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/dao/WebServiceCityRepository.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/dao/WebServiceProvinceRepository.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/dao/WebServiceWeatherInfoRepository.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/dto/RequestNowTemperatureDto.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/dto/RequestNowTemperatureDto.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/dto/RequestTemperatureDto.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/dto/RequestTemperatureDto.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/dto/TemperatureDto.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/dto/TemperatureDto.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/entity/Temperature.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/entity/Temperature.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/entity/WebServiceCity.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/entity/WebServiceProvince.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/entity/WebServiceWeatherInfo.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/service/ScheduledService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/service/ScheduledService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/service/WebServiceWeatherService.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/service/impl/TemperatureServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/service/impl/TemperatureServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/service/impl/WebServiceWeatherServiceImpl.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/soap/ArrayOfString.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/soap/ArrayOfStringE.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/soap/DataSet.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/soap/ExtensionMapper.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/soap/GetSupportCity.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/soap/GetSupportCityResponse.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/soap/GetSupportDataSet.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/soap/GetSupportDataSetResponse.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/soap/GetSupportDataSetResult_type0.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/soap/GetSupportProvince.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/soap/GetSupportProvinceResponse.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/soap/GetWeatherbyCityName.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/soap/GetWeatherbyCityNamePro.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/soap/GetWeatherbyCityNameProResponse.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/soap/GetWeatherbyCityNameResponse.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/soap/WeatherWebService.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/soap/WeatherWebServiceCallbackHandler.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/soap/WeatherWebServiceStub.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/task/AgencyTask.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/task/WebServiceWeatherTask.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/utils/WebServiceUtils.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/webservice/AgencyService.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/webservice/AgencyServiceImpl.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/webservice/ApiCommonService.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/webservice/ApiCommonServiceImpl.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/webservice/WebServiceConfig.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/webservice/WebServicePublishConfig.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/application.yml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/application.yml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/utils/JdbcUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/rehome/mqttclienttemperature/utils/JdbcUtil.java" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />

@ -0,0 +1,8 @@
package com.rehome.mqttclienttemperature.service;
import com.rehome.mqttclienttemperature.dto.ResponseDto;
import com.rehome.mqttclienttemperature.entity.Temperature;
public interface SqlServerTemperatureService {
ResponseDto saveTemperature(Temperature temperature);
}

@ -0,0 +1,80 @@
package com.rehome.mqttclienttemperature.service.impl;
import com.google.gson.Gson;
import com.rehome.mqttclienttemperature.datasource.DataSource;
import com.rehome.mqttclienttemperature.dto.ResponseDto;
import com.rehome.mqttclienttemperature.entity.Temperature;
import com.rehome.mqttclienttemperature.service.OracleTemperatureService;
import com.rehome.mqttclienttemperature.service.SqlServerTemperatureService;
import com.rehome.mqttclienttemperature.utils.JdbcUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@Slf4j
@Service
public class SqlServerTemperatureServiceImpl implements SqlServerTemperatureService {
public static DataSource ds = new DataSource();
static {
//配置数据源
ds.setId("201");
ds.setName("sqlserver");
ds.setUrl("jdbc:sqlserver://43.139.89.198:14330;DatabaseName=appserver;encrypt=false;");
ds.setUsername("sa");
ds.setPassword("452131wW");
ds.setDriver("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}
@Override
public ResponseDto saveTemperature(Temperature temperature) {
// 自定义一个线程池,内部包含8个线程
ExecutorService customPool = Executors.newFixedThreadPool(2);
CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> {
//SYSTIMESTAMP
//CURRENT_TIMESTAMP
//HIBERNATE_SEQUENCE
//temperature_seq_appserver
//pg
//String sql = "insert into temperature(temperature, humidity, data_date, data_hour, data_minute, topic, location_desc, create_date) values(?, ?, ?, ?, ?, ?, ?, CURRENT_TIMESTAMP)";
//sqlserver 和 pg 相同
String sql = "insert into temperature(id,temperature, humidity, data_date, data_hour, data_minute, topic, location_desc, create_date) values(SELECT @@IDENTITY AS id,?, ?, ?, ?, ?, ?, ?, CURRENT_TIMESTAMP)";
List<Object> jdbcParamValues = new ArrayList<>();
jdbcParamValues.add(temperature.getTemperature());
jdbcParamValues.add(temperature.getHumidity());
jdbcParamValues.add(temperature.getDataDate());
jdbcParamValues.add(temperature.getDataHour());
jdbcParamValues.add(temperature.getDataMinute());
jdbcParamValues.add(temperature.getTopic());
jdbcParamValues.add(temperature.getLocationDesc());
//jdbcParamValues.add(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(temperature.getCreateDate()));
Gson gson = new Gson();
ResponseDto responseDto = JdbcUtil.executeInsertSql(ds, sql, jdbcParamValues);
String dbQueryResult = gson.toJson(responseDto);
log.info(dbQueryResult);
jdbcParamValues.clear();
if(responseDto.isSuccess()){
return "数据库同步成功";
}
return "数据库同步失败";
}, customPool);
ResponseDto responseDto = future.thenApply(result -> {
log.info("Result: " + result);
if("数据库同步成功".equals(result)){
return ResponseDto.successWithMsg(result);
}
return ResponseDto.fail(result);
}).join();
return responseDto;
}
}

@ -5,6 +5,7 @@ import com.rehome.mqttclienttemperature.dao.TemperatureRepository;
import com.rehome.mqttclienttemperature.dto.ResponseDto;
import com.rehome.mqttclienttemperature.entity.Temperature;
import com.rehome.mqttclienttemperature.service.OracleTemperatureService;
import com.rehome.mqttclienttemperature.service.SqlServerTemperatureService;
import com.rehome.mqttclienttemperature.service.TemperatureService;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
@ -27,6 +28,9 @@ public class TemperatureServiceImpl implements TemperatureService {
private TemperatureRepository temperatureRepository;
@Resource
private OracleTemperatureService oracleTemperatureService;
@Resource
private SqlServerTemperatureService sqlServerTemperatureService;
@Override
public void saveTemperature(String temperatureAndHumidityData,String topic) {
@ -62,9 +66,13 @@ public class TemperatureServiceImpl implements TemperatureService {
temperature.setHumidity(strDataTemperature[0]);
temperature.setTemperature(strDataTemperature[1]);
this.temperatureRepository.save(temperature);
ResponseDto responseDto = this.oracleTemperatureService.saveTemperature(temperature);
// this.temperatureRepository.save(temperature);
// ResponseDto responseDto = this.oracleTemperatureService.saveTemperature(temperature);
// log.info(new Gson().toJson(responseDto));
ResponseDto responseDto = this.sqlServerTemperatureService.saveTemperature(temperature);
log.info(new Gson().toJson(responseDto));
}
}

@ -94,4 +94,46 @@ public class JdbcUtil {
}
}
}
/**
* sql
*
* @param datasource
* @param sql
* @param jdbcParamValues
*/
public static ResponseDto executeInsertSql(DataSource datasource, String sql, List<Object> jdbcParamValues) {
log.info(sql);
log.info(JSON.toJSONString(jdbcParamValues));
DruidPooledConnection connection = null;
try {
connection = PoolManager.getPooledConnection(datasource);
PreparedStatement statement = connection.prepareStatement(sql);
for (int i = 1; i <= jdbcParamValues.size(); i++) {
statement.setObject(i, jdbcParamValues.get(i - 1));
}
int affectedRows = statement.executeUpdate();
if (affectedRows > 0) {
// 4. 获取自增主键
try (ResultSet generatedKeys = statement.getGeneratedKeys()) {
if (generatedKeys.next()) {
long generatedKey = generatedKeys.getLong(1);
return ResponseDto.apiSuccess("插入成功,生成的主键是:" + generatedKey);
}
}
}
return ResponseDto.fail("sql执行失败,插入失败,未获取到主键.");
} catch (Exception e) {
e.printStackTrace();
return ResponseDto.fail(e.getMessage());
} finally {
try {
if (connection != null) {
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

Loading…
Cancel
Save