Constructor 查询方法

本文深入解析了一种基于JDBC的数据库查询方法,该方法通过反射机制动态创建对象并设置属性,实现了从数据库查询结果到Java对象的转换。文章详细介绍了如何使用PreparedStatement执行SQL语句,处理结果集,并通过反射为对象的属性赋值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//查询方法
public List query(Class clazz,Strin sql,Object…args){
List list=new ArrayList();
try(Connection conn=JdbcUtil.getConnection();PreparedStatement ps=conn.prepareStatement(sql)?{
//执行sql
for(int i=0;i<args.length;i++){
ps.setObject(i+1,args[i]);
}
ResultSet rs=ps.executgeQuery();
//会的所有的属性;
Field[] fs=clazz.getDeclareFields();
//将结果集中的记录装换成对应的VO
while(rs.next){
//创建VO对象
Object obj=clazz.newInstance();
//给所有的属性赋值
for(Field f:fs){
f.setAccessible(true);
if(fgetType())==Integer.class){
f.set(obj,rs.getInt(f.getName()));
}else if(f.getType()==String.class){
f.set(obj,rs.getString(f.getName()));
}else{
f.set(obj,rs.getObject(f.getName));
}
}
list.add(obj);
}
}
catch(Exception){
e.printStackTrace();
}
return list;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值