【问题标题】:Column result doesn't as be expected列结果不符合预期
【发布时间】:2019-10-05 14:31:01
【问题描述】:

这里我有一个查询来连接两个表并使用这个查询将它合并成一个结果

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)

如何做到这一点?感谢回复

【问题讨论】:

  • 当我选择“jenis”列时:正如您的输出所示,确实没有这样的列。不过,有一个名为“kd_jenis”。
  • 拨打resultSet.getString("kd_jenis")会发生什么?
  • 您为什么期望得到预期的结果?两行匹配。那是什么item 1
  • 确实是@JBNizet,但我认为“jenis”列也包含在结果中。
  • @guleryuz 。返回“J_1”。当我切换到“jenis”时,它会抛出“找不到”列“jenis”

标签: java mysql resultset


【解决方案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)

感谢任何帮助我的人:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多