一、在执行sql语句查询时候,查询的结果是set的map集合(ResultSet);

  结果使用rs.getString("XX")获得对应属性的值,赋值到bean对象的相应的属性中,使用bean.setXX(rs.getString("XX"))

  弊端:1、当bean对象的属性众多,写法非常麻烦,浪费人力,容易出错;

     2、后期代码修改,耦合性太高,一个属性修改,sql使用到的setget都要修改;

     3、java是面向对象编程的,此处没有抽取方法,代码复用性低;

   String sql = "SELECT * FROM olt_basic where synchronousstatus = 'SU' and tachniquestatus = 'WA' or (tachniquestatus = 'FA' and tachniquecount < 3)";
                         ResultSet rs = DataBaseOperate.executQuery(sql);
                         list = new ArrayList();
                         int firstNum = 1;
                         while (rs.next()) {
                             Basic basic = new Basic();
                             String basicId = rs.getString("Olt_Basic_ID");
                             String batchCode = rs.getString("BATCHCODE");
                             String batchName = rs.getString("BATCHNAME");
                             String sectionCode = rs.getString("SECTIONCODE");
                             String sectionName = rs.getString("SECTIONNAME");
                             String packageId = rs.getString("PACKAGEID");
                             String packageName = rs.getString("PACKAGENAME");
                             String packageCode = rs.getString("PACKAGECODE");
                             String packageValue = rs.getString("PACKAGEVALUE");
                             String bidderCode = rs.getString("BIDDERCODE");
                             String tachniquecount = rs.getString("Tachniquecount");
                             basic.setOlt_basic_id(basicId);
                             basic.setBatchcode(batchCode);
                             basic.setBatchname(batchName);
                             basic.setSectioncode(sectionCode);
                             basic.setSectionname(sectionName);
                             basic.setPackageid(packageId);
                             basic.setPackagename(packageName);
                             basic.setPackagecode(packageCode);
                             basic.setPackagevalue(packageValue);
                             basic.setBiddercode(bidderCode);
                             basic.setTachniquecount(tachniquecount);
                             list.add(basic);
                             firstNum++;
                         }

二、sql查询化繁为简

  使用commons-beanutils-1.9.3.jar架包,Set的map集合赋值到bean的属性值中;

  1、bean的对象的属性名称与数据库的字段名称对应

  2、reslut的结果转成map,使用BeanUtils.populate(对象,map)方法,将map中的值赋值到bean中对应的属性中

 List<OltBasic> listResult = new ArrayList<OltBasic>(100);
             StringBuffer sql = new StringBuffer();
             sql.append(" select * from olt_basic ob ");
             prepared = connection.prepareStatement(sql.toString());
             ResultSet resultSet = prepared.executeQuery();
             while (resultSet.next())
             {
                 Map<String, String> map = ResultToMapUtil.resultToMap(resultSet);
                 OltBasic bean = new OltBasic();
                 BeanUtils.populate(bean,map);
                 listResult.add(bean);
             }  

  

