원천데이터테이블정보, 컬럼정보, 데이터정보 new 테이블 변경/ 테이블 변경에 따른 원천데이터 저장 로직 변경
This commit is contained in:
parent
8421fb7edc
commit
c548a9c1e2
@ -1,5 +1,6 @@
|
||||
package egovframework.com.mtdata.comtsrcdata.mapper;
|
||||
|
||||
import egovframework.com.mtdata.comtsrcdata.vo.ComtColVO;
|
||||
import egovframework.com.mtdata.comtsrcdata.vo.ComtExtrtVO;
|
||||
import egovframework.com.mtdata.comtsrcdata.vo.ComtTableVO;
|
||||
import egovframework.com.mtdata.comtsrcdata.vo.ComtsrcdataVO;
|
||||
@ -17,17 +18,9 @@ public interface ComtsrcdataMapper {
|
||||
*/
|
||||
public int insertComtExtrtInfo(ComtExtrtVO vo) throws Exception;
|
||||
|
||||
/**
|
||||
* 원천데이터를 [comtsrcdata]테이블에 저장
|
||||
*
|
||||
* @param vo
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public int insertComtSrcdataInfo(ComtsrcdataVO vo) throws Exception;
|
||||
|
||||
/**
|
||||
* 원천데이터 테이블을 [comtsrcdatameta]테이블에 저장
|
||||
* 원천데이터 테이블을 [comtsrcdatameta] 테이블에 저장
|
||||
*
|
||||
* @param vo
|
||||
* @return
|
||||
@ -37,7 +30,7 @@ public interface ComtsrcdataMapper {
|
||||
|
||||
|
||||
/**
|
||||
* 원천데이터 테이블을 [comtsrcdatameta]테이블에 저장
|
||||
* 원천데이터를 [comtsrcdata] 테이블에 저장
|
||||
*
|
||||
* @param vo
|
||||
* @return
|
||||
@ -45,6 +38,15 @@ public interface ComtsrcdataMapper {
|
||||
*/
|
||||
public int insertComtSrcdata(ComtsrcdataVO vo) throws Exception;
|
||||
|
||||
/**
|
||||
* 원천데이터의 컬럼정보 [comtsrcdatacol] 테이블에 저장
|
||||
*
|
||||
* @param vo
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public int insertComtSrcCol(ComtColVO vo) throws Exception;
|
||||
|
||||
|
||||
// 원천데이터 jsonb type 테스트 용 샘플
|
||||
public int updateDatasrc(ComtsrcdataVO vo) throws Exception;
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package egovframework.com.mtdata.comtsrcdata.service;
|
||||
|
||||
import egovframework.com.mtdata.comtsrcdata.dto.ComtsrcdataDTO;
|
||||
import egovframework.com.mtdata.comtsrcdata.vo.ComtColVO;
|
||||
import egovframework.com.mtdata.comtsrcdata.vo.ComtExtrtVO;
|
||||
import egovframework.com.mtdata.comtsrcdata.vo.ComtTableVO;
|
||||
import egovframework.com.mtdata.comtsrcdata.vo.ComtsrcdataVO;
|
||||
@ -36,6 +37,15 @@ public interface ComtsrcdataService {
|
||||
public int insertComtTabledataInfo(ComtTableVO vo) throws Exception;
|
||||
|
||||
|
||||
/**
|
||||
* 원천데이터의 컬럼정보 [comtsrcdatacol] 테이블에 저장
|
||||
*
|
||||
* @param vo
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public int insertComtSrcCol(ComtColVO vo) throws Exception;
|
||||
|
||||
|
||||
/**
|
||||
* test
|
||||
|
||||
@ -3,6 +3,7 @@ package egovframework.com.mtdata.comtsrcdata.service.impl;
|
||||
import egovframework.com.mtdata.comtsrcdata.dto.ComtsrcdataDTO;
|
||||
import egovframework.com.mtdata.comtsrcdata.mapper.ComtsrcdataMapper;
|
||||
import egovframework.com.mtdata.comtsrcdata.service.ComtsrcdataService;
|
||||
import egovframework.com.mtdata.comtsrcdata.vo.ComtColVO;
|
||||
import egovframework.com.mtdata.comtsrcdata.vo.ComtExtrtVO;
|
||||
import egovframework.com.mtdata.comtsrcdata.vo.ComtTableVO;
|
||||
import egovframework.com.mtdata.comtsrcdata.vo.ComtsrcdataVO;
|
||||
@ -33,6 +34,12 @@ public class ComtsrcdataServiceImpl extends EgovAbstractServiceImpl implements C
|
||||
return comtsrcdataMapper.insertComtTabledataInfo(vo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int insertComtSrcCol(ComtColVO vo) throws Exception {
|
||||
return comtsrcdataMapper.insertComtSrcCol(vo);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int updateDatasrc(ComtsrcdataVO vo) throws Exception {
|
||||
return comtsrcdataMapper.updateDatasrc(vo);
|
||||
|
||||
@ -7,10 +7,10 @@ import lombok.Setter;
|
||||
@Getter
|
||||
@Setter
|
||||
public class ComtColVO {
|
||||
/** 원천데이터 테이블 ID */
|
||||
private int srcDataMetaId;
|
||||
/** 원천데이터 컬럼 ID*/
|
||||
private int srcDataColId;
|
||||
/** 원천데이터 테이블 ID */
|
||||
private int srcDataMetaId;
|
||||
/** 원천데이터 컬럼명 */
|
||||
private String srcDataColNm;
|
||||
}
|
||||
|
||||
@ -7,10 +7,10 @@ import lombok.Setter;
|
||||
@Getter
|
||||
@Setter
|
||||
public class ComtTableVO {
|
||||
/** 원천데이터 데이터 ID */
|
||||
private int srcDataId ;
|
||||
/** 원천데이터 테이블 ID */
|
||||
private int srcDataMetaId;
|
||||
/** 원천데이터 데이터 ID */
|
||||
private int extrId ;
|
||||
/** 원천데이터 테이블 이름 */
|
||||
private String srcDataTblNm;
|
||||
|
||||
|
||||
@ -7,10 +7,10 @@ import lombok.Setter;
|
||||
@Getter
|
||||
@Setter
|
||||
public class ComtsrcdataVO {
|
||||
/** 원천데이터 데이터 ID */
|
||||
private int srcDataId ;
|
||||
/** 추출 ID */
|
||||
private int extrId;
|
||||
/** ID */
|
||||
private int srcDataId;
|
||||
/** 원천데이터 테이블 정보 ID */
|
||||
private int srcDataMetaId ;
|
||||
/** 원천데이터 값 */
|
||||
private String srcDataVl;
|
||||
}
|
||||
|
||||
@ -70,9 +70,8 @@ public class ComtsrcdataController {
|
||||
}
|
||||
obj.putAll(resultMap);
|
||||
ComtsrcdataVO vo = new ComtsrcdataVO();
|
||||
vo.setExtrId(6);
|
||||
vo.setSrcDataVl(obj.toString());
|
||||
service.insertComtSrcdata(vo);
|
||||
// service.insertComtSrcdata(vo);
|
||||
}
|
||||
|
||||
return "원천데이터 컨트롤러 ::";
|
||||
|
||||
@ -1,14 +1,19 @@
|
||||
package egovframework.com.mtdata.schema.service.impl;
|
||||
|
||||
import java.sql.*;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import egovframework.com.mtdata.comtsrcdata.service.ComtsrcdataService;
|
||||
import egovframework.com.mtdata.comtsrcdata.vo.ComtColVO;
|
||||
import egovframework.com.mtdata.comtsrcdata.vo.ComtExtrtVO;
|
||||
import egovframework.com.mtdata.comtsrcdata.vo.ComtTableVO;
|
||||
import egovframework.com.mtdata.comtsrcdata.vo.ComtsrcdataVO;
|
||||
import egovframework.com.mtdata.database.vo.ColumnInfoVO;
|
||||
import egovframework.com.mtdata.database.vo.TableInfoVO;
|
||||
import org.json.simple.JSONObject;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Service;
|
||||
@ -90,6 +95,7 @@ public class MySQLSchemaViewerImpl implements DatabaseSchemaViewer {
|
||||
// }
|
||||
}
|
||||
|
||||
// 기관정보 스키마
|
||||
private void processDatabases(Connection conn, DatabaseInfoVO dbConnInfoVO) {
|
||||
String selectDbSql = "SELECT SCHEMA_NAME AS `Database` FROM information_schema.SCHEMATA WHERE SCHEMA_NAME NOT IN ('information_schema', 'mysql', 'performance_schema', 'sys')";
|
||||
try (Statement stmt = conn.createStatement(); ResultSet databases = stmt.executeQuery(selectDbSql)) {
|
||||
@ -111,7 +117,7 @@ public class MySQLSchemaViewerImpl implements DatabaseSchemaViewer {
|
||||
if (insertDbList > 0) {
|
||||
dbVo.setSysId(dbConnInfoVO.getSysId());
|
||||
tableProcess(conn, dbVo);
|
||||
comtProcess(conn, dbVo);
|
||||
|
||||
log.info("Database info successfully inserted for: {}", dbNm);
|
||||
} else {
|
||||
log.warn("No database info was inserted for: {}", dbNm);
|
||||
@ -123,7 +129,7 @@ public class MySQLSchemaViewerImpl implements DatabaseSchemaViewer {
|
||||
}
|
||||
|
||||
|
||||
//psh
|
||||
// 기관정보 테이블+컬럼
|
||||
private void tableProcess(Connection conn, DatabaseInfoVO dbVo) throws SQLException {
|
||||
// String selectTableSql = "SELECT TABLE_NAME AS `TableName` FROM information_schema.tables WHERE table_schema="+dbNm+"and table_type=`BASE TABLE`";
|
||||
DatabaseMetaData metaData = conn.getMetaData();
|
||||
@ -144,6 +150,7 @@ public class MySQLSchemaViewerImpl implements DatabaseSchemaViewer {
|
||||
tbVo.setTableNm(tbNm);
|
||||
log.info("TableName :", tbNm);
|
||||
int insertTbCnt = dbService.insertDbTblInfo(tbVo);
|
||||
comtProcess(conn, dbVo, tbVo);
|
||||
|
||||
if (insertTbCnt > 0) {
|
||||
log.info("TABLE info successfully inserted for: {}", tbNm);
|
||||
@ -185,69 +192,70 @@ public class MySQLSchemaViewerImpl implements DatabaseSchemaViewer {
|
||||
|
||||
|
||||
|
||||
//psh
|
||||
private void comtProcess(Connection conn, DatabaseInfoVO dbVo) throws SQLException {
|
||||
DatabaseMetaData metaData = conn.getMetaData();
|
||||
try (ResultSet tables = metaData.getTables(null, dbVo.getDbNm(), null, new String[]{"TABLE"})){
|
||||
|
||||
// 원천데이터 추출 정보 저장
|
||||
// 원천데이터 처리
|
||||
private void comtProcess(Connection conn, DatabaseInfoVO dbVo, TableInfoVO tbVo) throws SQLException {
|
||||
try {
|
||||
// [ comtextrtblinfo ] 원천데이터 추출 정보 저장
|
||||
ComtExtrtVO comExVo = new ComtExtrtVO();
|
||||
comExVo.setSysId(dbVo.getSysId());
|
||||
int extCnt = comtsrcdataService.insertComtExtrtInfo(comExVo);
|
||||
|
||||
if (extCnt > 0) {
|
||||
int checkSysId = dbVo.getSysId();
|
||||
log.info("comtExInfo insert success : ", checkSysId);
|
||||
|
||||
String dbNm = dbVo.getDbNm();
|
||||
String tbNm = tbVo.getTableNm();
|
||||
|
||||
while (tables.next()) {
|
||||
String tbNm = tables.getString("TABLE_NAME");
|
||||
if(tbNm.equals("sys_config")){
|
||||
break;
|
||||
}
|
||||
// [ comtsrcdatameta_new ] 원천테이블의 테이블 정보 저장
|
||||
ComtTableVO comtTableVo = new ComtTableVO();
|
||||
comtTableVo.setExtrId(comExVo.getExtrId());
|
||||
comtTableVo.setSrcDataTblNm(tbNm);
|
||||
int insertTbCnt = comtsrcdataService.insertComtTabledataInfo(comtTableVo);
|
||||
|
||||
// 원천데이터 저장
|
||||
if (insertTbCnt > 0) {
|
||||
String selectTableSql = "SELECT * FROM "+dbNm+"."+tbNm;
|
||||
Statement stmt = conn.createStatement();
|
||||
ResultSet datas = stmt.executeQuery(selectTableSql);
|
||||
ResultSetMetaData rsmd = datas.getMetaData();
|
||||
int colCnt = rsmd.getColumnCount();
|
||||
JSONObject obj = new JSONObject();
|
||||
int insertDataCnt = 0;
|
||||
int insertColCnt = 0;
|
||||
|
||||
// [ comtsrcdatacol_new ] 원천테이블의 컬럼 정보 저장
|
||||
for (int i=0; i<colCnt; i++) {
|
||||
ComtColVO colVo = new ComtColVO();
|
||||
colVo.setSrcDataColNm(rsmd.getColumnLabel(i+1));
|
||||
colVo.setSrcDataMetaId(comtTableVo.getSrcDataMetaId());
|
||||
insertColCnt = comtsrcdataService.insertComtSrcCol(colVo);
|
||||
}
|
||||
|
||||
// [ comtsrcdata_new ] 원천데이터 저장
|
||||
if(insertColCnt > 0){
|
||||
while (datas.next()){
|
||||
int i = 0;
|
||||
ComtsrcdataVO comSrcVo = new ComtsrcdataVO();
|
||||
comSrcVo.setExtrId(comExVo.getExtrId());
|
||||
String value = datas.getObject(i).toString();
|
||||
// comSrcVo.setSrcDataVl();
|
||||
Map<String, String> dataVlMap = new HashMap<>();
|
||||
for (int i=0; i<colCnt; i++) {
|
||||
String columnName = rsmd.getColumnLabel(i+1);
|
||||
String value = datas.getString(i+1);
|
||||
dataVlMap.put(columnName, value);
|
||||
}
|
||||
obj.putAll(dataVlMap);
|
||||
ComtsrcdataVO srcVo = new ComtsrcdataVO();
|
||||
srcVo.setSrcDataVl(obj.toString());
|
||||
srcVo.setSrcDataMetaId(comtTableVo.getSrcDataMetaId());
|
||||
insertDataCnt = comtsrcdataService.insertComtSrcdata(srcVo);
|
||||
|
||||
int insertTbCnt = comtsrcdataService.insertComtSrcdataInfo(comSrcVo);
|
||||
i++;
|
||||
if(insertDataCnt > 0){
|
||||
log.info("all data insert SUCCESS!!!!!!");
|
||||
}else{
|
||||
log.warn("No DATA was inserted for: {}", tbNm);
|
||||
}
|
||||
}
|
||||
}else{
|
||||
log.warn("No COLUMN info was inserted for: {}", tbNm);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// if (insertTbCnt > 0) {
|
||||
//
|
||||
// log.info("COMTSRCDATA successfully inserted for: {}", tbNm);
|
||||
// ResultSet columns = metaData.getColumns(null, dbVo.getDbNm(), tbNm, "%");
|
||||
// ResultSet pk = metaData.getPrimaryKeys(null, dbVo.getDbNm(), tbNm);
|
||||
|
||||
// 컬럼
|
||||
// while (columns.next()) {
|
||||
// String columnName = columns.getString(4);
|
||||
// String columnType = columns.getString(6);
|
||||
// boolean nullable = columns.getInt(11) == 0 ? false : true;;
|
||||
//
|
||||
// ColumnInfoVO colVo = new ColumnInfoVO();
|
||||
// dbService.insertTblColInfo(colVo);
|
||||
// System.out.println("\tColumn: " + columnName+ " (" + columnType + ")");
|
||||
// }
|
||||
|
||||
// } else {
|
||||
// log.warn("No TABLE info was inserted for: {}", tbNm);
|
||||
// }
|
||||
|
||||
}else{
|
||||
log.warn("No Table info was inserted for: {}", tbNm);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
|
||||
@ -26,35 +26,31 @@
|
||||
(#{extrId}, CURRENT_TIMESTAMP, #{sysId})
|
||||
</insert>
|
||||
|
||||
|
||||
<insert id="insertComtSrcdataInfo" parameterType="ComtsrcdataVO">
|
||||
<selectKey resultType="int" keyProperty="srcDataId" order="BEFORE">
|
||||
SELECT nextval('comtsrcdata_extr_tbl_id_seq') as srcDataId
|
||||
</selectKey>
|
||||
insert into comtsrcdata
|
||||
(src_data_id, extr_id, src_data_vl)
|
||||
values
|
||||
(#{srcDataId}, #{extrId}, #{srcDataVl})
|
||||
</insert>
|
||||
|
||||
|
||||
<insert id="insertComtTabledataInfo" parameterType="ComtTableVO">
|
||||
<selectKey resultType="int" keyProperty="srcDataId" order="BEFORE">
|
||||
SELECT nextval('comtsrcdatameta_src_data_meta_id_seq') as srcDataId
|
||||
<selectKey resultType="int" keyProperty="srcDataMetaId" order="BEFORE">
|
||||
SELECT nextval('comtsrcdatameta_new_src_data_meta_id_seq') as srcDataMetaId
|
||||
</selectKey>
|
||||
insert into comtsrcdatameta (src_data_meta_id, src_data_id, src_data_tbl_nm)
|
||||
values (#{srcDataMetaId}, #{srcDataId}, #{srcDataTblNm})
|
||||
insert into comtsrcdatameta_new (src_data_meta_id, extr_id, src_data_tbl_nm)
|
||||
values (#{srcDataMetaId}, #{extrId}, #{srcDataTblNm})
|
||||
</insert>
|
||||
|
||||
<insert id="insertComtSrcdata" parameterType="ComtsrcdataVO">
|
||||
<selectKey resultType="int" keyProperty="srcDataId" order="BEFORE">
|
||||
SELECT nextval('comtsrcdata_extr_tbl_id_seq') as srcDataId
|
||||
SELECT nextval('comtsrcdata_new_src_data_id_seq') as srcDataId
|
||||
</selectKey>
|
||||
insert into comtsrcdata (src_data_id, extr_id, src_data_vl)
|
||||
values (#{srcDataId}, #{extrId}, ( (#{srcDataVl})::jsonb ) )
|
||||
insert into comtsrcdata_new (src_data_id, src_data_meta_id, src_data_vl)
|
||||
values (#{srcDataId}, #{srcDataMetaId}, ( (#{srcDataVl})::jsonb ) )
|
||||
</insert>
|
||||
|
||||
<insert id="insertComtSrcCol" parameterType="ComtColVO">
|
||||
<selectKey resultType="int" keyProperty="srcDataColId" order="BEFORE">
|
||||
SELECT nextval('comtsrcdatacol_new_src_data_col_id_seq') as srcDataColId
|
||||
</selectKey>
|
||||
insert into comtsrcdatacol_new (src_data_col_id, src_data_meta_id, src_data_col_nm)
|
||||
values (#{srcDataColId}, #{srcDataMetaId}, #{srcDataColNm} )
|
||||
</insert>
|
||||
|
||||
<!--sample-->
|
||||
<update id="updateDatasrc" parameterType="ComtsrcdataVO">
|
||||
update comtsrcdata
|
||||
set src_data_vl= ( (#{srcDataVl})::jsonb )
|
||||
|
||||
Loading…
Reference in New Issue
Block a user