Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como verificar (ou mesmo definir) o agrupamento no arquivo mdb (ms access)?


Eu descobri isso. Usei a classe Collator para uma classificação adequada.

Para sua informação, parece com isso (isso é uma classificação de ArrayList):
public class AccessSorter
{ 
final static String letters = "< a, A < b, B < c, C < d, D < e, E < f, F < g, G < h, H < i, I < j, J < k, K < l, L < m, M < n, N < o, O < p, P < q, Q < r, R < s, S < t, T < u, U < v, V < w, W < x, X < y, Y < z, Z";
final static String digits = "< 0 < 1 < 2 < 3 < 4 < 5 < 6 < 7 < 8 < 9";
final static String special = "< '.' < '_'";
private RuleBasedCollator accessCollator;


AccessSorter()
{
    try
    {
        accessCollator = new RuleBasedCollator(special + digits + letters);
    }
    catch (ParseException e)
    {
        e.printStackTrace();
    }
}


SomeComparator getSomeComparator()
{
    return new SomeComparator();
}

class SomeComparator implements Comparator<String[]>
{
    @Override
    public int compare(String[] s1, String[] s2)
    {
       return accessCollator.compare(s1[1], s2[1]);
    }
}

}

exemplo de uso:
Collections.sort(someCollectionOfStringArray, new AccessSorter().getSomeComparator()

E agora você não precisa se preocupar com agrupamentos de acesso ou mySQL. Você mesmo define as regras. Claro que leva algum tempo para ordenar tal array.
Lembre-se, se você precisar ordenar arrays grandes mais de uma vez, considere usar getCollatorKey() para aumentar a eficiência.
Lembre-se também se você precisa adicionar a collator ponto e vírgula, pontos, aspas coloque-os em ' '.
Espero que ajude de alguma forma. Atenciosamente.