27.【任务案例】使用JDBC完成数据的查询与删除

任务目标

通过本次课的学习,能够完成对数据库中数据表的查询与删除操作

实现步骤

1.创建JavaBean

使用上一节的User

2.创建工具类

使用上一节增加操作的工具类

3.创建DAO

使用上一节增加操作创建的DAO,在上一节查询的UsersDao中增加查询方法
3.1查询所有的User对象

 // 查询所有的User对象
        public ArrayList<User> findAll() {
            Connection conn = null;
            PreparedStatement stmt = null;
            ResultSet rs = null;
            ArrayList<User> list = new ArrayList<User>();
            try {
                // 获得数据的连接
                conn = JDBCUtils.getConnection();
                // 发送SQL语句
                String sql = "SELECT * FROM users";
                // 获得Statement对象
                stmt = conn.prepareStatement(sql);
                rs = stmt.executeQuery();
                // 处理结果集
                while (rs.next()) {
                    User user = new User();
                    user.setId(rs.getInt("id"));
                    user.setUsername(rs.getString("name"));
                    user.setPassword(rs.getString("password"));
                    user.setEmail(rs.getString("email"));
                    user.setBirthday(rs.getDate("birthday"));
                    list.add(user);
                }
                return list;
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                JDBCUtils.release(rs, stmt, conn);
            }
            return null;
        }

3.2 根据id查询user对象方法

  // 根据id查找指定的user
    public User find(int id) {
        Connection conn = null;
        PreparedStatement stmt = null;
        ResultSet rs = null;
        try {
            // 获得数据的连接
            conn = JDBCUtils.getConnection();          
            // 发送SQL语句
            String sql = "SELECT * FROM users WHERE id=" + id;
            // 获得Statement对象
            stmt = conn.prepareStatement(sql);
            rs = stmt.executeQuery();
            // 处理结果集
            while (rs.next()) {
                User user = new User();
                user.setId(rs.getInt("id"));
                user.setUsername(rs.getString("name"));
                user.setPassword(rs.getString("password"));
                user.setEmail(rs.getString("email"));
                user.setBirthday(rs.getDate("birthday"));
                return user;
            }
            return null;
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            JDBCUtils.release(rs, stmt, conn);
        }
        return null;
    }

4.创建测试类

4.1测试查询所有记录的的测试类

在cn.lctvu.test包下创建增加数据的测试类FindAllUsersTest.java

public class FindAllUsersTest{
    public static void main(String[] args) {
        //创建一个名称为usersDao的对象
        UserDao userDao = new UserDao();
        //将UsersDao对象的findAll()方法执行后的结果放入list集合
        ArrayList<User> list = userDao.findAll();
        //循环输出集合中的数据
        for (int i = 0; i < list.size(); i++) {
            System.out.println("第" + (i + 1) + "条数据的username值为:"
                    + list.get(i).getUsername());
        }
    }

运行测试类,查看结果

4.2 测试根据id查询记录的测试类
public class FindUserByIdTest {
    public static void main(String[] args) {
        UserDao usersDao = new UserDao();
        User user = usersDao.find(1);
        System.out.println("id为1的User对象的name值为:" + user.getUsername());
    }
}
4.3 测试删除记录的测试类
public class DeleteUserTest{
 	public static void main(String[] args) {
 		// 删除操作
 		UsersDao usersDao = new UsersDao();
 		boolean b = usersDao.delete(4);
 		System.out.println(b);
 	}
 }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,这是一个关于Java Web开发的问题,我可以为您解答。 首先,使用JDBC完成数据查询,需要进行以下步骤: 1. 加载数据库驱动程序 2. 建立数据库连接 3. 创建Statement或PreparedStatement对象 4. 执行SQL语句,获取ResultSet对象 5. 遍历ResultSet对象,获取查询结果 6. 关闭ResultSet、Statement、Connection等对象 接着,使用JSTL完成数据展示,需要进行以下步骤: 1. 导入JSTL标签库 2. 使用<c:forEach>标签遍历查询结果 3. 在<c:forEach>标签中使用EL表达式获取查询结果中的数据 4. 使用其他JSTL标签或HTML标签展示数据 下面是一个简单的示例代码: ```java <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ page import="java.sql.*" %> <% // 加载MySQL数据库驱动程序 Class.forName("com.mysql.jdbc.Driver"); // 建立数据库连接 String url = "jdbc:mysql://localhost:3306/test?useSSL=false"; String username = "root"; String password = "root"; Connection conn = DriverManager.getConnection(url, username, password); // 创建PreparedStatement对象 String sql = "SELECT * FROM users"; PreparedStatement pstmt = conn.prepareStatement(sql); // 执行SQL语句,获取ResultSet对象 ResultSet rs = pstmt.executeQuery(); // 使用<c:forEach>标签遍历查询结果 %> <table> <c:forEach items="${rs}" var="row"> <tr> <td>${row.id}</td> <td>${row.username}</td> <td>${row.password}</td> </tr> </c:forEach> </table> <% // 关闭ResultSet、PreparedStatement、Connection对象 rs.close(); pstmt.close(); conn.close(); %> ``` 这段代码中,使用JDBC查询MySQL数据库中的users表,并使用JSTL的<c:forEach>标签遍历查询结果,展示了查询结果中的id、username、password三个字段。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

聊城云在天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值