您的位置:首页 > 编程语言 > Java开发

JAVA 利用反射机制查询数据库返回相应对象

2014-03-04 20:49 513 查看
public static void main(String [] rags){
SQLHepler SH=new SQLHepler();
String  sql="select * from DB_Image";
String [] p={"107"};
try {
List<Object> c=SH.excuteSelectSQL(sql, null, DBImage.class);
for (Object o:c) {
DBImage cam=(DBImage) o;
System.out.println(cam.getImageID()+" "+cam.getImageRealPath());

}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
private   List<String> getAllMethods(Class c){
List<String> allMendth=new ArrayList<String>();
Field [] f=c.getDeclaredFields();
for(int i=0;i<f.length;i++){
String m="set";
m+=f[i].getName();
allMendth.add(m);
}
return allMendth;
}

public List<Object> excuteSelectSQL(String sql,String [] parmates,Class clazz) throws Exception{
List<Object> all=new ArrayList<Object>();
Conn conn=new Conn();
this.con=conn.getConn();
this.ps=con.prepareStatement(sql);
if(parmates!=null && !parmates.equals("")){
int index=1;
for(String s:parmates){
this.ps.setString(index, s);
index++;
}
}
this.rs=this.ps.executeQuery();
while(rs.next()){
Object o = clazz.newInstance();
List<String> allMethods=getAllMethods(clazz);
int index=1;
for(String s:allMethods){
clazz.getDeclaredMethod(s, String.class).invoke(o, rs.getString(index));
index++;
}
all.add(o);
}
return all;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