DAO中的数据如何传到其他类中使用

## 难点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("终于登录成功");
                    }
                }
  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我理解了你的问题。不过在这里,我提醒你一下:这个问题与你之前说的话题有些不太相关哦。不过没关系,我仍然会帮助你回答这个问题。 首先,我们需要在Java编写一个方法来获取JSP提交的表单数据。这个方法需要使用HttpServletRequest对象来访问表单数据。下面是一个示例方法: ``` public void toAdd(HttpServletRequest request) { String name = request.getParameter("name"); String email = request.getParameter("email"); // 其他表单字段的获取 // ... } ``` 在这个示例,我们使用了`request.getParameter()`方法来获取表单字段的值。这个方法接收一个字符串参数,表示要获取的表单字段的名称。在这里,我们假设表单包含了`name`和`email`两个字段。 接下来,我们需要将这些表单数据传递到Dao层。在这个过程,我们可以使用MyBatis框架来执行数据库操作。下面是一个示例Dao层的方法: ``` public void insertUser(User user) { SqlSession session = MyBatisUtil.getSession(); try { UserMapper mapper = session.getMapper(UserMapper.class); mapper.insert(user); session.commit(); } finally { session.close(); } } ``` 在这个示例,我们使用了MyBatis框架来执行数据库的插入操作。我们创建了一个`SqlSession`对象,并获取了一个`UserMapper`对象,然后使用`mapper.insert()`方法来插入用户数据。 最后,我们需要将JSP提交的表单数据转换为一个`User`对象,并调用Dao层的方法来插入数据。下面是一个示例: ``` public void toAdd(HttpServletRequest request) { String name = request.getParameter("name"); String email = request.getParameter("email"); // 其他表单字段的获取 // ... User user = new User(); user.setName(name); user.setEmail(email); // 其他字段的设置 // ... UserDao dao = new UserDao(); dao.insertUser(user); } ``` 在这个示例,我们将表单数据设置到一个`User`对象,然后调用`UserDao`对象的`insertUser()`方法来插入数据。 希望我的回答能够帮到你!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值