zoukankan      html  css  js  c++  java
  • SQL查询数据封装JavaBean对象

    public static List getListBySql(String sql, Class cls){
      List list = new ArrayList();
      Connection connection =null;
      Statement stmt =null;
      ResultSet rs =null;
      try {
       connection = getConnection();
       stmt = connection.createStatement();
       rs = stmt.executeQuery(sql);
       while (rs.next()) {
        Object obj = getObject(rs, cls);
        list.add(obj);
       }
      }catch (Exception e) {
       e.printStackTrace();
       String sWord = " sql:" + sql;
       sWord += " 错误信息:" + e.getLocalizedMessage();
       PayMd5Utils.logResult(logpath,sWord);
       throw new RuntimeException("#执行出错:"+e.getLocalizedMessage());
      }finally{
       closeResultSet(rs);
       closeStatement(stmt);
       closeConnection(connection);
      }
      return list;
     }

     private static Object getObject(ResultSet rs, Class cls) throws SQLException, IllegalArgumentException, IllegalAccessException, InstantiationException {
      Object object = null;
      Field[] fields = cls.getDeclaredFields();
      ResultSetMetaData metaData = rs.getMetaData();
      int columnCount = metaData.getColumnCount();
      for (int i = 1; i <= columnCount; i++) {
       String columnName = metaData.getColumnName(i);
       Field field = getField(fields, columnName);
       if (field != null) {
        if (object==null) {
         object=cls.newInstance();
        }
        field.setAccessible(true);
        Object value = rs.getObject(field.getName());
        setFieldValue(object, value, field);
       }
      }
      return object;
     }

     private static Field getField(Field[] fields, String columnName) {
      for (Field field : fields) {
       if (columnName.toUpperCase().equals(field.getName().toUpperCase())) {
        return field;
       }
      }
      return null;
     }

     private static void setFieldValue(Object obj, Object value, Field field)
       throws IllegalArgumentException, IllegalAccessException {
      if (value == null) {
       return;
      }
      if (field.getType() == Long.class) {
       field.set(obj, StringUtil.toLong(value));
      } else if (field.getType() == Double.class) {
       field.set(obj, StringUtil.toDouble(value));
      } else if (field.getType() == Integer.class) {
       field.set(obj, StringUtil.toInteger(value));
      } else if (field.getType() == Date.class) {
       field.set(obj, new Date());
      } else {
       field.set(obj, StringUtil.toString(value));
      }
     }

  • 相关阅读:
    图书管理系统(spring springmvc)
    ssm框架整合(java个人博客系统)
    HTTP笔记
    (数据结构课程设计)稀疏矩阵运算器
    数据库学习笔记
    HTML5 3D旋转图片相册
    Mybatis分页插件-PageHelper的使用
    如何更改github工程的语言属性
    HttpServletResponse和HttpServletRequest详解
    node js 安装.node-gyp/8.9.4 权限 无法访问
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3141125.html
Copyright © 2011-2022 走看看