all db add

master
wenfei 6 months ago
parent 10ed3d8c9b
commit 9a934c588d

@ -31,10 +31,15 @@
<artifactId>mybatis-spring-boot-starter</artifactId> <artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version> <version>2.1.4</version>
</dependency> </dependency>
<!-- <dependency>-->
<!-- <groupId>mysql</groupId>-->
<!-- <artifactId>mysql-connector-java</artifactId>-->
<!-- <version>8.0.33</version>-->
<!-- </dependency>-->
<dependency> <dependency>
<groupId>mysql</groupId> <groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId> <artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version> <scope>runtime</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.alibaba</groupId> <groupId>com.alibaba</groupId>
@ -110,12 +115,26 @@
<artifactId>mssql-jdbc</artifactId> <artifactId>mssql-jdbc</artifactId>
<version>11.2.0.jre8</version> <version>11.2.0.jre8</version>
</dependency> </dependency>
<!--人大金仓数据库 start-->
<dependency>
<groupId>com.kingbase8</groupId>
<artifactId>kingbase8</artifactId>
<version>8.6.0</version>
</dependency>
<!--人大金仓数据库 end-->
<dependency> <dependency>
<groupId>commons-codec</groupId> <groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId> <artifactId>commons-codec</artifactId>
<version>1.11</version> <version>1.11</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<!-- PostgreSQL Driver start-->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>
<!-- PostgreSQL Driver end-->
<dependency> <dependency>
<groupId>cn.hutool</groupId> <groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId> <artifactId>hutool-all</artifactId>

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

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

@ -0,0 +1,82 @@
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.KingbaseTemperatureService;
import com.rehome.mqttclienttemperature.service.OracleTemperatureService;
import com.rehome.mqttclienttemperature.service.PostgresSqlTemperatureService;
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 KingbaseTemperatureServiceImpl implements KingbaseTemperatureService {
public static DataSource ds = new DataSource();
static {
//配置数据源
ds.setId("202");
ds.setName("kingBase_3_25");
ds.setUrl("jdbc:kingbase8://192.168.3.25:54321/appserver?useUnicode=true");
ds.setUsername("system");
ds.setPassword("452131wW");
ds.setDriver("com.kingbase8.Driver");
}
@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(temperature, humidity, data_date, data_hour, data_minute, topic, location_desc, create_date) values(?, ?, ?, ?, ?, ?, ?, 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.executeSql(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;
}
}

@ -24,12 +24,9 @@ public class OracleTemperatureServiceImpl implements OracleTemperatureService {
//配置数据源 //配置数据源
ds.setId("200"); ds.setId("200");
ds.setName("oracle"); ds.setName("oracle");
// ds.setUrl("jdbc:oracle:thin:@192.168.3.9:1521/orcl"); ds.setUrl("jdbc:oracle:thin:@192.168.3.9:1521/orcl");
// ds.setUsername("appserver"); ds.setUsername("appserver");
// ds.setPassword("appserver"); ds.setPassword("appserver");
ds.setUrl("jdbc:oracle:thin:@43.139.89.198:15210/orcl");
ds.setUsername("huangwenfei");
ds.setPassword("huangwenfei");
ds.setDriver("oracle.jdbc.driver.OracleDriver"); ds.setDriver("oracle.jdbc.driver.OracleDriver");
} }
@ -42,7 +39,7 @@ public class OracleTemperatureServiceImpl implements OracleTemperatureService {
//CURRENT_TIMESTAMP //CURRENT_TIMESTAMP
//HIBERNATE_SEQUENCE //HIBERNATE_SEQUENCE
//temperature_seq_appserver //temperature_seq_appserver
String sql = "insert into temperature(id,temperature, humidity, data_date, data_hour, data_minute, topic, location_desc, create_date) values(HIBERNATE_SEQUENCE.NEXTVAL, ?, ?, ?, ?, ?, ?, ?, SYSTIMESTAMP)"; String sql = "insert into temperature(id,temperature, humidity, data_date, data_hour, data_minute, topic, location_desc, create_date) values(temperature_seq_appserver.NEXTVAL, ?, ?, ?, ?, ?, ?, ?, SYSTIMESTAMP)";
List<Object> jdbcParamValues = new ArrayList<>(); List<Object> jdbcParamValues = new ArrayList<>();
jdbcParamValues.add(temperature.getTemperature()); jdbcParamValues.add(temperature.getTemperature());

@ -0,0 +1,81 @@
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.PostgresSqlTemperatureService;
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 PostgresSqlTemperatureServiceImpl implements PostgresSqlTemperatureService {
public static DataSource ds = new DataSource();
static {
//配置数据源
ds.setId("203");
ds.setName("postgres");
ds.setUrl("jdbc:postgresql://192.168.3.24:5432/postgres");
ds.setUsername("postgres");
ds.setPassword("452131wW");
ds.setDriver("org.postgresql.Driver");
}
@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(temperature, humidity, data_date, data_hour, data_minute, topic, location_desc, create_date) values(?, ?, ?, ?, ?, ?, ?, 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.executeSql(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;
}
}

@ -26,7 +26,7 @@ public class SqlServerTemperatureServiceImpl implements SqlServerTemperatureServ
//配置数据源 //配置数据源
ds.setId("201"); ds.setId("201");
ds.setName("sqlserver"); ds.setName("sqlserver");
ds.setUrl("jdbc:sqlserver://43.139.89.198:14330;DatabaseName=appserver;encrypt=false;"); ds.setUrl("jdbc:sqlserver://192.168.3.29:1433;DatabaseName=appserver;encrypt=false;");
ds.setUsername("sa"); ds.setUsername("sa");
ds.setPassword("452131wW"); ds.setPassword("452131wW");
ds.setDriver("com.microsoft.sqlserver.jdbc.SQLServerDriver"); ds.setDriver("com.microsoft.sqlserver.jdbc.SQLServerDriver");

@ -4,9 +4,7 @@ import com.google.gson.Gson;
import com.rehome.mqttclienttemperature.dao.TemperatureRepository; import com.rehome.mqttclienttemperature.dao.TemperatureRepository;
import com.rehome.mqttclienttemperature.dto.ResponseDto; import com.rehome.mqttclienttemperature.dto.ResponseDto;
import com.rehome.mqttclienttemperature.entity.Temperature; import com.rehome.mqttclienttemperature.entity.Temperature;
import com.rehome.mqttclienttemperature.service.OracleTemperatureService; import com.rehome.mqttclienttemperature.service.*;
import com.rehome.mqttclienttemperature.service.SqlServerTemperatureService;
import com.rehome.mqttclienttemperature.service.TemperatureService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
@ -31,6 +29,10 @@ public class TemperatureServiceImpl implements TemperatureService {
private OracleTemperatureService oracleTemperatureService; private OracleTemperatureService oracleTemperatureService;
@Resource @Resource
private SqlServerTemperatureService sqlServerTemperatureService; private SqlServerTemperatureService sqlServerTemperatureService;
@Resource
private KingbaseTemperatureService kingbaseTemperatureService;
@Resource
private PostgresSqlTemperatureService postgresSqlTemperatureService;
@Override @Override
@ -67,13 +69,19 @@ public class TemperatureServiceImpl implements TemperatureService {
temperature.setHumidity(strDataTemperature[0]); temperature.setHumidity(strDataTemperature[0]);
temperature.setTemperature(strDataTemperature[1]); temperature.setTemperature(strDataTemperature[1]);
//this.temperatureRepository.save(temperature); this.temperatureRepository.save(temperature);
ResponseDto responseDtoOracle = this.oracleTemperatureService.saveTemperature(temperature); ResponseDto responseDtoOracle = this.oracleTemperatureService.saveTemperature(temperature);
log.info(new Gson().toJson(responseDtoOracle)); log.info(new Gson().toJson(responseDtoOracle));
ResponseDto responseDtoSqlserver = this.sqlServerTemperatureService.saveTemperature(temperature); ResponseDto responseDtoSqlserver = this.sqlServerTemperatureService.saveTemperature(temperature);
log.info(new Gson().toJson(responseDtoSqlserver)); log.info(new Gson().toJson(responseDtoSqlserver));
ResponseDto responseDtoKingBase = this.kingbaseTemperatureService.saveTemperature(temperature);
log.info(new Gson().toJson(responseDtoKingBase));
ResponseDto responseDtoSPg = this.postgresSqlTemperatureService.saveTemperature(temperature);
log.info(new Gson().toJson(responseDtoSPg));
} }
} }

