Результат столбца не такой, как ожидалось - PullRequest
0 голосов
/ 18 мая 2019

Здесь у меня есть запрос, чтобы объединить две таблицы и объединить их в один результат, используя этот запрос

String query = "SELECT * FROM tb_barang RIGHT JOIN tb_jenis ON tb_barang.kd_jenis = tb_jenis.kd_jenis ";

А вот мои структуры таблиц для обеих таблиц

Таблица "tb_barang"
https://i.stack.imgur.com/6OpeC.png

И таблица "tb_jenis"
https://i.stack.imgur.com/UhLty.png

Я ожидал, что результат будет такой
https://i.stack.imgur.com/zhtHx.png

Однако,когда я беру столбец "jenis", Java бросает в него исключение, потому что либо вне диапазона, либо столбец не найден.

Затем я проверяю, существует ли столбец или нет, используя:

ResultSet resTabel = new mysqlDriver().getKolomBarangList();
            ResultSetMetaData metaData = resTabel.getMetaData();
            int colCount = metaData.getColumnCount();
            if (resTabel.next()) {
        for (int i = 1; i <= colCount; i++) {
        System.out.println("Col(" + i + ") '" + metaData.getColumnName(i) + "' value:" + resTabel.getString(i));
    }

Вывод:

Col(1) 'kd_barang' value:BAR0000
Col(2) 'nama_barang' value:A
Col(3) 'kd_jenis' value:J_1
Col(4) 'jumlah_barang' value:1
Col(5) 'harga_satuan' value:1
BUILD SUCCESSFUL (total time: 35 seconds)

Как этого добиться?Спасибо за ответ

1 Ответ

0 голосов
/ 18 мая 2019

Видимо, я пропустил ввод имени метода благодаря @forpas. getKolomBarangList() ссылается на имя поля таблицы tb_barang и не выполняет предложения "JOIN"

protected ResultSet getBarangList()throws SQLException, NullPointerException, ClassNotFoundException{
        String query = "SELECT * FROM tb_barang RIGHT JOIN tb_jenis ON tb_barang.kd_jenis = tb_jenis.kd_jenis ";
        if(resForListBarang == null){
            resForListBarang = alwaysDoResultSet(query);
        }
        return resForListBarang;
    }

    protected ResultSet getKolomBarangList() throws SQLException, Exception{
        String query = "SELECT * FROM tb_barang";
        if(getBarangKolom == null){
            getBarangKolom = alwaysDoResultSet(query);
        }
        return getBarangKolom;
    }

И выход для getBarangList() ожидался как конечный результат

Col(1) 'kd_barang' value:BAR0000
Col(2) 'nama_barang' value:A
Col(3) 'kd_jenis' value:J_1
Col(4) 'jumlah_barang' value:1
Col(5) 'harga_satuan' value:1
Col(6) 'kd_jenis' value:J_1
Col(7) 'jenis' value:Pakan Hewan
BUILD SUCCESSFUL (total time: 21 seconds)

Спасибо всем, кто мне помогает:)

...