Java JDBC 程序在从表中获取特定行时抛出 SQL 语法错误

Posted

技术标签:

【中文标题】Java JDBC 程序在从表中获取特定行时抛出 SQL 语法错误【英文标题】:Java JDBC program throwing SQL syntax error when fetching particular rows from a table 【发布时间】:2019-03-25 23:33:21 【问题描述】:

我有一个名为“飞机”的数据库,其中有一个名为 timetable 的表。时间表有一个文本类型的fromcity列

                    Connection conn0=null;
                    PreparedStatement st0=null;
                    String sql0="SELECT FROM timetable where fromcity=?";

                try
                        Class.forName("com.mysql.jdbc.Driver");
                        conn0=DriverManager.getConnection(DB_URL,USER,PASS);
                        st0=conn0.prepareStatement(sql0);
                        st0.setString(1,city[i]);
                        ResultSet rs0=st0.executeQuery();

                        if(rs0.next())
                        
                            System.out.println("flight exists");
                        

                        else
                        
                            System.out.println("fight does not exist");
                        


                    
                    catch(Exception et)
                    
                        System.out.println("Error"+et.getMessage());
                    

我收到错误:

为什么会出现这个错误

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'FROM timetable where fromcity='1'' at line 1

【问题讨论】:

【参考方案1】:

您忘记在查询中写入列名。

做吧,

SELECT * FROM timetable where fromcity=?"

而不是,

SELECT FROM timetable where fromcity=?"

【讨论】:

以上是关于Java JDBC 程序在从表中获取特定行时抛出 SQL 语法错误的主要内容,如果未能解决你的问题,请参考以下文章

从表中获取特定用户的所有行以及总和

如何通过 Spack JDBC 选择特定列?

使用 MySQL 从表中获取特定列表,然后获取剩余的列表

根据特定条件从表中获取已插入数据的插入查询

Postgres 选择查询在使用 JDBC 时运行缓慢,但在从同一服务器在 PSQL 中运行时快速

从表视图中删除特定行