/* * 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"; } }