/*
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
|
*/
|
package com.megatim.queryadhoc.query.insert.impl;
|
|
import com.megatim.queryadhoc.connection.impl.OracleDbConnection;
|
import com.megatim.queryadhoc.contrat.InsertMetaData;
|
import com.megatim.queryadhoc.model.ConnectionParameter;
|
import com.megatim.queryadhoc.model.DbColumnDescription;
|
import com.megatim.queryadhoc.queries.CommonInsertQuery;
|
import com.megatim.queryadhoc.queries.metadata.InsertData;
|
import com.megatim.queryadhoc.queries.metadata.ParsedData;
|
import com.megatim.queryadhoc.query.abstracts.DatabaseInsertQuery;
|
import com.megatim.queryadhoc.query.ifaces.InsertQuery;
|
import com.megatim.queryadhoc.utils.FileDataReader;
|
import java.io.File;
|
import java.sql.Connection;
|
import java.util.Collections;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.stream.Collectors;
|
|
/**
|
*
|
* @author ASUS
|
*/
|
public class OracleInsertQuery extends DatabaseInsertQuery implements InsertQuery {
|
|
public OracleInsertQuery(ConnectionParameter connectionParameter) {
|
super(connectionParameter);
|
}
|
|
@Override
|
protected void insert(Connection connection, String tableName, List<Map<String, Object>> data, List<DbColumnDescription> columnsDescription) throws Exception {
|
Collections.sort(columnsDescription, (DbColumnDescription c1, DbColumnDescription c2) -> c1.getName().compareTo(c2.getName()));
|
|
ParsedData parsedData = new ParsedData(data, columnsDescription, tableName);
|
InsertMetaData insertMetaData = new InsertData(tableName, parsedData);
|
|
List<String> columns = columnsDescription.stream().map(c -> c.getName()).collect(Collectors.toList());
|
|
new CommonInsertQuery(tableName, connection, columns, insertMetaData.rows()).execute();
|
}
|
|
@Override
|
public void execute(String tableName, List<DbColumnDescription> columnsDescription, List<Map<String, Object>> data) throws Exception {
|
execute(new OracleDbConnection(connectionParameter), tableName, data, columnsDescription);
|
}
|
|
@Override
|
public void execute(String tableName, List<DbColumnDescription> columnsDescription, File dataFile) throws Exception {
|
List<Map<String, Object>> data = FileDataReader.readFile(columnsDescription, dataFile);
|
execute(tableName, columnsDescription, data);
|
}
|
|
}
|