2014-05-05 32 views
-1

我使用MySql数据库,并使用eclipse Java和JDBC进行连接。我有一个关于SQL语句的问题。我有一个表和4列是id_desk,id_time,user_name和user_passwords。我想通过使用user_name来获取所有信息(所有列信息)。你可以得到一行的所有信息吗?关于Java中的MySql语句Eclipse

+1

这里... http://www.vogella.com/tutorials/MySQLJava/article.html – Hirak

+0

调查PreparedStatements。 –

回答

0

你想使用将类似于查询:

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

存储纯用户密码在数据库中也不是很安全,你几乎总是要编码它们以某种方式(有无数的资源在线与如何做到这一点,为什么,谷歌他们的例子)。

+0

我觉得比较简单的是'Select * FROM表 WHERE user_name =(无论你的用户名是什么)' –

+1

更简单,是的,但我更喜欢不使用通配符。如果以后要更改表格以使其具有不同的列,则可能会影响使用通配符查询的任何内容,而通过这种方式,您将知道该顺序以及返回的内容 –

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(); 
      } 

     }