java怎么获取list中的实体类直接上例⼦
⾸先我们先创建⼀个实体类:
package MVC_del;
/**
* @Author: LanAn
* @Date: 2021/7/11 0011 10:20
* @Description:
*/
public class Emp {
private Integer empno;
private String ename;
private String job;
private Integer mgr;
private String hiredate;
private Double sal;
private Double comm;
private Integer deptno;
public Integer getEmpno(){
return empno;
}
public void setEmpno(Integer empno){
}
public String getEname(){
return ename;
}
public void setEname(String ename){
java switch case string
}
public String getJob(){
return job;
}
public void setJob(String job){
this.job = job;
}
public Integer getMgr(){
return mgr;
}
public void setMgr(Integer mgr){
< = mgr;
}
public String getHiredate(){
return hiredate;
}
public void setHiredate(String hiredate){
this.hiredate = hiredate;
}
public Double getSal(){
return sal;
}
public void setSal(Double sal){
this.sal = sal;
}
public Double getComm(){
return comm;
}
public void setComm(Double comm){
thism = comm;
}
public Integer getDeptno(){
return deptno;
}
public void setDeptno(Integer deptno){
this.deptno = deptno;
}
}
在创建相对应得dao层
package MVC_Test.mvc.util;
import NotNull;
import Field;
import PreparedStatement;
import ResultSet;
import ArrayList;
import List;
/**
* @Author: LanAn
* @Date: 2021/7/11 0011 11:38
* @Description:
*/
public class SqlSession {
private static PreparedStatement ps =null;
private static ResultSet rs =null;
/* @author lanan
* @Description 输⼊sql语句,创建实体类对象,加⼊List中
* @Date 16:13 2021/7/11 0011
* @Param [sql, classFile]
* @Return java.util.List<java.lang.Object>
**/
public static List<Object>selectList(String sql,@NotNull Class<?> classFile)throws Exception{ //JDBCUtil是⾃⼰写的JDBC连接⼯具包
ps =atePreparedStatement(sql);
//⽤于装实体类中的属性
Field[] fieldArray =null;
//这⾥⽆需排序,⽤ArrayList创建
List<Object> list =new ArrayList<Object>();
try{
//获取查询的结果集
rs = ps.executeQuery();
fieldArray =DeclaredFields();//获取.class⽂件中所有属性,包括私有属性//遍历结果集
()){
Object obj =wInstance();//创建实体类对象
//为创建的实体类各个属性赋值
//为创建的实体类各个属性赋值
for(Field fieldObj : fieldArray){
String fieldName = Name();//获取属性名
String value = rs.getString(fieldName);//获取rs该列下的数据
//各个属性赋值
init(obj, value, fieldObj);
}
//实体类添加到list
list.add(obj);
}
}finally{
JDBCUtil.close(rs);
}
return list;
}
/* @author lanan
* @Description 为新创建的实体类对象不同属性列下赋值
* @Date 16:18 2021/7/11 0011
* @Param [obj, value, fieldObj]
* @Return void
**/
private static void init(Object obj,String value,Field fieldObj)throws Exception{
//开启对私有元素访问权限
fieldObj.setAccessible(true);
//赋值
if(value==null){
fieldObj.set(obj,null);
}else{
String typeName = Type().getName();//获取属性类型
//Emp表中只有这三个属性
switch(typeName){
case"java.lang.Integer":
fieldObj.set(obj, Integer.valueOf(value));
break;
case"java.lang.Double":
fieldObj.set(obj, Double.valueOf(value));
break;
case"java.lang.String":
fieldObj.set(obj, value);
break;
}
}
}
}
最后从list中获取实体类
@Test
public void t1()throws Exception {
String sql ="SELECT * FROM EMP";
List<Object> list =SqlSession.selectList(sql,Emp.class);
//这⾥的emp是list中的实体类对象
for(Object emp:list){
//这⾥调⽤Emp中的getEmpno⽅法
System.out.println(((Emp)emp).getEmpno());
}
}
如果取值可以⽤实体类中的getXXX⽅法;如果只是为了输出到控制台,可以重写toString⽅法