diff --git a/build.gradle b/build.gradle index b5c616b..5d22656 100644 --- a/build.gradle +++ b/build.gradle @@ -43,6 +43,13 @@ dependencies { implementation 'org.jdom:jdom2:2.0.6.1' // https://mvnrepository.com/artifact/org.apache.commons/commons-configuration2 implementation 'org.apache.commons:commons-configuration2:2.10.1' + // https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc11 + implementation group: 'com.oracle.database.jdbc', name: 'ojdbc11', version: '23.5.0.24.07' + // https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc + implementation group: 'com.microsoft.sqlserver', name: 'mssql-jdbc', version: '12.8.0.jre11' + // https://mvnrepository.com/artifact/org.postgresql/postgresql + implementation group: 'org.postgresql', name: 'postgresql', version: '42.7.3' + } tasks.named('test') { diff --git a/src/main/java/com/munjaon/client/config/DataSourceConfig.java b/src/main/java/com/munjaon/client/config/DataSourceConfig.java index c0ac10a..895efa5 100644 --- a/src/main/java/com/munjaon/client/config/DataSourceConfig.java +++ b/src/main/java/com/munjaon/client/config/DataSourceConfig.java @@ -1,7 +1,6 @@ package com.munjaon.client.config; import com.zaxxer.hikari.HikariDataSource; -import lombok.Getter; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.configuration2.ex.ConfigurationException; @@ -11,7 +10,6 @@ import org.mybatis.spring.SqlSessionTemplate; import org.mybatis.spring.annotation.MapperScan; import org.mybatis.spring.boot.autoconfigure.SpringBootVFS; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.jdbc.DataSourceBuilder; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; @@ -28,6 +26,7 @@ import javax.sql.DataSource; @EnableTransactionManagement @MapperScan(basePackages= "com.munjaon.client.**.mapper") public class DataSourceConfig { + //public class DataSourceConfig implements BeanDefinitionRegistryPostProcessor { @Autowired private ApplicationContext applicationContext; private final ServerConfig serverConfig; @@ -51,12 +50,15 @@ public class DataSourceConfig { @Primary @Bean(name = "factory") public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception { + String dbms = serverConfig.getString("DB.DBMS"); + System.out.println("dbms : " + dbms); SqlSessionFactoryBean sqlSessionFactory = new SqlSessionFactoryBean(); sqlSessionFactory.setVfs(SpringBootVFS.class); sqlSessionFactory.setDataSource(dataSource); sqlSessionFactory.setTypeAliasesPackage("com.munjaon.client.**.dto"); sqlSessionFactory.setConfigLocation(applicationContext.getResource("classpath:mybatis-config.xml")); sqlSessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:/sqlmap/**/*.xml")); +// sqlSessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:/sqlmap/" + dbms.toLowerCase() + "/*.xml")); return sqlSessionFactory.getObject(); } @@ -65,4 +67,22 @@ public class DataSourceConfig { public SqlSessionTemplate sqlSession(SqlSessionFactory sqlSessionFactory) { return new SqlSessionTemplate(sqlSessionFactory); } + +// @Override +// public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException { +// String dbms = null; +// try { +// dbms = serverConfig.getString("DB.DBMS"); +// } catch (ConfigurationException e) { +// throw new RuntimeException(e); +// } +// AbstractBeanDefinition mapperScannerConfigurer = BeanDefinitionBuilder +// .genericBeanDefinition(MapperScannerConfigurer.class) +// .addPropertyValue("sqlSessionFactoryBeanName", "factory") +// .addPropertyValue("basePackage", "com.munjaon.client.**.dto") +// .addPropertyValue("annotationClass", MapperType.value(dbms).getClass()) +// .getBeanDefinition(); +// +// registry.registerBeanDefinition("MapperScanner", mapperScannerConfigurer); +// } } diff --git a/src/main/java/com/munjaon/client/mariadb/service/MariaDBService.java b/src/main/java/com/munjaon/client/mariadb/service/MariaDBService.java index 65efae6..a8f62ea 100644 --- a/src/main/java/com/munjaon/client/mariadb/service/MariaDBService.java +++ b/src/main/java/com/munjaon/client/mariadb/service/MariaDBService.java @@ -13,14 +13,14 @@ import java.util.List; @Service @RequiredArgsConstructor public class MariaDBService { - private final MariaDBMapper mariaDBMapper; + private final MariaDBMapper deliverBMapper; public boolean checkTableExists() { boolean isExist = false; try { - int msgCount = mariaDBMapper.checkTableForMessage(); - int logCount = mariaDBMapper.checkTableForLog(); - if (msgCount > 0 && logCount > 0) { + int msgCount = deliverBMapper.checkTableForMessage(); + int logCount = deliverBMapper.checkTableForLog(); + if (msgCount >= 0 && logCount >= 0) { isExist = true; } } catch (Exception e) { @@ -30,25 +30,25 @@ public class MariaDBService { return isExist; } public List selectToDeliver(String msgType) { - return mariaDBMapper.selectToDeliver(msgType); + return deliverBMapper.selectToDeliver(msgType); } public int updateToDeliver(String msgId) { - return mariaDBMapper.updateToDeliver(msgId); + return deliverBMapper.updateToDeliver(msgId); } public int updateToReport(MunjaonMsg params) { - return mariaDBMapper.updateToReport(params); + return deliverBMapper.updateToReport(params); } public List selectToMove() { - return mariaDBMapper.selectToMove(); + return deliverBMapper.selectToMove(); } public List selectToExpire(String expireTime) { - return mariaDBMapper.selectToExpire(expireTime); + return deliverBMapper.selectToExpire(expireTime); } public int insertToLog(String msgId) { - return mariaDBMapper.insertToLog(msgId); + return deliverBMapper.insertToLog(msgId); } public int deleteFromDeliver(String msgId) { - return mariaDBMapper.deleteFromDeliver(msgId); + return deliverBMapper.deleteFromDeliver(msgId); } @Transactional diff --git a/src/main/java/com/munjaon/client/mssql/mapper/MssqlMapper.java b/src/main/java/com/munjaon/client/mssql/mapper/MssqlMapper.java new file mode 100644 index 0000000..cc8406c --- /dev/null +++ b/src/main/java/com/munjaon/client/mssql/mapper/MssqlMapper.java @@ -0,0 +1,20 @@ +package com.munjaon.client.mssql.mapper; + +import com.munjaon.client.model.MunjaonMsg; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface MssqlMapper { + String checkTime(); + int checkTableForMessage(); + int checkTableForLog(); + List selectToDeliver(String msgType); + int updateToDeliver(String msgId); + int updateToReport(MunjaonMsg params); + List selectToMove(); + List selectToExpire(String expireTime); + int insertToLog(String msgId); + int deleteFromDeliver(String msgId); +} diff --git a/src/main/java/com/munjaon/client/mssql/service/MssqlService.java b/src/main/java/com/munjaon/client/mssql/service/MssqlService.java new file mode 100644 index 0000000..18b0dfb --- /dev/null +++ b/src/main/java/com/munjaon/client/mssql/service/MssqlService.java @@ -0,0 +1,66 @@ +package com.munjaon.client.mssql.service; + +import com.munjaon.client.model.MunjaonMsg; +import com.munjaon.client.mssql.mapper.MssqlMapper; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +@Slf4j +@Service +@RequiredArgsConstructor +public class MssqlService { + private final MssqlMapper deliverBMapper; + + public boolean checkTableExists() { + boolean isExist = false; + try { + int msgCount = deliverBMapper.checkTableForMessage(); + int logCount = deliverBMapper.checkTableForLog(); + if (msgCount >= 0 && logCount >= 0) { + isExist = true; + } + } catch (Exception e) { + log.error("Check table exists error : {}", e); + } + + return isExist; + } + public List selectToDeliver(String msgType) { + return deliverBMapper.selectToDeliver(msgType); + } + public int updateToDeliver(String msgId) { + return deliverBMapper.updateToDeliver(msgId); + } + public int updateToReport(MunjaonMsg params) { + return deliverBMapper.updateToReport(params); + } + public List selectToMove() { + return deliverBMapper.selectToMove(); + } + public List selectToExpire(String expireTime) { + return deliverBMapper.selectToExpire(expireTime); + } + public int insertToLog(String msgId) { + return deliverBMapper.insertToLog(msgId); + } + public int deleteFromDeliver(String msgId) { + return deliverBMapper.deleteFromDeliver(msgId); + } + + @Transactional + public void moveToDeliver() { + List list = selectToMove(); + if (list == null || list.size() == 0) { + return; + } + log.debug("[CLASS : {} : MOVE_COUNT : {}", this.getClass(), list.size()); + for (MunjaonMsg msg : list) { + insertToLog(msg.getMsgId()); + deleteFromDeliver(msg.getMsgId()); + } + } +} diff --git a/src/main/java/com/munjaon/client/mysql/mapper/MysqlMapper.java b/src/main/java/com/munjaon/client/mysql/mapper/MysqlMapper.java new file mode 100644 index 0000000..909565d --- /dev/null +++ b/src/main/java/com/munjaon/client/mysql/mapper/MysqlMapper.java @@ -0,0 +1,20 @@ +package com.munjaon.client.mysql.mapper; + +import com.munjaon.client.model.MunjaonMsg; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface MysqlMapper { + String checkTime(); + int checkTableForMessage(); + int checkTableForLog(); + List selectToDeliver(String msgType); + int updateToDeliver(String msgId); + int updateToReport(MunjaonMsg params); + List selectToMove(); + List selectToExpire(String expireTime); + int insertToLog(String msgId); + int deleteFromDeliver(String msgId); +} diff --git a/src/main/java/com/munjaon/client/mysql/service/MysqlService.java b/src/main/java/com/munjaon/client/mysql/service/MysqlService.java index 8628b85..470943a 100644 --- a/src/main/java/com/munjaon/client/mysql/service/MysqlService.java +++ b/src/main/java/com/munjaon/client/mysql/service/MysqlService.java @@ -1,11 +1,66 @@ package com.munjaon.client.mysql.service; +import com.munjaon.client.model.MunjaonMsg; +import com.munjaon.client.mysql.mapper.MysqlMapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; @Slf4j @Service @RequiredArgsConstructor public class MysqlService { + private final MysqlMapper deliverBMapper; + + public boolean checkTableExists() { + boolean isExist = false; + try { + int msgCount = deliverBMapper.checkTableForMessage(); + int logCount = deliverBMapper.checkTableForLog(); + if (msgCount >= 0 && logCount >= 0) { + isExist = true; + } + } catch (Exception e) { + log.error("Check table exists error : {}", e); + } + + return isExist; + } + public List selectToDeliver(String msgType) { + return deliverBMapper.selectToDeliver(msgType); + } + public int updateToDeliver(String msgId) { + return deliverBMapper.updateToDeliver(msgId); + } + public int updateToReport(MunjaonMsg params) { + return deliverBMapper.updateToReport(params); + } + public List selectToMove() { + return deliverBMapper.selectToMove(); + } + public List selectToExpire(String expireTime) { + return deliverBMapper.selectToExpire(expireTime); + } + public int insertToLog(String msgId) { + return deliverBMapper.insertToLog(msgId); + } + public int deleteFromDeliver(String msgId) { + return deliverBMapper.deleteFromDeliver(msgId); + } + + @Transactional + public void moveToDeliver() { + List list = selectToMove(); + if (list == null || list.size() == 0) { + return; + } + log.debug("[CLASS : {} : MOVE_COUNT : {}", this.getClass(), list.size()); + for (MunjaonMsg msg : list) { + insertToLog(msg.getMsgId()); + deleteFromDeliver(msg.getMsgId()); + } + } } diff --git a/src/main/java/com/munjaon/client/oracle/mapper/OracleMapper.java b/src/main/java/com/munjaon/client/oracle/mapper/OracleMapper.java new file mode 100644 index 0000000..b3dbf41 --- /dev/null +++ b/src/main/java/com/munjaon/client/oracle/mapper/OracleMapper.java @@ -0,0 +1,20 @@ +package com.munjaon.client.oracle.mapper; + +import com.munjaon.client.model.MunjaonMsg; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface OracleMapper { + String checkTime(); + int checkTableForMessage(); + int checkTableForLog(); + List selectToDeliver(String msgType); + int updateToDeliver(String msgId); + int updateToReport(MunjaonMsg params); + List selectToMove(); + List selectToExpire(String expireTime); + int insertToLog(String msgId); + int deleteFromDeliver(String msgId); +} diff --git a/src/main/java/com/munjaon/client/oracle/service/OracleService.java b/src/main/java/com/munjaon/client/oracle/service/OracleService.java new file mode 100644 index 0000000..e590dd9 --- /dev/null +++ b/src/main/java/com/munjaon/client/oracle/service/OracleService.java @@ -0,0 +1,66 @@ +package com.munjaon.client.oracle.service; + +import com.munjaon.client.model.MunjaonMsg; +import com.munjaon.client.oracle.mapper.OracleMapper; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +@Slf4j +@Service +@RequiredArgsConstructor +public class OracleService { + private final OracleMapper deliverBMapper; + + public boolean checkTableExists() { + boolean isExist = false; + try { + int msgCount = deliverBMapper.checkTableForMessage(); + int logCount = deliverBMapper.checkTableForLog(); + if (msgCount >= 0 && logCount >= 0) { + isExist = true; + } + } catch (Exception e) { + log.error("Check table exists error : {}", e); + } + + return isExist; + } + public List selectToDeliver(String msgType) { + return deliverBMapper.selectToDeliver(msgType); + } + public int updateToDeliver(String msgId) { + return deliverBMapper.updateToDeliver(msgId); + } + public int updateToReport(MunjaonMsg params) { + return deliverBMapper.updateToReport(params); + } + public List selectToMove() { + return deliverBMapper.selectToMove(); + } + public List selectToExpire(String expireTime) { + return deliverBMapper.selectToExpire(expireTime); + } + public int insertToLog(String msgId) { + return deliverBMapper.insertToLog(msgId); + } + public int deleteFromDeliver(String msgId) { + return deliverBMapper.deleteFromDeliver(msgId); + } + + @Transactional + public void moveToDeliver() { + List list = selectToMove(); + if (list == null || list.size() == 0) { + return; + } + log.debug("[CLASS : {} : MOVE_COUNT : {}", this.getClass(), list.size()); + for (MunjaonMsg msg : list) { + insertToLog(msg.getMsgId()); + deleteFromDeliver(msg.getMsgId()); + } + } +} diff --git a/src/main/java/com/munjaon/client/postgresql/mapper/PostgresqlMapper.java b/src/main/java/com/munjaon/client/postgresql/mapper/PostgresqlMapper.java new file mode 100644 index 0000000..69f01bc --- /dev/null +++ b/src/main/java/com/munjaon/client/postgresql/mapper/PostgresqlMapper.java @@ -0,0 +1,20 @@ +package com.munjaon.client.postgresql.mapper; + +import com.munjaon.client.model.MunjaonMsg; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface PostgresqlMapper { + String checkTime(); + int checkTableForMessage(); + int checkTableForLog(); + List selectToDeliver(String msgType); + int updateToDeliver(String msgId); + int updateToReport(MunjaonMsg params); + List selectToMove(); + List selectToExpire(String expireTime); + int insertToLog(String msgId); + int deleteFromDeliver(String msgId); +} diff --git a/src/main/java/com/munjaon/client/postgresql/service/PostgresqlService.java b/src/main/java/com/munjaon/client/postgresql/service/PostgresqlService.java new file mode 100644 index 0000000..51102a8 --- /dev/null +++ b/src/main/java/com/munjaon/client/postgresql/service/PostgresqlService.java @@ -0,0 +1,66 @@ +package com.munjaon.client.postgresql.service; + +import com.munjaon.client.model.MunjaonMsg; +import com.munjaon.client.postgresql.mapper.PostgresqlMapper; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +@Slf4j +@Service +@RequiredArgsConstructor +public class PostgresqlService { + private final PostgresqlMapper deliverBMapper; + + public boolean checkTableExists() { + boolean isExist = false; + try { + int msgCount = deliverBMapper.checkTableForMessage(); + int logCount = deliverBMapper.checkTableForLog(); + if (msgCount >= 0 && logCount >= 0) { + isExist = true; + } + } catch (Exception e) { + log.error("Check table exists error : {}", e); + } + + return isExist; + } + public List selectToDeliver(String msgType) { + return deliverBMapper.selectToDeliver(msgType); + } + public int updateToDeliver(String msgId) { + return deliverBMapper.updateToDeliver(msgId); + } + public int updateToReport(MunjaonMsg params) { + return deliverBMapper.updateToReport(params); + } + public List selectToMove() { + return deliverBMapper.selectToMove(); + } + public List selectToExpire(String expireTime) { + return deliverBMapper.selectToExpire(expireTime); + } + public int insertToLog(String msgId) { + return deliverBMapper.insertToLog(msgId); + } + public int deleteFromDeliver(String msgId) { + return deliverBMapper.deleteFromDeliver(msgId); + } + + @Transactional + public void moveToDeliver() { + List list = selectToMove(); + if (list == null || list.size() == 0) { + return; + } + log.debug("[CLASS : {} : MOVE_COUNT : {}", this.getClass(), list.size()); + for (MunjaonMsg msg : list) { + insertToLog(msg.getMsgId()); + deleteFromDeliver(msg.getMsgId()); + } + } +} diff --git a/src/main/java/com/munjaon/client/server/service/CollectClientService.java b/src/main/java/com/munjaon/client/server/service/CollectClientService.java index aed8b81..ed88315 100644 --- a/src/main/java/com/munjaon/client/server/service/CollectClientService.java +++ b/src/main/java/com/munjaon/client/server/service/CollectClientService.java @@ -13,7 +13,6 @@ import java.io.IOException; import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.nio.channels.SocketChannel; -import java.nio.file.Files; import java.util.List; public class CollectClientService extends Service { diff --git a/src/main/java/com/munjaon/client/service/DatabaseService.java b/src/main/java/com/munjaon/client/service/DatabaseService.java index 2360a76..4795667 100644 --- a/src/main/java/com/munjaon/client/service/DatabaseService.java +++ b/src/main/java/com/munjaon/client/service/DatabaseService.java @@ -5,6 +5,9 @@ import lombok.Getter; @Getter public enum DatabaseService { MARIADB_SERVICE, + MSSQL_SERVICE, + ORACLE_SERVICE, + POSTGRESQL_SERVICE, MYSQL_SERVICE; private Object service; diff --git a/src/main/java/com/munjaon/client/service/DatabaseServiceInjector.java b/src/main/java/com/munjaon/client/service/DatabaseServiceInjector.java index da48993..7475e74 100644 --- a/src/main/java/com/munjaon/client/service/DatabaseServiceInjector.java +++ b/src/main/java/com/munjaon/client/service/DatabaseServiceInjector.java @@ -1,7 +1,10 @@ package com.munjaon.client.service; import com.munjaon.client.mariadb.service.MariaDBService; +import com.munjaon.client.mssql.service.MssqlService; import com.munjaon.client.mysql.service.MysqlService; +import com.munjaon.client.oracle.service.OracleService; +import com.munjaon.client.postgresql.service.PostgresqlService; import jakarta.annotation.PostConstruct; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -13,7 +16,13 @@ public class DatabaseServiceInjector { @Autowired private MariaDBService mariaDBService; @Autowired + private MssqlService mssqlService; + @Autowired private MysqlService mysqlService; + @Autowired + private OracleService oracleService; + @Autowired + private PostgresqlService postgresqlService; @PostConstruct public void postConstruct() { @@ -21,8 +30,14 @@ public class DatabaseServiceInjector { switch (svc) { case MARIADB_SERVICE: svc.setService(mariaDBService); break; + case MSSQL_SERVICE: svc.setService(mssqlService); + break; case MYSQL_SERVICE: svc.setService(mysqlService); break; + case ORACLE_SERVICE: svc.setService(oracleService); + break; + case POSTGRESQL_SERVICE : svc.setService(postgresqlService); + break; default: break; } } diff --git a/src/main/java/com/munjaon/client/service/DatabaseTypeWorker.java b/src/main/java/com/munjaon/client/service/DatabaseTypeWorker.java index 8d4488b..4b99a12 100644 --- a/src/main/java/com/munjaon/client/service/DatabaseTypeWorker.java +++ b/src/main/java/com/munjaon/client/service/DatabaseTypeWorker.java @@ -2,6 +2,10 @@ package com.munjaon.client.service; import com.munjaon.client.mariadb.service.MariaDBService; import com.munjaon.client.model.MunjaonMsg; +import com.munjaon.client.mssql.service.MssqlService; +import com.munjaon.client.mysql.service.MysqlService; +import com.munjaon.client.oracle.service.OracleService; +import com.munjaon.client.postgresql.service.PostgresqlService; import lombok.Getter; import java.util.EnumSet; @@ -64,50 +68,224 @@ public enum DatabaseTypeWorker { mariaDBService.moveToDeliver(); } }, - TYPE_OF_MYSQL("MYSQL") { + TYPE_OF_ORACLE("ORACLE") { @Override public boolean checkTableExists() { - return false; + OracleService oracleService = (OracleService) DatabaseService.ORACLE_SERVICE.getService(); + return oracleService.checkTableExists(); } @Override public List selectToDeliver(String msgType) { - return List.of(); + OracleService oracleService = (OracleService) DatabaseService.ORACLE_SERVICE.getService(); + return oracleService.selectToDeliver(msgType); } @Override public int updateToDeliver(String msgId) { - return 0; + OracleService oracleService = (OracleService) DatabaseService.ORACLE_SERVICE.getService(); + return oracleService.updateToDeliver(msgId); } @Override public int updateToReport(MunjaonMsg params) { - return 0; + OracleService oracleService = (OracleService) DatabaseService.ORACLE_SERVICE.getService(); + return oracleService.updateToReport(params); } @Override public List selectToMove() { - return List.of(); + OracleService oracleService = (OracleService) DatabaseService.ORACLE_SERVICE.getService(); + return oracleService.selectToMove(); } @Override public List selectToExpire(String expireTime) { - return List.of(); + OracleService oracleService = (OracleService) DatabaseService.ORACLE_SERVICE.getService(); + return oracleService.selectToExpire(expireTime); } @Override public int insertToLog(String msgId) { - return 0; + OracleService oracleService = (OracleService) DatabaseService.ORACLE_SERVICE.getService(); + return oracleService.insertToLog(msgId); } @Override public int deleteFromDeliver(String msgId) { - return 0; + OracleService oracleService = (OracleService) DatabaseService.ORACLE_SERVICE.getService(); + return oracleService.deleteFromDeliver(msgId); } @Override public void moveToDeliver() { + OracleService oracleService = (OracleService) DatabaseService.ORACLE_SERVICE.getService(); + oracleService.moveToDeliver(); + } + }, + TYPE_OF_MSSQL("MSSQL") { + @Override + public boolean checkTableExists() { + MssqlService mssqlService = (MssqlService) DatabaseService.MSSQL_SERVICE.getService(); + return mssqlService.checkTableExists(); + } + @Override + public List selectToDeliver(String msgType) { + MssqlService mssqlService = (MssqlService) DatabaseService.MSSQL_SERVICE.getService(); + return mssqlService.selectToDeliver(msgType); + } + + @Override + public int updateToDeliver(String msgId) { + MssqlService mssqlService = (MssqlService) DatabaseService.MSSQL_SERVICE.getService(); + return mssqlService.updateToDeliver(msgId); + } + + @Override + public int updateToReport(MunjaonMsg params) { + MssqlService mssqlService = (MssqlService) DatabaseService.MSSQL_SERVICE.getService(); + return mssqlService.updateToReport(params); + } + + @Override + public List selectToMove() { + MssqlService mssqlService = (MssqlService) DatabaseService.MSSQL_SERVICE.getService(); + return mssqlService.selectToMove(); + } + + @Override + public List selectToExpire(String expireTime) { + MssqlService mssqlService = (MssqlService) DatabaseService.MSSQL_SERVICE.getService(); + return mssqlService.selectToExpire(expireTime); + } + + @Override + public int insertToLog(String msgId) { + MssqlService mssqlService = (MssqlService) DatabaseService.MSSQL_SERVICE.getService(); + return mssqlService.insertToLog(msgId); + } + + @Override + public int deleteFromDeliver(String msgId) { + MssqlService mssqlService = (MssqlService) DatabaseService.ORACLE_SERVICE.getService(); + return mssqlService.deleteFromDeliver(msgId); + } + + @Override + public void moveToDeliver() { + MssqlService oracleService = (MssqlService) DatabaseService.MSSQL_SERVICE.getService(); + oracleService.moveToDeliver(); + } + }, + TYPE_OF_POSTGRESQL("POSTGRESQL") { + @Override + public boolean checkTableExists() { + PostgresqlService postgresqlService = (PostgresqlService) DatabaseService.POSTGRESQL_SERVICE.getService(); + return postgresqlService.checkTableExists(); + } + + @Override + public List selectToDeliver(String msgType) { + PostgresqlService postgresqlService = (PostgresqlService) DatabaseService.POSTGRESQL_SERVICE.getService(); + return postgresqlService.selectToDeliver(msgType); + } + + @Override + public int updateToDeliver(String msgId) { + PostgresqlService postgresqlService = (PostgresqlService) DatabaseService.POSTGRESQL_SERVICE.getService(); + return postgresqlService.updateToDeliver(msgId); + } + + @Override + public int updateToReport(MunjaonMsg params) { + PostgresqlService postgresqlService = (PostgresqlService) DatabaseService.POSTGRESQL_SERVICE.getService(); + return postgresqlService.updateToReport(params); + } + + @Override + public List selectToMove() { + PostgresqlService postgresqlService = (PostgresqlService) DatabaseService.POSTGRESQL_SERVICE.getService(); + return postgresqlService.selectToMove(); + } + + @Override + public List selectToExpire(String expireTime) { + PostgresqlService postgresqlService = (PostgresqlService) DatabaseService.POSTGRESQL_SERVICE.getService(); + return postgresqlService.selectToExpire(expireTime); + } + + @Override + public int insertToLog(String msgId) { + PostgresqlService postgresqlService = (PostgresqlService) DatabaseService.POSTGRESQL_SERVICE.getService(); + return postgresqlService.insertToLog(msgId); + } + + @Override + public int deleteFromDeliver(String msgId) { + PostgresqlService postgresqlService = (PostgresqlService) DatabaseService.POSTGRESQL_SERVICE.getService(); + return postgresqlService.deleteFromDeliver(msgId); + } + + @Override + public void moveToDeliver() { + PostgresqlService postgresqlService = (PostgresqlService) DatabaseService.POSTGRESQL_SERVICE.getService(); + postgresqlService.moveToDeliver(); + } + }, + TYPE_OF_MYSQL("MYSQL") { + @Override + public boolean checkTableExists() { + MysqlService mysqlService = (MysqlService) DatabaseService.MYSQL_SERVICE.getService(); + return mysqlService.checkTableExists(); + } + + @Override + public List selectToDeliver(String msgType) { + MysqlService mysqlService = (MysqlService) DatabaseService.MYSQL_SERVICE.getService(); + return mysqlService.selectToDeliver(msgType); + } + + @Override + public int updateToDeliver(String msgId) { + MysqlService mysqlService = (MysqlService) DatabaseService.MYSQL_SERVICE.getService(); + return mysqlService.updateToDeliver(msgId); + } + + @Override + public int updateToReport(MunjaonMsg params) { + MysqlService mysqlService = (MysqlService) DatabaseService.MYSQL_SERVICE.getService(); + return mysqlService.updateToReport(params); + } + + @Override + public List selectToMove() { + MysqlService mysqlService = (MysqlService) DatabaseService.MYSQL_SERVICE.getService(); + return mysqlService.selectToMove(); + } + + @Override + public List selectToExpire(String expireTime) { + MysqlService mysqlService = (MysqlService) DatabaseService.MYSQL_SERVICE.getService(); + return mysqlService.selectToExpire(expireTime); + } + + @Override + public int insertToLog(String msgId) { + MysqlService mysqlService = (MysqlService) DatabaseService.MYSQL_SERVICE.getService(); + return mysqlService.insertToLog(msgId); + } + + @Override + public int deleteFromDeliver(String msgId) { + MysqlService mysqlService = (MysqlService) DatabaseService.MYSQL_SERVICE.getService(); + return mysqlService.deleteFromDeliver(msgId); + } + + @Override + public void moveToDeliver() { + MysqlService mysqlService = (MysqlService) DatabaseService.MYSQL_SERVICE.getService(); + mysqlService.moveToDeliver(); } }; diff --git a/src/main/resources/sqlmap/mssql/mssql_sql.xml b/src/main/resources/sqlmap/mssql/mssql_sql.xml new file mode 100644 index 0000000..26d1a2a --- /dev/null +++ b/src/main/resources/sqlmap/mssql/mssql_sql.xml @@ -0,0 +1,102 @@ + + + + + + + + + /* MariaDBMapper.updateToDeliver */ + UPDATE MUNJAON_MSG SET + SEND_STATUS = '1' + , DELIVER_DATE = GETDATE() + WHERE MSG_ID = #{msgId} + + + /* MariaDBMapper.updateToReport */ + UPDATE MUNJAON_MSG SET + SEND_STATUS = #{sendStatus} + , SENT_DATE = CAST(#{sendDate} AS DATETIME) + , REPORT_DATE = SYSDATE + , TELECOM = #{telecom} + WHERE MSG_ID = #{msgId} + + + + + /* MariaDBMapper.insertToLog */ + INSERT INTO MUNJAON_MSG_LOG + ( + MSG_ID, MSG_TYPE, SEND_STATUS, REQUEST_DATE, + RECV_PHONE, SEND_PHONE, SUBJECT, MESSAGE, TELECOM, + FILENAME01, FILENAME02, FILENAME03, DELIVER_DATE, SENT_DATE, REPORT_DATE + ) + SELECT + MSG_ID, MSG_TYPE, SEND_STATUS, REQUEST_DATE, + RECV_PHONE, SEND_PHONE, SUBJECT, MESSAGE, TELECOM, + FILENAME01, FILENAME02, FILENAME03, DELIVER_DATE, SENT_DATE, REPORT_DATE + FROM MUNJAON_MSG + WHERE MSG_ID = #{msgId} + + + /* MariaDBMapper.deleteFromDeliver */ + DELETE FROM MUNJAON_MSG + WHERE MSG_ID = #{msgId} + + \ No newline at end of file diff --git a/src/main/resources/sqlmap/mysql/mysql_sql.xml b/src/main/resources/sqlmap/mysql/mysql_sql.xml new file mode 100644 index 0000000..193890f --- /dev/null +++ b/src/main/resources/sqlmap/mysql/mysql_sql.xml @@ -0,0 +1,97 @@ + + + + + + + + + /* MariaDBMapper.updateToDeliver */ + UPDATE MUNJAON_MSG SET + SEND_STATUS = '1' + , DELIVER_DATE = NOW() + WHERE MSG_ID = #{msgId} + + + /* MariaDBMapper.updateToReport */ + UPDATE MUNJAON_MSG SET + SEND_STATUS = #{sendStatus} + , SENT_DATE = FROM_UNIXTIME(UNIX_TIMESTAMP(#{sendDate})) + , REPORT_DATE = NOW() + , TELECOM = #{telecom} + WHERE MSG_ID = #{msgId} + + + + + /* MariaDBMapper.insertToLog */ + INSERT INTO MUNJAON_MSG_LOG + ( + MSG_ID, MSG_TYPE, SEND_STATUS, REQUEST_DATE, + RECV_PHONE, SEND_PHONE, SUBJECT, MESSAGE, TELECOM, + FILENAME01, FILENAME02, FILENAME03, DELIVER_DATE, SENT_DATE, REPORT_DATE + ) + SELECT + MSG_ID, MSG_TYPE, SEND_STATUS, REQUEST_DATE, + RECV_PHONE, SEND_PHONE, SUBJECT, MESSAGE, TELECOM, + FILENAME01, FILENAME02, FILENAME03, DELIVER_DATE, SENT_DATE, REPORT_DATE + FROM MUNJAON_MSG + WHERE MSG_ID = #{msgId} + + + /* MariaDBMapper.deleteFromDeliver */ + DELETE FROM MUNJAON_MSG + WHERE MSG_ID = #{msgId} + + \ No newline at end of file diff --git a/src/main/resources/sqlmap/oracle/oracle_sql.xml b/src/main/resources/sqlmap/oracle/oracle_sql.xml new file mode 100644 index 0000000..d31428f --- /dev/null +++ b/src/main/resources/sqlmap/oracle/oracle_sql.xml @@ -0,0 +1,102 @@ + + + + + + + + + /* MariaDBMapper.updateToDeliver */ + UPDATE MUNJAON_MSG SET + SEND_STATUS = '1' + , DELIVER_DATE = SYSDATE + WHERE MSG_ID = #{msgId} + + + /* MariaDBMapper.updateToReport */ + UPDATE MUNJAON_MSG SET + SEND_STATUS = #{sendStatus} + , SENT_DATE = TO_DATE(#{sendDate}, 'YYYYMMDDHH24MISS') + , REPORT_DATE = SYSDATE + , TELECOM = #{telecom} + WHERE MSG_ID = #{msgId} + + + + + /* MariaDBMapper.insertToLog */ + INSERT INTO MUNJAON_MSG_LOG + ( + MSG_ID, MSG_TYPE, SEND_STATUS, REQUEST_DATE, + RECV_PHONE, SEND_PHONE, SUBJECT, MESSAGE, TELECOM, + FILENAME01, FILENAME02, FILENAME03, DELIVER_DATE, SENT_DATE, REPORT_DATE + ) + SELECT + MSG_ID, MSG_TYPE, SEND_STATUS, REQUEST_DATE, + RECV_PHONE, SEND_PHONE, SUBJECT, MESSAGE, TELECOM, + FILENAME01, FILENAME02, FILENAME03, DELIVER_DATE, SENT_DATE, REPORT_DATE + FROM MUNJAON_MSG + WHERE MSG_ID = #{msgId} + + + /* MariaDBMapper.deleteFromDeliver */ + DELETE FROM MUNJAON_MSG + WHERE MSG_ID = #{msgId} + + \ No newline at end of file diff --git a/src/main/resources/sqlmap/postgresql/postresql_sql.xml b/src/main/resources/sqlmap/postgresql/postresql_sql.xml new file mode 100644 index 0000000..086d562 --- /dev/null +++ b/src/main/resources/sqlmap/postgresql/postresql_sql.xml @@ -0,0 +1,97 @@ + + + + + + + + + /* MariaDBMapper.updateToDeliver */ + UPDATE MUNJAON_MSG SET + SEND_STATUS = '1' + , DELIVER_DATE = NOW() + WHERE MSG_ID = #{msgId} + + + /* MariaDBMapper.updateToReport */ + UPDATE MUNJAON_MSG SET + SEND_STATUS = #{sendStatus} + , SENT_DATE = TO_DATE(#{sendDate}, 'YYYYMMDDHH24MISS') + , REPORT_DATE = SYSDATE + , TELECOM = #{telecom} + WHERE MSG_ID = #{msgId} + + + + + /* MariaDBMapper.insertToLog */ + INSERT INTO MUNJAON_MSG_LOG + ( + MSG_ID, MSG_TYPE, SEND_STATUS, REQUEST_DATE, + RECV_PHONE, SEND_PHONE, SUBJECT, MESSAGE, TELECOM, + FILENAME01, FILENAME02, FILENAME03, DELIVER_DATE, SENT_DATE, REPORT_DATE + ) + SELECT + MSG_ID, MSG_TYPE, SEND_STATUS, REQUEST_DATE, + RECV_PHONE, SEND_PHONE, SUBJECT, MESSAGE, TELECOM, + FILENAME01, FILENAME02, FILENAME03, DELIVER_DATE, SENT_DATE, REPORT_DATE + FROM MUNJAON_MSG + WHERE MSG_ID = #{msgId} + + + /* MariaDBMapper.deleteFromDeliver */ + DELETE FROM MUNJAON_MSG + WHERE MSG_ID = #{msgId} + + \ No newline at end of file diff --git a/src/test/java/com/munjaon/client/MunjaonClientApplicationTests.java b/src/test/java/com/munjaon/client/MunjaonClientApplicationTests.java deleted file mode 100644 index f9fd7fa..0000000 --- a/src/test/java/com/munjaon/client/MunjaonClientApplicationTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.munjaon.client; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class MunjaonClientApplicationTests { - - @Test - void contextLoads() { - } - -}