zoukankan      html  css  js  c++  java
  • 运用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;

    }

  • 相关阅读:
    Android自己主动升级框架
    一句话说清楚啥是delegate
    C#
    MySQL Community Server 5.6和MySQL Installer 5.6
    仿htc sense的弹性listView!
    双向队列(STL做法)
    余承东:未来5年中国大部分智能手机厂商消失
    P3808 【模版】AC自动机(简单版)
    P1103 书本整理
    P2580 于是他错误的点名开始了
  • 原文地址:https://www.cnblogs.com/ly-china/p/5417696.html
Copyright © 2011-2022 走看看