/*
|
* 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.fdxcommons.tools.database.queries;
|
|
import com.megatim.fdxcommons.model.enumeration.StatutDataProduction;
|
import com.megatim.fdxcommons.tools.database.tables.appcolumns.DataProductionIdColumnDefinition;
|
import java.sql.Connection;
|
import java.sql.PreparedStatement;
|
import java.sql.ResultSet;
|
import java.sql.SQLException;
|
|
/**
|
*
|
* @author ASUS
|
*/
|
public class MaxDataProductionIdQuery {
|
|
private final String tableName;
|
private final Connection connection;
|
|
public MaxDataProductionIdQuery(String tableName, Connection connection) {
|
this.tableName = tableName;
|
this.connection = connection;
|
}
|
|
public Long execute() throws SQLException {
|
Long max = 0L;
|
|
try ( PreparedStatement statement = connection.prepareStatement(maxQueryString())) {
|
ResultSet resultSet = statement.executeQuery();
|
|
if (resultSet.next()) {
|
max = resultSet.getLong(1);
|
}
|
}
|
return max;
|
}
|
|
private String maxQueryString() {
|
return "SELECT id FROM dataproduction"
|
+ " WHERE statutdataproduction IN('" + StatutDataProduction.A_CONSOMMER + "', '" + StatutDataProduction.CONSOMME + "')"
|
+ " AND id IN (SELECT DISTINCT " + new DataProductionIdColumnDefinition().name() + " FROM " + tableName + ")"
|
+ " ORDER BY id DESC";
|
}
|
}
|