Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java sql用户类_Java_Sql_Jdbc - Fatal编程技术网

Java sql用户类

Java sql用户类,java,sql,jdbc,Java,Sql,Jdbc,可能重复: 看看我的代码。怎么了?输出为“未找到用户” package it.unitn.ing.guide; 导入java.sql.Connection; 导入java.sql.DriverManager; 导入java.sql.ResultSet; 导入java.sql.Statement; 导入java.util.ArrayList; 公共类登录{ 私有静态语句stm=null; 私有静态结果集rs=null; 私有静态连接con=null; 私有静态int i; 私人it.unitn.

可能重复:

看看我的代码。怎么了?输出为“未找到用户”

package it.unitn.ing.guide;
导入java.sql.Connection;
导入java.sql.DriverManager;
导入java.sql.ResultSet;
导入java.sql.Statement;
导入java.util.ArrayList;
公共类登录{
私有静态语句stm=null;
私有静态结果集rs=null;
私有静态连接con=null;
私有静态int i;
私人it.unitn.ing.guide.User;
私有用户集;
公共用户身份验证(字符串电子邮件、字符串密码、int i){
试一试{
ArrayList用户_set=新建ArrayList();
con=DriverManager.getConnection(“jdbc:mysql://localhost/mydb“,”根“,”根“);
stm=con.createStatement();
rs=stm.executeQuery(“从用户、角色中选择*(User.id=Role.id)和(User.email='“+email+”)”;
while(rs.next()){
while(rs.next()){
用户=新用户();
user.setAddress(rs.getString(“”);
user.setCountry(rs.getString(“”);
user.setCreatedBy(rs.getString(“”);
user.setEMail(rs.getString(“”);
user.setId(rs.getInt(“”);
user.setIsLocked(rs.getString(“”);
user.setLastLoginDate(rs.getDate(“”);
user.setName(rs.getString(“”);
user.setPassword(rs.getString(“”);
user.setPasswordFormat(rs.getString(“”);
user.setPasswordFormat(rs.getString(“”);
user.setPasswordSalt(rs.getString(“”);
user.setPhoneNumber(rs.getInt(“”);
user.setPhoneNumberNull(rs.getBoolean(“”);
user.setRegistrationDate(rs.getDate(“”);
user.setRoleId(rs.getInt(“”);
user.setUserName(rs.getString(“”);
用户设置添加(用户);
}
}
}catch(异常sqlEx){
System.out.println(“sqlexecuteException:+sqlEx.toString());
}
返回用户设置;
}
公共静态void main(字符串[]args)引发异常{
LoginDao LoginDao=新LoginDao();
User User=loginDao.authentication(“rashed”,“rashed”,i);
如果(用户!=null){
System.out.println(user.getId());
}否则{
System.out.println(“未找到用户”);
}
}
}

好吧,假设您的查询是正确的,并且您的表中只有一个用户对应于指定的电子邮件,您将得到一个返回的结果,但您将使用双while循环跳过它。删除最外层的while循环,它应该可以工作。

您的authenticate方法应该返回用户的ArrayList,而您主要是将其分配给单个用户对象。
从authenticate方法返回的用户_集是私有实例变量user_集,该变量为NULL

这段代码甚至没有编译,这也让人怀疑。我有一个相同的java用户类和jdbc用户类命名冲突。那么我如何解决呢?要么使用完全限定路径(包括包名),比如foo.bar.User,要么必须更改类的名称之一,我必须更改哪个类名?您可以更改自定义java用户类,或者使用完全限定路径,比如my.package.User User=new my.package.User();我是这样工作的,但不幸的是结果是一样的。。。
package it.unitn.ing.guide;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;

public class LoginDao {
    private static Statement stm = null;
    private static ResultSet rs = null;
    private static Connection con = null;
    private static int i;
    private it.unitn.ing.guide.User user;
    private User user_set;

    public User authenctication(String eMail, String password, int i) {
        try {
            ArrayList<User> user_set = new ArrayList<User>();
            con = DriverManager.getConnection("jdbc:mysql://localhost/mydb", "root", "root");
            stm = con.createStatement();
            rs = stm.executeQuery("SELECT * FROM User,Role WHERE (user.id=role.id) AND (user.email='" + eMail + "')");

            while (rs.next()) {
                while (rs.next()) {
                    User user = new User();
                    user.setAddress(rs.getString(""));
                    user.setCountry(rs.getString(""));
                    user.setCreatedBy(rs.getString(""));
                    user.setEMail(rs.getString(""));
                    user.setId(rs.getInt(""));
                    user.setIsLocked(rs.getString(""));
                    user.setLastLoginDate(rs.getDate(""));
                    user.setName(rs.getString(""));
                    user.setPassword(rs.getString(""));
                    user.setPasswordFormat(rs.getString(""));
                    user.setPasswordFormat(rs.getString(""));
                    user.setPasswordSalt(rs.getString(""));
                    user.setPhoneNumber(rs.getInt(""));
                    user.setPhoneNumberNull(rs.getBoolean(""));
                    user.setRegistrationDate(rs.getDate(""));

                    user.setRoleId(rs.getInt(""));
                    user.setUserName(rs.getString(""));

                    user_set.add(user);
                }
            }
        } catch (Exception sqlEx) {
            System.out.println("sqlexecuteException: " + sqlEx.toString());
        }

        return user_set;
    }

    public static void main(String[] args) throws Exception {
        LoginDao loginDao = new LoginDao();
        User user = loginDao.authenctication("rashed", "rashed", i);
        if (user != null) {
            System.out.println(user.getId());
        } else {
            System.out.println("No user Found");
        }
    }
}