## 难点2:数据访问层的内容如何在其他类中使用 1: public List<User> getAllUsers() throws ClassNotFoundException {//创建一个User的集合,并抛出ClassNotFoundException异常 List<User> users = new ArrayList<>();//集合初始化 Class.forName(driver);//注册驱动 try (Connection conn = DriverManager.getConnection(url,username,password);//获取数据库连接对象 Statement stmt = conn.createStatement();//获取执行sql的对象,Statement,创建Statement对象 ResultSet rs = stmt.executeQuery(sql)) { //执行sql while(rs.next()){//遍历rs集合中的内容 User user = new User();//创建一个User对象 user.setUsername(rs.getString("username"));//user对象设置该对象的用户id,括号中为从数据库中得到账号数据信息 user.setPassword(rs.getString("password"));//user对象设置该对象的密码,括号中为数据库中得到的密码数据信息 users.add(user);//将该user对象添加到users集合中 } } catch (SQLException e) {//捕获异常 e.printStackTrace(); } catch (Exception e) {//捕获异常 throw new RuntimeException(e); } return users;//返回users集合 } 2: public class User { private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } } 3: LoginDao log = new LoginDao();//实例化LoginDao类 java.util.List<User> users = null;//创建list集合//----======》很重要的地方,很难搞,无数次失败才出现这个的成功 try { users = log.getAllUsers();//users中存有所有的数据库表中的用户账号密码 } catch (ClassNotFoundException ex) {//捕获异常 throw new RuntimeException(ex);//异常处理 } for(User user : users){ //遍历循环User集合 //System.out.println("user:" + user.getUsername() + ",pass:" + user.getPassword());//显示数据库中所有账号密码 if(user.getUsername().equals(getAccount())){//如果用户输入的账号与数据库中的账号一样,进入此if if(user.getPassword().equals(getPassword())){//如果用户输入的密码与数据库中的密码一样,进入此if System.out.println("终于登录成功"); } }
DAO中的数据如何传到其他类中使用
最新推荐文章于 2024-07-12 16:34:24 发布