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 ...
随机推荐
- THinkPHP简单漂亮的分页类 DownLoad
PHP include_once("config.php"); require_once('page.class.php'); //分页类 $showrow = 10; //一页显 ...
- UWP 保存Image的图片到本地文件
上一篇说显示一张图片到Image控件,比较简单. 那个假设我Image控件有图片了,想保存到本地,这个就要花心思了,不过也不复杂的... var rtb = new RenderTargetBitma ...
- UWP 共享文件——发送者
这一节,顾名思义,即使你要共享数据给别人,你是数据的提供者.分两步即可1.直接复制代码 protected override void OnNavigatedTo(NavigationEventArg ...
- Python学习之--socket续集
IO多路复用: I/O多路复用指:通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作. 一个很简单的linux例子,select,poll, ...
- slurm任务调度系统部署和测试(一)
1.概述 本博客通过VMware workstation创建了虚拟机console,然后在console内部创建了8台kvm虚拟机,使用这8台虚拟机作为集群,来部署配置和测试slurm任务调度系统. ...
- NGUI_PopupList
八.PopuList下拉菜单 1.使用Populist的规律: (1).有一系列选项需要玩家做出选择,这些选项是有限多个的. (2).这些选项玩家必须选择一个,也只能选择一个. (3).这些选项如果全 ...
- 小tip:生成一组不重复的随机数(去重的方法)
var arr = []; for(var i=0;i<150;i++){ // num为0-100的随机数 var num = Math.round(Math.random()*100); v ...
- python3.6 urllib.request库实现简单的网络爬虫、下载图片
#更新日志:#0418 爬取页面商品URL#0421 更新 添加爬取下载页面图片功能#0423 更新 添加发送邮件功能# 优化 爬虫异常处理.错误页面及空页面处理# 优化 爬虫关键字黑名单.白名单,提 ...
- Android长按事件和点击事件问题处理,OnItemLongClickListener和OnItemClickListener冲突问题
今天在做demo时,须要设置ListView的item的长按和点击事件.OnItemLongClickListener和OnItemClickListener,然而点击事件能够实现,可是在长按操作时会 ...
- 论文笔记:Chaotic Invariants of Lagrangian Particle Trajectories for Anomaly Detection in Crowded Scenes
[原创]Liu_LongPo 转载请注明出处 [CSDN]http://blog.csdn.net/llp1992 近期在关注 crowd scene方面的东西.由于某些原因须要在crowd scen ...