JavaBean和BeanUtils工具包的应用

基于数据库的自动化生成工具,自动生成JavaBean、自动生成数据库文档等(v5.0.0版_JAR) 博客地址:http://blog.youkuaiyun.com/vipbooks 一直以来根据数据库表结构自动生成JavaBean、自动生成MyBaits的Mapper映射配置文件、自动生成数据库设计文档都是一件让人很头痛的事情,既浪费时间又很繁琐,看着几十上百个表的成千上万个字段,真是一件让人痛苦的事情。 我们也想过很多办法解决这个问题,包括用MyEclipse连接数据库生成JavaBean,但多多少少还是会有一些不尽人意的地方,包括表和表字段的comment总是无法生成,而且还会生成很多无用的注释代码,让代码看起来一点都不干净,配置非常繁琐等等问题。 于是一怒之下,自己动手丰衣足食,于是就自己用Swing写了一个基于数据库的自动化生成工具,支持MySQL、Oracle、SQLServce、PostgreSQL,完美支持JPA注解,可以同时生成Entity和DTO等,可以自动去除表前缀,支持单个和批量生成JavaBean,现在不但成员变量上能生成备注了,而且在Getter和Setter上也能有注释了。更重要的是还能自动生成数据库设计文档和MyBaits的Mapper映射配置文件,如果有多个数据源还能批量生成,使用非常方便。 所有的配置都保存在本地,只要配置过一次,下次使用的时候完全可以秒生成JavaBean、MyBaits的Mapper映射配置文件和数据库设计文档,并且还集成各种实用工具,使得工作效率瞬间爆棚,生产力瞬间爆表! 立即下载


/**
 * 1,IntroSpector内省类-->javaBean(BeanInfo)类: 特殊的Java类
 *
 * 如果要在两个模块之间传递信息,可以将这些信息封装到一个JavaBean中,这种JavaBean的实例对象通常称之为 值对象(Value-Object,简称VO.  
 * 这些信息在类中用私有字段来存储,如果读取或者设置这些字段的值,则需要通过一些方法来访问.
 *
 * JavaBean的属性名称是根据setter和getter方法来确定的,而不是根据其中的成员变量.如果方法名为setId,中文意思即为设置id,至于把它存到哪个变量上面,不用管!
 * 去掉set/get前缀,剩余部分就是属性名:
 *
 * 属性名的动态调整:
  *Age-->如果第二个字母是小的,则把第一个字母变成小的-->age
  *gettime-->time
  *setTime-->time
  *getCPU-->CPU
 *
 * 一个符合javaBean特点的类,当做javaBean来使用的额外好处:
 * 在JavaEE开发中,经常要用到javaBean.很多环境就要去按JavaBean方式进行操作;
 * jdk中提供了对JavaBean进行操作的一些API,这套API就称为内省.内省API有什么好处,:
 *   如果你要自己去通过getX方法来访问私有的x,有一定的难度!
 *   如果用内省这套API操作JavaBean比用普通类方式更方便.
 *
 */

class Person{
 private int x;
 public int getAge(){
  return x;
 }
 //javabean的属性,有set方法而来,此处属性为age;
 public void setAge(int age) {
  this.x=age;
 }
}


 

/**
 * 演示用Eclipse将读取属性和设置属性的流水账代码分别抽取成方法:
 *   只要调用这个方法,并给方法传递 对象/属性名/和设置值,它就能完成属性的修改功能;
 *   得到定义PropertyDescriptor(类名称,对象Java类)BeanInfo的时候,最好采用 obj.getClass()方式,而不要采用 类名.class方式,这样程序更普遍;
 */

public class IntroSpectorTest {
 public static void main(String[] args)throws Exception{
  ReflectPoint pt1=new ReflectPoint(3,5);
  
  String propertyName = "x";
  //"x"-->"X"-->"getX"-->MethodGetX-->
  //调用PropertyDecripetor(属性名称,对象Java类) 类的getReadMethod()和getWriteMethod()方法来获得MethodJava类,再invoke到原来的对象和参数
  
  Object retVal = getProperty(pt1, propertyName);//getReaderMethod重构方法
  
  System.out.println(retVal);//3
  
  Object value = 7;
  setProperties(pt1, propertyName, value);//getWriteMethod重构方法
  
  System.out.println(pt1.getX());//7
 }

