怎么从ResultSet的结果自动构建JavaBean

问题描述

我有元数据表,比如该表为A,现在该表有十条记录,比如是下面的样子。id cn_name en_name data_type1 搜索代码 search_code xxxx2 名称 cname yyy3 审核状态 audit_status ccc45.....这就是该表类似的记录。改变的数据是会增加的。现在我想将该表的记录封装成一个javabean,至于原因,是因为该表的记录是元数据,他会是另外表的表结构的字段,这样我方便处理数据。这个javabean类似这样public class 表名{ private String(全部都是String类型的,业务上这样)searchCode(就是表的记录的en_name); private String cname; private String auditStatus; ...... ...... ......}javabean就是类似上面的样子,我现在的情况的这样,使用jdbc得出ResultSet,然后根据java反射机制一个字段一个字段的构造属性,getter和setter方法。有没有更加简洁和优雅的方法呢?PS:由于项目的关系,没有使用hibernate,so别问我为什么不用这不用那的.谢谢

解决方案

基本上就两种方式:1、自己new 一个Bean,循环后自己逐个对应set进去2、使用反射机制对查询出来的字段动态添加前缀set,并将首字段改为大写,这样就可以调用到指定Bean指定字段的set方法印象中没有更方便的方法了/** * 从ResultSet绑定到JavaBean * * @param ResultSet * @param DTO(JavaBean) * @return DTO */ public static DTO bindDataToDTO(ResultSet rs, DTO dto) throws Exception { //取得Method方法 Method[] methods = dto.getClass().getMethods(); //取得ResultSet的列名 ResultSetMetaData rsmd = rs.getMetaData(); int columnsCount = rsmd.getColumnCount(); String[] columnNames = new String[columnsCount]; for (int i = 0; i < columnsCount; i++) { columnNames[i] = rsmd.getColumnLabel(i + 1); } //遍历ResultSet while (rs.next()) { //反射, 从ResultSet绑定到JavaBean for (int i = 0; i < columnNames.length; i++) { //取得Set方法 String setMethodName = "set" + columnNames[i]; //遍历Method for (int j = 0; j < methods.length; j++) { if (methods[j].getName().equalsIgnoreCase(setMethodName)) { setMethodName = methods[j].getName(); Object value = rs.getObject(columnNames[i]); //实行Set方法 try { //JavaBean内部属性和ResultSet中一致时候 Method setMethod = dto.getClass().getMethod( setMethodName, value.getClass()); setMethod.invoke(dto, value); } catch (Exception e) { //JavaBean内部属性和ResultSet中不一致时候,使用String来输入值。 Method setMethod = dto.getClass().getMethod( setMethodName, String.class); setMethod.invoke(dto, value.toString()); } } } } } return dto; }

时间: 2024-08-04 11:38:15

怎么从ResultSet的结果自动构建JavaBean的相关文章

Flex Ant自动构建

1.  Flex SDK Ant Flex开发者会遇到很多,比如自动构建,在一个有着N多模块,N处源码,构建过程复杂的Flex项目开发中,依赖人力手工构建项目非常不现实(机械重复且枯燥无味的过程,相信哪位开发人员都会避之唯恐不及,而且对于人力是非常大的浪费),而通过使用Ant,我们可以将这些工作交给机器来做,机器最适合干的就是这些程序固定,顺次执行的工作,而且不辞辛苦,又快又好. 1.1.     Ant简介 Ant是一种基于Java的build工具.理论上来说,它有些类似于(Unix)C中的m

WebSphere Commere增量代码的自动构建与部署框架介绍

其中包括涉及的概念,使用的工具,框架结构和环境的准备.通过阅读本文,读者能够对如何实现自动化代码构建和部署有一个基本的了解. Agile -敏捷开发.近些年开始被人们广泛关注.它提倡将一个完整的软件版本划分为多个迭代周期.每个迭代实现不同的特性.重大的,优先级高的特性优先实现,风险高的特性优先实现.在项目的早期就将软件的原型开发出来,并基于这个原型在后续的迭代中不断完善. Delta Code -增量代码.在 Agile 开发模式中,开发人员基于软件原型不断的编写代码对其进行完善和扩充.这些代码

C++编程规范之2:使用自动构建系统

使用自动构建系统 原则:     一次按键就解决问题,使用完全自动化("单操作")的构建系统,无需拥护干预即可构建整个项目. 讨论:     构建有2种模式:增量构建和完全构建.增量构建只重新构建上次构建(可以是增量的或者是完全的)以来发生变化的部分.注意:两次连续增量构建中的第二次构建不应该编写任何输出文件:否则坑内会出现依赖循环,构建系统也可能会执行不必要的操作.     一个项目的完全构建可能有不同形式.可以考虑通过改变许多基本特性,调整构建过程的参数,候选的特性包括目标架构,调

基于容器的自动构建:Docker在美团的应用

基于容器的自动构建:Docker在美团的应用 自动构建系统是从美团的自动部署系统发展出来的一个新功能.每当开发人员提交代码到仓库后,系统会自动根据开发人员定制的构建配置,启动新的Docker容器,在其中对源代码进行构建(build),包括编译(如Java.C++和Go).预处理(如JavaScript和CSS).压缩(如图片)等操作,生成最终需要上线的程序包. (题图来自:tutum.co) 背景和问题 美团的代码自动部署系统承载着美团所有业务的代码上线工作.代码部署系统一开始基于简单的Bash

阿里云镜像服务:基于Tag的Docker自动构建

构建规则 一旦您的Tag符合"release-v$version"的形式,将触发自动构建:1)若您有$version相关的Tag构建规则,则以$version的Tag规则帮您构建:2)若您没有$version相关的Tag构建规则,则帮您以$version的Tag规则进行构建,生成对应的$version镜像: 具体示例 1)首先,需要确认您已经在阿里云镜像服务上创建了镜像仓库,并且开启了"代码变更时自动构建镜像". 2)之后,在镜像仓库对应的源代码仓库上提交相应的Ta

