运用BeanUtils构建通用的查询 更新方法(个人拙作,不喜勿喷)
------------------------------------更新方法-----------------------------------
public void update(String sql,Object[] params){
conn //根据自己情况获取链接
pstmt=conn.prepareStatement(sql);//获得预编译
int count=pstmt.getParameterMetaData().getParameterCount();//获取元数据 得到占位符的个数
if(params!=null && params.length>0){
for(int i=0;i<count;i++){
pstmt.setObject(i+1,params[i]);//给占位符设置参数
}
}
pstmt.executeUpdate();
}
------------------------------------查询方法-----------------------------------占位符索引是从 1 开始的 不是从0开始的
public <T> List<T> query(String sql,Object[] params,Class<T> clazz){
List<T> list=new ArrayList<T>();
T t=null;
conn //根据自己情况获取链接
pstmt=conn.prepareStatement(sql);//获得预编译
if(params!=null && params.length>0){
for(int i=0;i<count;i++){
pstmt.setObject(i+1,params[i]);//给占位符设置参数
}
}
rs=pstmt.executeUpdate();//获得结果集
ResultSetMetaData rsmd=rs.getMetaData();
int num=rsmd.getColumnCount();//获得结果集的元数据 并且根据元数据获得 有多少列
while(rs.next()){
t=clazz.newInstance();
for(int i=0;i<num;i++){
String name=rsmd.getColumnName(i+1);
String value=rsmd.getObject(name);
BeanUtils.copyProperty(t,name,value);
}
list.add(t);
}
return list;
}