当前位置:网站首页>查询的结果封装到实体类中并使用集合储存
查询的结果封装到实体类中并使用集合储存
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 + "]";
}
}
边栏推荐
猜你喜欢
随机推荐
Perl basic grammar
【Harmony OS】【ARK UI】Date Basic Operation
软件测试的发展趋势
STM32学习笔记(PWM输出)
10.LoadRunner2022社区版安装
TP6的安装与测试
STM32之vl53l0x读取距离
C Advanced - Program Compilation (Preprocessing) + Linking
如何剪裁svg并压缩
【开发者必看】【push kit】推送服务服务典型问题合集2
Pycharm社区版专业版下载安装环境配置【精细到每一个步骤】
【HMS Core】【FAQ】【AR Engine】AR Engine FAQ
UI框架布局
LeetCode-636. 函数的独占时间
力扣202-快乐数——哈希集合
FastDFS快速使用及介绍
【Harmony OS】【ArkUI】ets开发 图形与动画绘制
如何选型APS系统,还需明确这七大关键因素
【Harmony OS】【ARK UI】ETS 上下文基本操作
区别如下概念:路径、绝对路径、相对路径、当前目录。系统磁盘上存在某个可执行文件,但在DOS环境输入其文件名却提示没有这个文件,是什么原因?