首页 > 解决方案 > 简单查询中的 JavaFX 列名不明确错误

问题描述

不明确的列名错误是简单查询:

 String SQL = "SELECT divisions.division_id, divisions.volume_id, divisions.division_head_count, divisions.division_heading, divisions.messages_bounds FROM divisions";
            ResultSet resultSet = null;
            try {
                resultSet = connection.createStatement().executeQuery(SQL);
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }

            if (resultSet != null) {

                int count = 1;

                while (true) {
                    try {
                        if (!resultSet.next()) break;
                    } catch (SQLException throwables) {
                        throwables.printStackTrace();
                    }


                    try {
                        int division_id = resultSet.getInt("division_id");
                        int volume_id = resultSet.getInt("volume_id");
                        String division_heading = resultSet.getString("division_heading");
                        int division_head_count = resultSet.getInt("division_head_count");
                        String messages = resultSet.getString("messages_bounds");

                        division_id_list.add("" + division_id);
                        volume_id_list.add("" + volume_id);
                        division_heading_list.add(division_head_count + ") " + division_heading+" - ("+ messages+")");
                        totalHadis_list.add(messages);


                    } catch (SQLException throwables) {
                        throwables.printStackTrace();
                    }
                }

并发生以下错误:

java.sql.SQLException: ambiguous column: 'division_id'
    at org.sqlite.RS.findColumn(RS.java:108)
    at org.sqlite.RS.getInt(RS.java:228)
    at sample.HadisReading.showHadisDivision(HadisReading.java:282)
    at sample.HadisReading$3.handle(HadisReading.java:200)
    at sample.HadisReading$3.handle(HadisReading.java:190)
    

我到处搜索和谷歌,但没有找到富有成效的解决方案。我已经知道这个问题是由于多个表中的列名相同而发生的。但是,我尝试了很多答案,但没有运气。这些答案描述了关于表连接或其他不适合我情况的内容。就我而言,这是一个简单的查询。

附注:我在同一个列名中有多个表:“division_id”。

我怎样才能摆脱这个问题?任何想法 ?

标签: javasqlsqlite

解决方案


最后我找到了解决方法。由于这个异常来自多个表中的相同列名,所以,我的诀窍是,为了从列中获取字符串,除了列标签之外,我还使用了列索引:

我用过 :

int division_id = resultSet.getInt(1);

代替 :

int division_id = resultSet.getInt("division_id");

错误消失了,Alhamdulillah。


推荐阅读