流浪のwolf

卷帝

导航

JDBC后端实现查询功能逻辑

// 包名
package com.zhulx.JDBC;

// 导入实例类
import com.zhulx.pojo.Account;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

/**
 *  JDBC 快速入门
 * **/
public class JDBC02 {
    // throws Exception 说明此方法不会处理异常
    public static void main(String[] args) throws Exception {
        // TODO 把查询到的数据都放到ArrayList 【 返回给前端的数据 】
        // 1. 注册驱动 【 固定写法 】

        /**
         * JDBC 常用接口和类
         * (1) Driver 接口:加载驱动程序。
         * (2) DriverManager 类:装人所需的 JDBC 驱动程序,编程时调用它的方法来创建连接。
         * (3) Connection 接口:编程时使用该类对象创建 Statement 对象。
         * (4) Statement 接口:编程时使用该类对象得到 ResultSet 对象。
         * (5) ResultSet 类:负责保存 Statement 执行后所产生的查询结果。
         *
         * */

        /**
         * 任务:
         * 查询account账户数据,封装Account对象中,并且存储到ArrayList中
         * 1. 定义实体类Account 【就是有get和set函数的类就是实体类】
         * 2. 查询数据,封装到ArrountList中
         * 3. 将Account对象 存入ArrayList集合中
         * ArrayList就是我返回给前端的数据是 【 对象数组 】
         */
        // Class.forName("com.mysql.cj.jdbc.Driver");


        // 2. 获取连接 【 就是关联数据库 】 访问  test 数据库
        String url = "jdbc:mysql://127.0.0.1:3306/test";
        String username = "root";
        String password = "abc123";
        Connection conn =  DriverManager.getConnection(url, username, password);

        // 3. 定义 sql  DQL
        String sql = "select * from account";

        // 4. 获取执行 sql 对象 statement
        Statement stmt = conn.createStatement() ;
        // 创建集合
        List<Account> List;

        List = new ArrayList<>();

        System.out.println(List);
        // 5. 执行 sql  【返回值是受影响的行数】
        ResultSet rs  = stmt.executeQuery(sql);

        // 6. 处理结果遍历 rs 所有的数据
        while(rs.next()) {
            // ps: 1 2 3 都是行数
            // 获取数据  每查询一个数据就创建一个对象然后放到数组里面
            Account account = new Account();
            System.out.println(account);
            int id = rs.getInt(1);
            String name = rs.getString(2);
            double money = rs.getDouble(3) ;

            // 赋值
            account.setId(id);
            account.setName(name);
            account.setMoney(money);

            // 存入集合
            List.add(account);
        }

        System.out.println(List);

        // 7. 释放资源
        stmt.close();
        conn.close();
        rs.close();
    }
}

 

posted on 2023-03-17 23:57  流浪のwolf  阅读(28)  评论(0编辑  收藏  举报