 private static void setProperties(ReflectPoint pt1, String propertyName,
   Object value) throws IntrospectionException,
   IllegalAccessException, InvocationTargetException {
  PropertyDescriptor pd2 = new PropertyDescriptor(propertyName,pt1.getClass());
  Method methodSetX = pd2.getWriteMethod();
  methodSetX.invoke(pt1, value);
 }

 private static Object getProperty(Object pt1, String propertyName)
   throws IntrospectionException, IllegalAccessException,
   InvocationTargetException {
  PropertyDescriptor pd = new PropertyDescriptor(propertyName,pt1.getClass());
  Method methodGetX = pd.getReadMethod();
  Object retVal = methodGetX.invoke(pt1);
  return retVal;
  
<strong>  //2,采用遍历方法较复杂,但可看出内省与JavaBean的层次关系: Inspector-->BeanInfo-->PropertyDescriptor</strong>
  
/*  BeanInfo beanInfo = Introspector.getBeanInfo(pt1.getClass());//1先传入reflectPoint对象Java类;
  //2获取各种属性描述类对象,
  PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();
  Object retVal = null;
  for(PropertyDescriptor pd : pds){
   if(pd.getName().equals(propertyName))//3遍历到针对propertyName的pd对象,getName()得到属性名称
   {
    Method methodGetX = pd.getReadMethod();//4获得方法methodGetX的Java类
    retVal = methodGetX.invoke(pt1);//5传入对象返回属性的值;
    break;
   }
  }
  return retVal;
 }
}


 

/**
 * 3,beanutils包导入应用,重要掌握:
 * BeanUtils和PropertyUtils
 *
 * 3.1,BeanUtils.setProperty(Object bean, String name, String value);


 *   例如:BeanUtils.setProperty(pt1, "x", "9");//BeanUtils把属性的 值 都按子串引用
 *    BeanUtils.getProperty(pt1, "x");
 *
 * 3.2,类似BeanUtils的PropertyUtils!!!
  PropertyUtils.setProperty(pt1,"x",9);//注意9,用本身的类型,不作类型转换;
  System.out.println(PropertyUtils.getProperty(pt1, "x").getClass());
 */
/**


 * 4,Java7的新特性:map类简化写法,并可用BeanUtils.setProperty()方法设置键值!


  Map map = {name:"zxx",age:18);
  BeanUtils.setProperty(map, "name", "lhm");
  }*/
 */


javabean工具包 javabean工具包 包含 commons-beanutils-1.8.3.jar 和 commons-logging-1.1.1.jar 立即下载

相关推荐

javabean工具类.rar

该工具主要用于数据库表生成对应的javaBean,支持MYSQL,ORACLE,SQLSERVER数据库

BeanUtils JavaBean 工具包使用

感谢原文作者:小老弟 原文链接:https://www.cnblogs.com/syncmr/p/10523576.html 目录简介BeanUtils类使用示例ConvertUtils功能演示自定义转换使用示例PropertyUtilsCollectionUtilsMaven导入 简介 BeanUtils工具包是由Apache公司所开发,主要是方便程序员对Bean类能够进行简便的操作。 BeanUtils一共分4个包: org.apache.commons.beanutils org.apache..

Jason的学习笔记 961

BeanUtil框架完整包

BeanUtil框架完整包

使用BeanUtils工具包操作JavaBean

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33949359的博客 336

BeanUtil_Jar包

提供了对javabean进行操作的工具类 用了很多年了 很全很经典的BeanUtil_jar包

大数据之VIP(Virtual IP,虚拟IP)负载均衡

VIP(Virtual IP,虚拟IP)负载均衡是一种在计算机网络中常用的技术,用于将网络请求流量均匀地分散到多个服务器上,以提高系统的可扩展性、可靠性和性能。

赵玉的专栏 4124

JAVABEAN是什么和总结JAVABEAN的两种使用方式

原文:http://www.blogjava.net/flysky19/articles/88180.html 一、 javabean 是什么? Javabean 就是一个类,这个类就定义一系列 get 和 set 方法。 So simple ! Javabean 就是为了和 jsp 页面传数据化简交互过程而产生的。 自己的理解: 使用 javabean 和不用 javabean 的

Anglebeat的专栏 6万+

Android AI Agent集成实战:架构设计与自动化技能开发

AI Agent(人工智能代理)是一种能够感知环境、自主规划并执行任务以达成目标的软件实体。其核心原理在于结合大语言模型的推理能力与工具调用(Tool Calling)技术,使应用从被动响应转向主动服务。在移动开发领域,这项技术的价值在于为应用注入“智能大脑”,实现跨应用自动化与个性化交互,从而显著提升用户体验和操作效率。具体到Android平台,其应用场景广泛,例如自动填写表单、智能聊天辅助、个性化工作流优化等。本文聚焦于Android AI Agent的工程化落地,深入探讨了如何利用Accessibil

weixin_42636895的博客 661

JavaBean内省

1、什么是JavaBean?    JavaBean是一种特殊的Java类,主要用于传递数据信息,这种Java类中的方法主要用于访问私有的字段,且方法名符合某种命名规则。   如果要在两个模块之间传递多个信息,可以将这些信息封装到一个JavaBean中,这种JavaBean的实例对象通常称之为值对象(Value Object,简称VO)。这些信息在类中用私有字段来存储,如果读取或设置这些字段

it_Shine的博客 639

【论文精度】生成式预训练模型——BART(Bidirectional and Auto-Regressive Transformers)

​ BART是一个预训练的seq2seq的去噪自编码(denoising autoencoder)模型,BART以下方式进行训练①用任意的噪声函数(noising function)去破坏文本;②学习一个模型来重建原始文本。它使用一个标准的基于transformer的神经机器翻译架构,可以看作是BERT(双向编码器)、GPT(left-to-right解码器)以及其他预训练方案的推广。

weixin_45828972的博客 7450

Java 内省、JavaBean、BeanUtils

内省       内省(IntroSpector)自我检查,主要对 JavaBean 进行操作。 内省是 Java 语言对 Bean 类属性、事件的一种处理方法(也就是说给定一个javabean对象,我们就可以得到/调用它的所有的get/set方法)。  JavaBean       (1)JavaBean 是一个特殊的 Java 类,它的方法名要符合一定的规则命名。例如

DriverKing 1720

PyTorch多机训练Loss不一致问题排查指南:基于算子级一致性验证

比较二次训练过程中所有算子的误差,定位存在一致性问题的pytorch算子

Hi20240217的博客 1158

内省、JavaBean、PropertyDescriptor类、Introspector类、BeanUtils工具包

内省IntroSpector JavaBean主要用于传递数据信息,其方法用于访问私有变量,且方法名符合某种规则。     如果在两个模块之间传递信息,可以将信息封装进JavaBean中,这种对象称为“值对象”(Value Object),或“VO”。方法比较少。这些信息储存在类的私有变量中,通过set()、get()获得。     内省主要是对JavaBean进行操作。Java

tianjinsong的专栏 5458

macOS Jdk1.8安装(目前主流版本的jdk)

添加环境环境变量,类似于windows的高级设置中path配置的环境变量。查看 JAVA_HOME 目录。查看 JDK 版本信息。一直下一步安装就好了。在终端的根目录下运行。

m0_50207524的博客 9353

智能测试策略优化:平衡覆盖率、时间和资源

在软件开发过程中,测试是确保软件质量的关键环节。然而,测试工作往往面临着诸多挑战,其中如何在保证测试覆盖率的前提下,合理分配时间和资源是一个核心问题。本文章的目的在于探讨智能测试策略的优化方法,帮助软件测试团队在有限的时间和资源条件下,实现尽可能高的测试覆盖率。文章的范围涵盖了智能测试策略的核心概念、算法原理、数学模型、实际应用案例以及相关工具和资源等方面。本文将按照以下结构进行组织:首先介绍智能测试策略优化的背景和相关概念,包括核心术语和缩略词的定义;

AIGC应用创新大全的博客 620

Java的Introspector(内省)及BeanUtils工具包的使用

一、内省与反射 1.Introspector(内省) 内省是基于反射实现的,主要用来操作JavaBean,通过内省可以很方便的动态获取JavaBean的属性、set/get方法 2.reflect(反射) 反射就是运行时获取一个类的所有信息,可以获取.class的任何定义信息构造器、成员变量、成员方法 public class Person { private String u...

Luck_ZZ的博客 798

基于YOLOv8的铁路轨道异物检测系统设计与实现

目标检测是计算机视觉领域的核心任务之一,旨在识别图像中特定目标的位置和类别。传统方法主要依赖手工特征(如HOG、SIFT等)和分类器(如SVM),而深度学习方法通过卷积神经网络自动学习特征表示,显著提升了检测性能。YOLO(You Only Look Once)系列算法作为单阶段目标检测的代表,以其高效的检测速度著称。YOLOv8是Ultralytics公司于2023年发布的最新版本,在精度和速度上都有进一步提升。

YOLO 574

使用org.apache.commons.beanutils个人感受

首先说明,这是我在实际使用中的个人感受,并不是从官网的指南中翻译或理解的。总体感觉就是通过使用beanutils这个工具包,我们可以象访问map一样来访问javabean.BeanUtils这个类,就是允许我们用类似于访问map的方式来操作实际的业已存在的javabean.ConvertUtils这个类,感觉象对BeanUtils类的一个支撑,因为毕竟map中的key-value是弱类型的数据,而

samepoint的专栏 1516

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Java高新技术:框架,类加载器方式,JavaBean,内省,BeanUtils工具包

一、内省         1、内省对应的英文单词为IntroSpector,英文意思是检查、视察、体检之意,对于程序即对内部进行检查,了解更多的底层细节。         2、内省的作用:主要针对JavaBean进行操作。   二、JavaBean 1、简述:         1)JavaBean是一种特殊的Java类,主要用于传递数据信息,这种Java类中的方

yjiang_09的专栏 407

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

内省和BeanUtils框架

内省(introspector):                   beanutils内省框架(依赖commons-logging):apache                   www.apache.org                    学内省的原因:  开发框架时,经常需要使用java对象的属性来封装程序的数据,每次都使用反射技术完成此类操  作过于麻烦,所以SUN公

忧桑的小猿猿 454

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

JavaBean

(一)JavaBean是一种特殊的Java类,主要用于传递数据信息,这种java类中的方法主要用于访问私有的字段,且方法名符合某种命名规则。 1、如果要在两个模块之间传递多个信息,可以将这些信息封装到一个JavaBean中,这种JavaBean的实例对象通常称之为值对象(Value Object,简称VO)。这些信息在类中用私有字段来存储 Alt+Shift+S右键菜单选R是添加get,s

lukyaa的专栏 316

黑马程序员---javaBean & introspector(内省)

javaBean & introspector(内省) ----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------ javaBean是一种特殊的java类,主要用于传递数据信息,这种java类中的方法主要用于访问私有字段,且方法名符合某种命名规则. 如果要在两个模块之间传递多个信息,可以将这些信息封装到一个JavaBea

王震阳的博客 634

BeanUtils —— 操作JavaBean 工具 学习笔记

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34246551的博客 111

JavaBean内省:认识JavaBean与内省、对JavaBean的内省操作、Beanutils工具包

-------android培训、Java培训、期待与您交流!------- 1  初识JavaBean与内省 JavaBean是一种特殊的Java类,主要用于传递数据信息,这种java类中的方法主要用于访问私有的字段,且方法名符合某种命名规则。   如果要在两个模块之间传递多个信息,可以将这些信息封装到一个JavaBean中,这种JavaBean的实例对象通常称之为值对象(V

Rockray 1682

内省、beanutils-工具包及应用

为什么要学内省? 开发框架时,经常需要使用java对象的属性来封装程序的数据,每次都使用反射技术完成此类操作过于麻烦,所以sun公司开发了一套API,专门用于操作java对象的属性。 什么是Java对象的属性和属性的读写方法? 内省访问JavaBean属性的两种方式: 通过PropertyDescriptor类操作Bean的属性 通过Introspector类获得Bean对象的 Bean

fengdongkun的专栏 706
上一篇: Java三大常用数组元素排序法,插入/选择/冒泡
下一篇: Java注解类的定义/使用和反射
marching21
博客等级 码龄12年 0粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值