一、在执行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. 工程启动加载.properties/.xml配置文件

    工程目录: demo.properties today=2017-06-10 PropertiesMap.java package com.dzpykj.common.utils; import ja ...

  2. 51Nod--1085背包问题

    1085 背包问题 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 在N件物品取出若干件放在容量为W的背包里,每件物品的体积为W1,W2--Wn(Wi为整 ...

  3. PHP+Mysql基于事务处理实现转账功能的方法

    <?php header("Content-Type:text/html;charset=utf-8"); $mysqli=new mysqli("localhos ...

  4. CenterOS 7 基础命令学习

    CentOS 7 命令 网络配置 nmcli(NetworkManageCommandLineInterface)查看网卡 nmtui(NetworkManageTextUserInterface)网 ...

  5. node.js之express框架入门篇

    一.express框架简介 express框架是后台的Node框架,在后台的受欢迎的程度,和jQuery一样 英语官网:http://expressjs.com/ 中文官网:http://www.ex ...

  6. C# 把Div变为滚动条

    <div runat="server" style="overflow:auto;width:350px;height:200px" > <a ...

  7. 剑指Offer_5_替换空格

    题目描述 请实现一个函数,将一个字符串中的空格替换成"%20". 例如,当字符串为We Are Happy.则经过替换之后的字符串为 We%20Are%20Happy. 在网络编程 ...

  8. Java中用Apache POI生成excel和word文档

    概述: 近期在做项目的过程中遇到了excel的数据导出和word的图文表报告的导出功能.最后决定用Apache POI来完毕该项功能.本文就项目实现过程中的一些思路与代码与大家共享.同一时候.也作为自 ...

  9. 第一次面试&amp;第一次霸面

    哈哈哈哈,第一次面试和第一次都献给了CVTE! CVTE的招聘流程有点特别:网測-- 一面--笔试--二面--offer 想起网測那天就心酸.那先在做第三部分的专业測试.计时器突然出错........ ...

  10. windows远程桌面连接的时候不显示本地盘符

    近期远程异地pc机部署项目,远程连上后不显示本地盘符,勾选驱动器也无效,试下例如以下方法 在远程主机的文件地址栏里面键入: \\tsclient\D 后面再加入上对应的盘符,你的盘符的名称是什么盘就加 ...