使用数据库中的数据在Java中进行排序

时间:2017-04-19 09:25:44

标签: java mysql arrays select jdbc

我正在用java做游戏,我想制作一个适合十个最高分的屏幕。我有一个数据库,我认为最好用数据填充数组。

这是连接到数据库的类的代码:

public Jugador[] buscarDiez() {

    Jugador[] diez = new Jugador[9];
    try {
        orden = conexion.createStatement();
        String sql = "SELECT user, score FROM player ORDER BY score LIMIT 9";
        rs = orden.executeQuery(sql);

        int i = 0;

        while (rs.next()) {
            diez[i].setUser(rs.getString("user"));
            diez[i].setScore(rs.getInt("score"));

            i = i + 1;
        }
    }
}

我可能做错了什么?

2 个答案:

答案 0 :(得分:1)

为什么不创建Object,填充此对象并将其添加到Array中,例如:

public Jugador[] buscarDiez() {

    Jugador[] listDiez = new Jugador[9];//<<---------Array
    try {
        orden = conexion.createStatement();
        String sql = "SELECT user, score FROM player ORDER BY score LIMIT 9";
        rs = orden.executeQuery(sql);

        int i = 0;
        Jugador dier;//<<------------Create your object
        while (rs.next()) {
            dier = new Jugador();//<<------Initialize your object
            diez.setUser(rs.getString("user"));//<<--set attributes
            diez.setScore(rs.getInt("score"));
            listDiez[i] = diez;//<<----------Add your object to your array
            i++;
        }
    }
    return listDiez;//<<------return your array
}

注意 但我建议改用List,它更有用,为什么?
如果你的查询返回少于9,那么你的数组中会得到很多null,而这根本不是练习

答案 1 :(得分:1)

创建新的数组对象

public Jugador[] buscarDiez() {

    Jugador[] diez = new Jugador[9];
    try {
        orden = conexion.createStatement();
        String sql = "SELECT user, score FROM player ORDER BY score LIMIT 9";
        rs = orden.executeQuery(sql);

        int i = 0;

        while (rs.next()) {
            diez[i] = new Jugador();// create new object instance
            diez[i].setUser(rs.getString("user"));
            diez[i].setScore(rs.getInt("score"));

            i = i + 1;
        }
    }
    return diez;
}