Build CC 0.5发布 交叉编译器自动构建脚本

Build CC 是一个简单的脚本,使用GNU工具链来自动构建交叉编译器. Build CC 0.5该版本改进了完整的交叉编译器的构建.第1阶段的交叉编译器针对Linux使用uClibc的MIPS上的支持. 软件信息:http://build-cc.rkeene.org/fossil/index 下载地址:http://www.rkeene.org/devel/build-cc-0.5.tar.gz

Build CC 0.3发布 交叉编译器自动构建脚本

Build CC是一个简单的脚本,使用GNU工具链来自动构建交叉编译器. Build CC 0.3该版本更新了下载链接的工具,初步支持Solaris 10的编制. 软件信息:http://build-cc.rkeene.org/fossil/index 下载地址:http://www.rkeene.org/devel/build-cc-0.3.tar.gz

《C++编程规范:101条规则、准则与最佳实践》——1.3使用自动构建系统

1.3使用自动构建系统 摘要一次按键就解决问题:使用完全自动化("单操作")的构建系统,无需用户干预即可构建整个项目. 讨论单操作的构建过程非常重要.它应该能将源文件可靠和可重复地转换为可以交付的软件包.现在已经有了大量自动构建工具,没有理由不用.所以,选择一种,用起来吧. 我们曾经见到不少开发单位忽略了构建系统"单操作"这一需求.有些开发单位认为,用鼠标四处点击几下,运行一些实用工具来注册COM/CORBA服务器,手工复制一些文件,就是很不错的构建过程了.可是,我

探讨自动构建高相关度内链方法

内链的重要性不用我多讲大家应该都知道了.内链(外链也一样)的好坏相关度是很重要的指标.本文以discuz程序为例,浅述怎样利用coreseek全文搜索系统建设高相关性的内链. 一.现状 现在自动生产内链一般有两种方法:一是通过插入有相同tag的内链;二是预先指定关键词,在文章内遇到相应关键词则自动插入内链的方法来做内链. 不过这两种方法各有缺点,前一种方法如果是自动生成tag的话常常用生成大量没有的tag,相关度也没法保证,如果手动设置tag的话则是一项长期的非常繁琐工作;后一种方法要手动预设关