sql查询化繁为简 告别rs.getString("XX"),bean属性赋值setXX("XX")
一、在执行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")的更多相关文章
- 【小家Spring】Spring IoC是如何使用BeanWrapper和Java内省结合起来给Bean属性赋值的
#### 每篇一句 > 具备了技术深度,遇到问题可以快速定位并从根本上解决.有了技术深度之后,学习其它技术可以更快,再深入其它技术也就不会害怕 #### 相关阅读 [[小家Spring]聊聊Sp ...
- 依赖注入Bean属性
一.Bean属性依赖注入 对于类成员变量,注入方式有三种 •构造函数注入 •属性setter方法注入 •接口注入 Spring支持前两种 1.构造函数 属性注入 使用构造方法注入,在Spring配置文 ...
- 笔面试复习(spring常用.jar包/事务/控制反转/bean对象管理和创建/springMVC工作原理/sql查询)
###spring常用jar包1.spring.jar是包含有完整发布模块的单个jar包.2.org.springframework.aop包含在应用中使用Spring的AOP特性时所需要的类.3.o ...
- Java 获取SQL查询语句结果
step1:构造连接Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnec ...
- 使用sql查询mysql/oracle/sql server/gp数据库中指定表的字段信息(字段名/字段类型/字段长度/是否是主键/是否为空)
1,根据数据库类型拼接不同URL /** * 根据类型不同拼接连接的URL * @param dbType 1:mysql.2:oracle.3:sql server.4:gp * @param ip ...
- SQL查询语句大全集锦
SQL查询语句大全集锦 一. 简单查询 简单的Transact-SQL查询只包括选择列表.FROM子句和WHERE子句.它们分别说明所查询列.查询的 表或视图.以及搜索条件等. 例如,下面的语句查询t ...
- Java连接MySQL数据库实现用户名密码的验证方法 Java语句中sql查询语句'' ""作用
//方法一,可以验证登录,但方法不实用.package com.swift; import java.sql.Connection; import java.sql.DriverManager; im ...
- SolrCloud6.1.0之SQL查询测试
Solr发展飞快,现在最新的版本已经6.1.0了,下面来回顾下Solr6.x之后的一些新的特点: (1)并行SQL特性支持,编译成Streaming 表达式,可以在solrcloud集群中,并行执行 ...
- JDBC 处理sql查询多个不确定参数
JDBC程序,为了防止SQL注入,通常需要进行参数化查询,但是如果存在多个不确定参数,就比较麻烦了,查阅了一些资料,最后解决了这个问题,现在这里记录一下: public List<TabDl ...
随机推荐
- 算法训练 区间K大数
算法训练 区间k大数查询 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个. 输入格式 第一行包含一个数n,表示序列长度. ...
- 如何在HTTP头中隐藏PHP版本号
PHP 配置默认允许服务器在 HTTP 响应头 X-Powered-By 中显示安装在服务器上的 PHP 版本.出于服务器安全原因(虽然不是主要的要担心的威胁),建议你禁用或隐藏此信息,避免那些针对你 ...
- javaScript 验证码 倒计时60秒
<input type="button" id="btn" value="免费获取验证码" /> <script type ...
- C++几个技巧:智能指针在消息传递中的使用,元组,及lambda删除器
1.SendMessage/PostMessage中传递对象参数 (1)方法1:使用shared_ptr 发送端: PostMessage(MyhWnd, CWM_SOME_ERROR, 0, rei ...
- LDA数学八卦笔记(一)Gamma函数
Technorati Tags: LDA主题模型
- 【DevOps】团队敏捷开发系列--开山篇
随着软件发布迭代的频率越来越高,传统的「瀑布型」(开发-测试-发布)模式已经不能满足快速交付的需求.2009 年左右 DevOps 应运而生,开发运维一体化,通过自动化工具与流程让整个软件开发构建.测 ...
- hdu 1233 还是畅通project(kruskal求最小生成树)
还是畅通project Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tota ...
- tools: idea 2017 激活
1.下载并安装ideaIU (https://www.jetbrains.com/idea/download/#section=windows ,下载Ultimate版)2.下载 JetbrainsC ...
- J2EE: JCA (Java Connector Architecture) [转]
JCA (J2EE 连接器架构,Java Connector Architecture)是对J2EE标准集的重要补充.因为它注重的是将Java程序连接到非Java程序和软件包中间件的开发.连接器特指基 ...
- Material使用02 图标MdIconModule、矢量图作为图标使用及改进
1 MdIconModule模块的使用 1.1 在需要用到的模块中引入Material图标模块 import { BrowserModule } from '@angular/platform-bro ...