sql查询化繁为简 告别rs.getString("XX"),bean属性赋值setXX("XX")的更多相关文章

  1. 【小家Spring】Spring IoC是如何使用BeanWrapper和Java内省结合起来给Bean属性赋值的

    #### 每篇一句 > 具备了技术深度,遇到问题可以快速定位并从根本上解决.有了技术深度之后,学习其它技术可以更快,再深入其它技术也就不会害怕 #### 相关阅读 [[小家Spring]聊聊Sp ...

  2. 依赖注入Bean属性

    一.Bean属性依赖注入 对于类成员变量,注入方式有三种 •构造函数注入 •属性setter方法注入 •接口注入 Spring支持前两种 1.构造函数 属性注入 使用构造方法注入,在Spring配置文 ...

  3. 笔面试复习(spring常用.jar包/事务/控制反转/bean对象管理和创建/springMVC工作原理/sql查询)

    ###spring常用jar包1.spring.jar是包含有完整发布模块的单个jar包.2.org.springframework.aop包含在应用中使用Spring的AOP特性时所需要的类.3.o ...

  4. Java 获取SQL查询语句结果

    step1:构造连接Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnec ...

  5. 使用sql查询mysql/oracle/sql server/gp数据库中指定表的字段信息(字段名/字段类型/字段长度/是否是主键/是否为空)

    1,根据数据库类型拼接不同URL /** * 根据类型不同拼接连接的URL * @param dbType 1:mysql.2:oracle.3:sql server.4:gp * @param ip ...

  6. SQL查询语句大全集锦

    SQL查询语句大全集锦 一. 简单查询 简单的Transact-SQL查询只包括选择列表.FROM子句和WHERE子句.它们分别说明所查询列.查询的 表或视图.以及搜索条件等. 例如,下面的语句查询t ...

  7. Java连接MySQL数据库实现用户名密码的验证方法 Java语句中sql查询语句'' ""作用

    //方法一,可以验证登录,但方法不实用.package com.swift; import java.sql.Connection; import java.sql.DriverManager; im ...

  8. SolrCloud6.1.0之SQL查询测试

    Solr发展飞快,现在最新的版本已经6.1.0了,下面来回顾下Solr6.x之后的一些新的特点: (1)并行SQL特性支持,编译成Streaming 表达式,可以在solrcloud集群中,并行执行  ...

  9. JDBC 处理sql查询多个不确定参数

    JDBC程序,为了防止SQL注入,通常需要进行参数化查询,但是如果存在多个不确定参数,就比较麻烦了,查阅了一些资料,最后解决了这个问题,现在这里记录一下:   public List<TabDl ...

随机推荐

  1. Cesium中Clock控件及时间序列瓦片动态加载

    前言 前面已经写了两篇博客介绍Cesium,一篇整体上简单介绍了Cesium如何上手,还有一篇介绍了如何将Cesium与分布式地理信息处理框架Geotrellis相结合.Cesium的强大之处也在于其 ...

  2. 图片布局css

    对于平时项目开发中,经常要展示图片.什么水平居中显示,垂直居中显示,水平或垂直居中显示...我们的发际线就是这样往后退的. 接下来要讲的就是对于各种图片布局的css实现(这里针对的是img标签的不会使 ...

  3. Solr管理界面详解

  4. Cocos2d-X 精灵、动作效果

    命名空间宏: USING_NS_CC; 感觉事实上挺鸡肋的. NS_CC_BEGIN. == using namespace cocos2d{ NS_CC_END ; } 推断一个精灵被点击: 1.层 ...

  5. openstack初始化Glance数据库时报错解决方式

    环境为win7+virtualbox 中的centos6.5 安装Glance 的包 yum install openstack-glance python-glanceclient -y 配置Gla ...

  6. 使用NPOI读取Excel数据到DataTable

    如今XML文件的存储格式大行其道,可是也不是适用于全部情况,非常多单位的数据交换还是使用Excel的形式.这就使得我们须要读取Excel内的数据.载入到程序中进行处理.可是如何有效率的读取,如何使程序 ...

  7. 原生js实现一个简单的倒计时功能

    大家好,我是云中君!欢迎大家来观看我的博客 之前那,在群里看到很多人问,关于电商网站中的倒计时功能怎么实现,很多人说在网上找了很多插件,但是不是很会用,所以今天就在这里分享一下我封装的一个小的倒计时功 ...

  8. 自学Zabbix3.5.7-监控项item-Applications

    Applications应用程序用于对逻辑组中的项目进行分组.例如我们要监控MySQL,我们可以将所有和MySQL相关的item放到这个应用程序中.例如MySQL的availability of My ...

  9. 总结一下现在关于Design Support Library的几个博客

    原文转载:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0713/3179.html 关于Design Support Libr ...

  10. Error Running Git Empty git --version output:IDEA关联GitHub时出现这个错误

    刚刚学习使用idea中,想要把自己的项目上传到github,遇到这样一个问题,先记录下来,到时候解决了在把方法贴出来. ---------------------------------------- ...