有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java列结果与预期不符

在这里,我使用这个查询将两个表连接起来,并将其合并为一个结果

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) 个答案

  1. # 1 楼答案

    显然,由于@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)
    

    感谢所有帮助我的人:)