一、在执行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. netconf、yang和XML关系

    netconf是基于xml的网络配置协议,文档RFC6241有详细介绍. yang是为netconf建模的一种数据建模语言.文档RFC2060详细介绍了yang1.0版本,RFC7950介绍了yang ...

  2. NYOJ-2359: 巴什博弈?

    2359: 巴什博弈? 时间限制: 1 Sec  内存限制: 30 MB 提交: 263  解决: 55 [提交][状态][讨论版] 题目描述 有n个石子,有两人轮流从中取石子,最少a个最多b个,谁没 ...

  3. Spring JDBC(二)SimpleJdbcInsert

    上一篇写了关于jdbcTemplate的一些基本使用,这一篇来聊聊SimpleJdbcInsert SimpleJdbcInsert是springjdbc提供的一个简化插入操作的类,下面来看一下常用的 ...

  4. sqlserver 查询所有表及记录行数

    --查询所有表名 select name from sysobjects where xtype='u' select * from sys.tables --查询所有表名及对应架构 select t ...

  5. 适合Linux新手的发行版有哪些?

    一个很古老的问题,找到适合的 Linux 发行版比简单的指出哪种 Linux 版本受欢迎更重要.为什么这么说?让我们设置一个情景:你有一位用户,很有可能,他过去大多数时候都是在 Windows 或者 ...

  6. Foxmail 7.0破解版,拷贝到新机器后,发送邮件乱码问题

    申请了新机器,挺开心,键盘和鼠标也好用了,但是新机器也随之而来一些不便,以前存储的数据需要重新拷贝.还有一些邮件,有些邮件标记了*号. Foxmail7.0绿色版本还挺好用,直接拷贝到新机器上就能直接 ...

  7. java 后台代码调用接口

    import com.jiuqu.jollykeys.common.util.JsonUtil;import java.io.UnsupportedEncodingException;import j ...

  8. MySQL数据库数据信息迁移

    环境内核信息: [root@zabbix-01 ~]# uname -a Linux lodboyedu-01 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:2 ...

  9. 五.Spring与RabbitMQ集成--HelloWorld

    spring对RabbitMQ做了很好的集成,我们称之为spring AMQP,其官方文档写得十分详尽,文档地址:https://docs.spring.io/spring-amqp/referenc ...

  10. Android使用gradle不同配置多项目打包

    //build.gradle该配置文件里路径均是相对路径 apply plugin: 'com.android.application' android { def suffix = "su ...