Kenmegne
7 days ago 23a46b4be35277e06ec89f48730eeb694e686be8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/*
 * 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";
    }
}