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 ...
随机推荐
- suds库使用说明官方文档
OVERVIEW The Suds web services client is a lightweight soap-based client for python the is licensed ...
- 零基础学习Hadoop
零基础学习hadoop,没有想象的那么困难,也没有想象的那么容易.在刚接触云计算,曾经想过培训,但是培训机构的选择就让我很纠结.所以索性就自己学习了.整个过程整理一下,给大家参考,欢迎讨论,共同学习. ...
- javascript设计模式——适配器模式
前面的话 适配器模式的作用是解决两个软件实体间的接口不兼容的问题.使用适配器模式之后,原本由于接口不兼容而不能工作的两个软件实体可以一起工作.适配器的别名是包装器(wrapper),这是一个相对简单的 ...
- 【Java入门提高篇】Day9 Java内部类——静态内部类
今天来说说Java中的最后一种内部类--静态内部类 所谓的静态内部类,自然就是用static修饰的内部类,那用static修饰过后的内部类,跟一般的内部类相比有什么特别的地方呢? 首先,它是静态的,这 ...
- CSS3基础知识
CSS3基础 1 样式表的使用 1.内联样式表. 只影响单个元素,常用于标签. <p style="color: aqua;font-size: 20px">This ...
- linux crontab yum安装
crontab工具来做计划任务,定时任务,执行某个脚本等等 1.检查是否已安装crontab # crontab -bash: crontab: command not found 执行 cronta ...
- Tabhost中Activity绑定Service
在android中,一个Activity绑定一个Service组件我们一般用Context().bindService方法就能够.可是假设这个 Activity属于一个Tabhost的话就不行了,在网 ...
- Spark Shuffle模块——Suffle Read过程分析
在阅读本文之前.请先阅读Spark Sort Based Shuffle内存分析 Spark Shuffle Read调用栈例如以下: 1. org.apache.spark.rdd.Shuffled ...
- JAVA入门[3]—Spring依赖注入
Spring支持属性注入和构造器注入,它支持XML和注解两种方式.本文介绍Spring控制反转容器加载包含beans的XML文件,实现依赖注入. 一.创建bean实例 暂且抛开对象依赖,我们先看下如何 ...
- F02 金融学第二定律 资金的积聚
美国南北战争,北方取胜的关键在于发行了债券,从而积聚了资金,提升了北方军队战斗力. 纽约的逆袭,得益于伊利运河的修建,而伊利运河的建造需要的资金,全靠债券发行积聚的资金. 聚积起来的资金,往往决定了重 ...