使用JDBC将数据库信息封装成一个对象
一、数据库account账户表现有数据
id | name | money |
---|---|---|
1 | 张三 | 3000 |
2 | 李四 | 1000 |
二、代码实现
/**
* 查询account账户表数据,封装为Account对象中,并且存储到ArrayList集合中
*/
@Test
public void testResultSet2() throws Exception {
//2.1 注册驱动,mysql5后已经在DriverManager加载的时候注册了
//Class.forName("com.mysql.jdbc.Driver");
//2.2 获取连接:如果连接的是本机mysql并且端口是默认的 3306 可以简化书写
//url解释:协议为jdbc:mysql: //地址为127.0.0.1:3306/的数据库db1不使用SSL参数?useSSL=false
String url = "jdbc:mysql://127.0.0.1:3306/db1?useSSL=false";
//数据库账号
String username = "root";
//数据库密码
String password = "1234";
//把地址,账号,密码给DriverManager.getConnection方法获得连接对象
Connection conn = DriverManager.getConnection(url, username, password);
//2.3. 定义sql
String sql = "select * from account";
//2.4 有了连接对象,就用它获取statement执行对象
Statement stmt = conn.createStatement();
//2.5 执行sql,得到数据集
ResultSet rs = stmt.executeQuery(sql);
//2.6 创建集合用来保存等下封装的对象
List<Account> list = new ArrayList<>();
// 2.7 通过next方法,光标向下移动一行,并且判断移动后的当前行是否有数据
while (rs.next()){
//有数据进入循环
//2.8 先new一个对象保存信息
Account account = new Account();
//2.9 获取数据 getXxx()
int id = rs.getInt("id");
String name = rs.getString("name");
double money = rs.getDouble("money");
//2.10 给对象赋值
account.setId(id);
account.setName(name);
account.setMoney(money);
// 把对象存入存入集合
list.add(account);
}
System.out.println(list);
//2.11 释放数据集资源
rs.close();
//2.11 释放执行对象资源
stmt.close();
//2.11 释放连接对象资源
conn.close();
}