【问题标题】:How to get information from my SQL Databse如何从 mySQL 数据库中获取信息
【发布时间】:2019-10-26 12:19:10
【问题描述】:

我尝试为artikelID 获取destination(zielort),我将从我的GUI 中获取。不幸的是,我总是收到错误消息

com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: 未知列 'where 子句'中的'id'

在我的数据库中有一个 ID=1234 的 ArtikelID。在我的测试类中,我尝试获取ArtikelID 1234 的destination(zielort)。结果,我应该得到E1.R10.D2,,但我收到了错误消息。

希望你能帮我找出我的错误。

**Test Class:**
public static void main(String[] args) {
        // TODO Auto-generated method stub
        //DBConnect connect = new DBConnect();
        //String s = connect.getLoginDaten(1);
        //System.out.print(s);


    DBConnect connect = new DBConnect();
    String s= connect.getZielort(1234);
    System.out.print(s);
}


**DB-Connect Class:**
public String getZielort(int arikel_ID) {
        String zielort="";
        try {
            String query = "select zielort from warenliste where id="+arikel_ID;
            rs= st.executeQuery(query);
            while (rs.next()) {
                zielort = rs.getString("zielort");  
            }

        }
        catch(Exception e) {
            System.out.println(e);
        }
        return zielort;
    }

    public int getArtikel(int arikel_ID) {
        int artikelid=0;
        try {
            String query = "select Artikel_ID from warenliste where id="+arikel_ID;
            rs= st.executeQuery(query);
            while (rs.next()) {
                artikelid = rs.getInt("Artikel_ID");    
            }

        }
        catch(Exception e) {
            System.out.println(e);
        }
        return artikelid;
    }

【问题讨论】:

    标签: java mysql sql


    【解决方案1】:

    异常意味着您的表没有名为id 的列。根据您的查询

    "select Artikel_ID from warenliste where id="+arikel_ID;
    

    我推断该库称为Artikel_ID,因此您的查询应如下所示:

    "select Artikel_ID from warenliste where Artikel_ID="+arikel_ID;
    

    当然,您可能有不同的架构。查看您的数据库,了解表 warenliste 的列是如何命名的,然后将 Artikel_ID 替换为实际的列名。

    顺便说一句,如果您正在使用用户输入,出于安全原因(如 SQL 注入),请查看PreparedStatement

    【讨论】:

    • 出于安全原因,您甚至不应该使用 MySQL 用户名和密码,用 Java 硬编码,可以非常容易地反编译。但是您应该使用带有套接字的网关或通过 REST/SOAP 访问 Web 服务/XML 或 JSON RPC/GrapQL 协议 ...
    猜你喜欢
    • 2014-07-19
    • 2012-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-20
    • 1970-01-01
    • 2012-10-31
    相关资源
    最近更新 更多