【问题标题】:About a MySql statement in Java Eclipse关于 Java Eclipse 中的一条 MySql 语句
【发布时间】:2025-12-26 23:55:12
【问题描述】:

我使用 MySql 数据库,我使用 eclipse Java 和 JDBC 连接。我有一个关于 SQL 语句的问题。我有一个表和 4 列,它们是 id_desk、id_time、user_name 和 user_passwords。我想使用 user_name 获取所有信息(所有列信息)。如何获取一行的所有信息?

【问题讨论】:

标签: java mysql eclipse jdbc


【解决方案1】:
Connection dbConnection = null;
PreparedStatement preparedStatement = null;

//Put your table name instead of TABLE     
String query = "SELECT id_desk, id_time, user_name, user_passwords FROM TABLE WHERE user_name = ?";

try {
  //Provide your Database credentials
    dbConnection = DriverManager.getConnection(DB_CONNECTION, DB_USER,DB_PASSWORD);
    preparedStatement = dbConnection.prepareStatement(query);
  //Replace somename with whatever username you querying
    preparedStatement.setString(1,"somename");

    // execute select SQL stetement
    ResultSet rs = preparedStatement.executeQuery();

while (rs.next()) {

    //Here you will get the result of the query, ONE row at a time.

            }

        } catch (SQLException e) {

            System.out.println(e.getMessage());

        } finally {
     //Cleanup code
            if (preparedStatement != null) {
                preparedStatement.close();
            }

            if (dbConnection != null) {
                dbConnection.close();
            }

        }

【讨论】:

    【解决方案2】:

    您要使用的查询类似于:

    Select id_desk, id_time, user_name, user_passwords FROM table 
    WHERE user_name = (whatever your username is)
    

    将纯用户密码存储在数据库中并不是很安全,您几乎总是希望以某种方式对其进行编码(网上有无数资源以及如何做到这一点以及为什么这样做的示例,请在 Google 上搜索)。

    【讨论】:

    • 我认为更简单的是Select * FROM table WHERE user_name = (whatever your username is)
    • 更简单,是的,但我不喜欢使用通配符。如果您稍后要更改表以具有不同的列,则可能会影响使用通配符查询的任何内容,而这样您就知道顺序和返回的内容