如何从java中的方法中获取mysql数据库中的数据?

时间:2012-11-16 06:48:43

标签: java jdbc

我在“mysql”中的某个模式中有一个代表表,该表有一个名为“userName”的列。现在登录到程序,我需要从框架中的文本字段获取数据,并检查该列中的所有用户名(用户名列有多行!),如果用户名jtextfield中的文本等于其中一行,然后登录将被允许! 我需要一种方法来做到这一点。我写了一些东西,但它不起作用! 在这里:

`public static boolean checkRep(String user, String pass) {
        String sql = "SELECT * FROM representative";
        Connection con = DBManager.getConnection();
        PreparedStatement st = null;
        try {
            st = con.prepareStatement(sql);
            ResultSet rs = st.executeQuery(sql);
            while (rs.next()){
                if(user == rs.getString("passWord")){
                    System.out.println("Right");
                }
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return true;
    }`

3 个答案:

答案 0 :(得分:2)

我认为你应该试试这个

....
   if (user.equals(rs.getString("passWord"))
....

答案 1 :(得分:2)

您的查询应该更加具体,例如"SELECT * FROM representative where user=? and passWord =?";prepareStatement中应设置这些动态值

st = con.prepareStatement(sql);
st.setString(1,user);
st.setString(2,pass);

你需要检查结果,如 -

 //no while
if(rs.next()){
     System.out.println("user found in db");
     return true;
}

答案 2 :(得分:0)

问题在于使用equals方法检查if.Always检查字符串中的字符串相等性。 ==运算符检查两个引用变量是否指向同一个对象。它检查两个参考变量是否相同。 equals方法检查两个对象被认为是有意义的相等。

if(user == rs.getString("passWord")){

should be

if(user.equals(rs.getString("passWord"))){