// 包名
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();
}
}