当前位置: 首页 > 知识库问答 >
问题:

Java JDBC抛出一个SQL查询错误,要求只返回特定行的详细信息

贺彬
2023-03-14

我有一个名为“飞机”的数据库,里面有一个名为“预订”的表。预订表包含电话(int类型)、姓名(text类型)、地址(text类型)、城市(text类型)、目的地(text类型)、日期(text类型)等列。我想只获取其电话列的值或数据等于用户输入的电话号码的行。我为它写了下面的代码。对于上下文,我使用JDBC使用java

static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/airplane";
static final String USER = "root";
static final String PASS = "";

Connection conn = null;



try
  {
    System.out.println("enter cell no");
    int cell=sc.nextInt();
    conn = DriverManager.getConnection(DB_URL, USER, PASS);
    System.out.println("Connected database successfully...");

   // My SQL SELECT query.

    String query = "SELECT * FROM `booking` where phone=cell";

   // creating the java statement
   Statement st = conn.createStatement();

   /** executing the query, and getting a java resultset of all rows whose phone
    column has the value equal to one entered by user and stored by me in 
  int variable cell**/

   ResultSet rs = st.executeQuery(query);

         //iterate through the java resultset
         while (rs.next())
           {
            int Phone = rs.getInt("phone");
            String Name = rs.getString("name");
            String Address = rs.getString("address");
            String City = rs.getString("city");
            String Destination = rs.getString("destination");
            String Date = rs.getString("date");

// print the results
           System.out.format("%d, %s, %s, %s, %s, %s\n", Phone, Name, Address, City, Destination, Date);
                       }

                        st.close();
                    }
                    catch (Exception e)
                    {
                        System.err.println("Got an exception! ");
                        System.err.println(e.getMessage());
                    }

我收到错误:

Got an exception! 
Unknown column 'cell' in 'where clause'

我做错了什么?

共有2个答案

周翰
2023-03-14

你会看到它要跑了

string query = " SELECT * FROM < code > booking where phone = " " \ " % s \ " ";

Query=String.format(查询,单元格);

干亮
2023-03-14

试试这个:

String query = "SELECT * FROM `booking` where phone=" + cell;

处理此问题的更好方法是使用准备语句

在这种情况下,查询如下所示:

String query = "SELECT * FROM `booking` where phone=?"

statement.setInt(1, cell);
 类似资料:
  • 问题内容: 当我尝试运行以下查询时出现错误: 是什么导致此错误? 问题答案: 将一个返回多列的子查询放在列表中,然后从中选择。 首先,相关子查询将是一个坏主意。但是,您的查询甚至没有关联,但是 没有关联 (没有链接到外部查询),并且似乎返回了多行。这导致产生笛卡尔积的(可能非常昂贵且荒谬的)交叉连接,可能不是您的(秘密)意图。 看起来您确实想要: 两者也都是毫无意义的。WHERE条件将一个强制为a

  • 问题内容: 桌子: 我的查询: 我收到“ MySQL子查询返回多个行”错误。 我知道此查询可以使用以下查询的解决方法: 然后使用php循环遍历结果并执行以下查询以获取和回显它: 但是我认为可能会有更好的解决方案? 问题答案: 简单的解决方法是在子查询中添加一个子句: 一个更好的选择(就性能而言)是使用联接:

  • 问题内容: 此查询有什么问题? 我有错误 ORA-01427:单行子查询返回多个行 01427。00000-“单行子查询返回多个行” 问题答案: 这是您的查询: 这样使用的子查询称为 标量子查询 。可以在可以使用标量值(即单个值,例如数字或字符串)的地方使用此类子查询。 标量子查询必须满足两个条件: 它最多返回一行。 它返回一列。 您的解决方案很简单,使用以下命令: 或者,在Oracle 12C中

  • 我正在编写一个方法来查找存储在txt文件中的特定ID。 这些细节被分配给一个名为arrayList的list,如果查找字符串与list中存储的数据匹配,那么它将读取id、firstname、surname(即txt文件的整行),然后创建另一个类配置文件的实例。 然后,我想将这个查找数据添加到一个名为lookup的新arrayList中,然后输出它。我有下面的方法,但是,它不工作,只是跳到我的els

  • 问题内容: 以下查询应返回从动漫中扮演角色的人物的姓名。但我收到以下错误: Blockquote ORA-01427:单行子查询返回多个行 提前致谢! 问题答案: 代替 使用 查询中有5个条件需要更改。 UPD 另外,您的查询等同于

  • 问题内容: 简短版本: 在启用AJAX的WCF服务中引发异常时(除了仅打开闸门并将所有异常详细信息发送回去),是否有建议的方法将错误详细信息返回给客户端? 长版: 我有一个相对简单的启用AJAX的WCF服务,可以使用默认服务代理从客户端调用该服务。我在下面提供了代码段,但我不认为代码本身有什么问题。 我的问题是,如果我在服务中引发异常,则返回给客户端的错误对象总是通用的: 理想情况下,我想根据出了