@ -24,8 +24,8 @@ spring:
#url: jdbc:mysql://192.168.3.24:3306/appserver?useUnicode=true&characterEncoding=utf-8&useSSL=false&autoReconnect=true #url: jdbc:mysql://192.168.3.24:3306/appserver?useUnicode=true&characterEncoding=utf-8&useSSL=false&autoReconnect=true
#url: jdbc:mysql://192.168.1.24:3306/appserver?useUnicode=true&characterEncoding=utf-8&useSSL=false&autoReconnect=true #url: jdbc:mysql://192.168.1.24:3306/appserver?useUnicode=true&characterEncoding=utf-8&useSSL=false&autoReconnect=true
#url: jdbc:mysql://47.242.184.139:3306/appserver?useUnicode=true&characterEncoding=utf-8&useSSL=false&autoReconnect=true #url: jdbc:mysql://47.242.184.139:3306/appserver?useUnicode=true&characterEncoding=utf-8&useSSL=false&autoReconnect=true
#url: jdbc:mysql://192.168.3.9:3306/appserver?useUnicode=true&characterEncoding=utf-8&useSSL=false&autoReconnect=true url: jdbc:mysql://192.168.3.9:3306/appserver?useUnicode=true&characterEncoding=utf-8&useSSL=false&autoReconnect=true
url: jdbc:mysql://127.0.0.1:3306/appserver?useUnicode=true&characterEncoding=utf-8&useSSL=false&autoReconnect=true #url: jdbc:mysql://127.0.0.1:3306/appserver?useUnicode=true&characterEncoding=utf-8&useSSL=false&autoReconnect=true
driverClassName: com.mysql.cj.jdbc.Driver #com.mysql.cj.jdbc.Driver com.mysql.jdbc.Driver driverClassName: com.mysql.cj.jdbc.Driver #com.mysql.cj.jdbc.Driver com.mysql.jdbc.Driver
username: root username: root
password: Skyinno251, password: Skyinno251,
@ -37,8 +37,13 @@ spring:
database: mysql # 配置 DBMS 类型 database: mysql # 配置 DBMS 类型
show-sql: true # 配置是否将执行的 SQL 输出到日志 show-sql: true # 配置是否将执行的 SQL 输出到日志
open-in-view: true open-in-view: true
hibernate: properties:
ddl-auto: update # 第一次建表create 后面用update要不然每次重启都会新建表 hibernate:
format_sql: true
dialect: org.hibernate.dialect.MySQL57Dialect
ddl-auto: update
hbm2ddl:
auto: update
servlet: servlet:
multipart: multipart:
# 开启 multipart 上传功能 # 开启 multipart 上传功能

Loading…
Cancel
Save