Java JDBC 对要求仅返回特定行详细信息的 SQL 查询抛出错误

标签 java mysql jdbc xampp

我有一个名为“airplane”的数据库,其中有一个名为 booking 的表。 预订表具有电话(int类型),名称(文本类型),地址(文本类型),城市(文本类型)目的地(文本类型),日期(文本类型)列。我只想获取电话列的值或数据等于用户输入的电话号码的行。我为它编写了以下代码。对于上下文,我使用 java 使用 JDBC

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'

我做错了什么?

最佳答案

试试这个:

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

处理此问题的更好方法是使用 PreparedStatement

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

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

statement.setInt(1, cell);

关于Java JDBC 对要求仅返回特定行详细信息的 SQL 查询抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52912962/

相关文章:

java - 对互联网的意向

java - 在 Android 中更改自定义 View 的宽度和高度

java - Hive 爆炸功能

mysql - 将日期从第 1 列移动到第 2 列,并将第 1 列设置为空

java - 如何将 Derby 数据库与 Servlet 连接?

java - 我可以在 JavaDB 上格式化 TIME 数据类型吗?

java - 无法使用 baseadapter 解析带有 listview 的构造函数适配器

mysql - Rails 数据库连接池的工作原理

mysql - 加入/排序运行缓慢

java - 准备好的语句中的 Neo4j-jdbc hashmap 或 json