运用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;

}

原文地址:https://www.cnblogs.com/ly-china/p/5417696.html