java执行SQL语句实现查询的通用方法详解
完成SQL查询并将查询结果放入Vector容器,以便其他程序使用
/* *执行sql查询语句 */ publicstaticVector executeQuery(Class clazz,Stringsql,Object...args){ Connectionconn=null; PreparedStatementpreparedstatement=null; ResultSetrs=null; Vector vecRs=newVector (); Tobj=null; try{ conn=JDBCTools.getConnection(); preparedstatement=conn.prepareStatement(sql); //通过sql语句来判断选择了那些列 for(inti=0;i mapMetaData=newHashMap (); //打印一列的列名 while(rs.next()){ //获取数据表中满足要求的一行数据,并放入Map中 for(inti=0;i 0){ obj=clazz.newInstance(); for(Map.Entry entry:mapMetaData.entrySet()){ Stringfieldkey=entry.getKey(); Objectfieldvalue=entry.getValue(); //System.out.println(fieldkey+":"+fieldvalue); ReflectionUtils.setFieldValue(obj,fieldkey,fieldvalue); //通过反射赋值 } } //将对象装入Vector容器 vecRs.add(obj); } } catch(Exceptione){ e.printStackTrace(); } returnvecRs; }
其中使用到的工具类方法
获取数据库连接JDBCTools.getConnection()
/*
*获取数据库的连接
*/
publicstaticConnectiongetConnection()throwsException{
Connectionconn=null;
Stringdriver=null;
StringjdbcUrl=null;
Stringusername=null;
Stringpassword=null;
//获取Properties对象
Propertiesproperties=newProperties();
InputStreamin=JDBCTools.class.getClassLoader().getResourceAsStream("jdbc.properties");
properties.load(in);
driver=properties.getProperty("driver");
jdbcUrl=properties.getProperty("jdbcUrl");
username=properties.getProperty("user");
password=properties.getProperty("password");
Class.forName(driver);
conn=DriverManager.getConnection(jdbcUrl,username,password);
returnconn;
}
ReflectionUtils.setFieldValue(obj,fieldkey,fieldvalue);
将obj对象的fieldkey属性赋值为fieldvalue
//设置对象的属性
publicstaticvoidsetFieldValue(Objectobj,StringfieldName,Objectvalue){
Fieldfield=getDeclaredField(obj,fieldName);
if(field==null){
thrownewIllegalArgumentException("Couldnotfindfield["+
fieldName+"]ontarget["+obj+"]");
}
makeAccessiable(field);
try{
field.set(obj,value);
}
catch(IllegalAccessExceptione){
System.out.println("不可能抛出的异常");
}
}
//判断field的修饰符是否是public,并据此改变field的访问权限
publicstaticvoidmakeAccessiable(Fieldfield){
if(!Modifier.isPublic(field.getModifiers())){
field.setAccessible(true);
}
}
//获取field属性,属性有可能在父类中继承
publicstaticFieldgetDeclaredField(Objectobj,StringfieldName){
for(Class>clazz=obj.getClass();clazz!=Object.class;clazz=clazz.getSuperclass()){
try{
returnclazz.getDeclaredField(fieldName);
}
catch(Exceptione){
}
}
returnnull;
}
总结
以上就是本文关于java执行SQL语句实现查询的通用方法详解的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。