当前位置:网站首页>查询的结果封装到实体类中并使用集合储存
查询的结果封装到实体类中并使用集合储存
2022-08-09 05:09:00 【Camellia——】
package com.lin.jdbc_3;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import com.lin.jdbc.entity.Employee;
import com.lin.jdbc_01.JDBCUtils;
/*
* 需求:
* 有一个员工类,Employee 有一些属性(字母全部小写)
* 员工编号,员工姓名,员工地址,员工的部门编号,
* 将数据库中的员工表employee表数据查询出来,对员工类数据封装,并将
* 员工类的数据存储到ArrayList集合中:ArrayList<Employee>,进行遍历输出结果!
*
*
* 分析:
* javaBean(
* 1)该类是一个具体类
* 2)该类属性都是私有字段
* 3)该类提供公共访问方法
* 4)实现序列化接口
* )
* 1)一个员工类,提供这些属性,私有化,提供公共访问方法 setXXX()/getXXX():称为bean属性
* 2)定义一个方法:查询mydb_01数据库中employee员工表的所有数据
* 2.1)创建一个空集合ArrayList<Employee>
* 2.2)JDBC正常步骤:获取连接,准备SQL,获取执行对象Statement,执行查询:ResultSet excuteQuery(String sql)
* 2.3)封装结果集中的数据表到员工类对象中
* 2.4)将员工类对象添加到集合中
* 2.5)遍历集合
* 2.6)输出结果
* */
public class JDBCTest {
public static void main(String[] args) {
//调用方法查询
ArrayList<Employee> list = findAll() ;
for(Employee emp:list) {
System.out.println(emp.getId()+"\t"+emp.getName()+"\t"+
emp.getAddress()+"\t"+emp.getDept_id());
}
}
//专门定义一个方法:查询所有的方法
public static ArrayList<Employee> findAll(){
Connection conn = null ;
Statement stmt = null ;
ResultSet rs = null ;
try {
//在创建一个ArrayList集合
ArrayList<Employee> list = new ArrayList<Employee>() ;
//使用封装JDBC工具类查询结果
conn = JDBCUtils.getConnection() ;
//准备sql
String sql = "select * from employee" ;
System.out.println(sql);
//创建执行对象
stmt = conn.createStatement() ;
//执行查询
rs = stmt.executeQuery(sql) ;
//声明员工类的变量
Employee emp = null ;
//遍历结果集
while(rs.next()) {
int id = rs.getInt("id") ;
String name = rs.getString("name") ;
String address = rs.getString("address") ;
int dept_id = rs.getInt("dept_id") ;
emp = new Employee() ;
//封装emp对象中的属性
emp.setId(id);
emp.setName(name);
emp.setAddress(address);
emp.setDept_id(dept_id);
//System.out.println(emp);//员工的信息表达式
//将员工类的对象添加到集合中
list.add(emp) ;
}
return list ;
} catch (SQLException e) {
e.printStackTrace();
}finally {
//释放资源
JDBCUtils.close(rs, stmt, conn);
}
return null ;
}
}
package com.lin.jdbc.entity;
import java.io.Serializable;
/**
* 实体类:员工类
*
* @author dell
*/
public class Employee implements Serializable{//产生序列化id在网络中传输
// 私有属性:属性名称需要和数据库中员工字段名称对应(小写)
private Integer id;// Integer默认值null:对于基本类型--->包装类类型
private String name;
private String address;
private Integer dept_id;
//id,name,address,dept_id都称为 bean属性
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public Integer getDept_id() {
return dept_id;
}
public void setDept_id(Integer dept_id) {
this.dept_id = dept_id;
}
@Override
public String toString() {
return "Employee [id=" + id + ", name=" + name + ", address=" + address + ", dept_id=" + dept_id + "]";
}
}
边栏推荐
- 【学习笔记】AGC044
- Faced with risk control, what should Amazon do when evaluating self-supporting accounts?
- 二分搜索篇
- 不能提取结果集,SQL [n / a]; org.hibernate.exception.SQLGrammarExcept是嵌套的异常
- 【HMS Core】【FAQ】【AR Engine】AR Engine常见问题合集
- 【LeetCode】761.特殊的二进制序列
- 【计算机网络-哈工大】---学习笔记(下)---(二)Web安全威胁、SSL\IPsec、虚拟专用网、防火墙
- 【Harmony OS】【ARK UI】Date 基本操作
- MySQL---performance schema
- 【ManageEngine】网络性能监控工具
猜你喜欢

【Harmony OS】【ARK UI】轻量级数据存储

如何让Win11两个屏幕任务栏都显示时间?

GraalVM安装

The development trend of software testing

浅谈单片机Boot的几种自刷新方式

微服务架构基础 微服务相关概念及基础知识 贺兰的微博
![could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarExcept](/img/00/328e4c296c00929140c9aff3bb896e.png)
could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarExcept

【HMS core】【Ads Kit】Huawei Advertising——Overseas applications are tested in China. Official advertisements cannot be displayed

步进电机驱动的使用及程序

剑指Offer - 链表翻转及其变体题目总结
随机推荐
关于光电门的使用
【Harmony OS】【ARK UI】Date Basic Operation
flask——介绍、安装、快速使用、配置文件、路由系统、视图
Golang入门教程
Nacos源码安装
面向6G的大规模MIMO通信感知一体化:现状与展望
微服务架构基础 微服务相关概念及基础知识 贺兰的微博
力扣349-两个数组的交集——HashSet
神经网络预测应力应变-单轴实验
【Harmony OS】【ArkUI】ets开发 图形与动画绘制
STM32系列单片机使用心得
Docker部署MySQL
快速上手Shell,看这一篇就够了
说明高级语言、汇编语言、机器语言三者的区别,谈谈你对汇编语言的认识。
如何剪裁svg并压缩
制作频谱应用FFT心得
equals and ==
Address Book (File Version) (C Language) (VS)
剑指Offer-二维动态规划问题题目总结
【Harmony OS】【ARK UI】自定义弹窗