本文内容:

什么是JavaBean

JavaBean的使用

BeanUitls

利用DBUtils从数据库中自动加载数据到javabean对象中

首发日期:2018-07-21

什么是JavaBean

JavaBean是一种遵循开发规范的一种类。在JavaWeb开发中,经常用来存储实体信息,比如用户实体信息,实体信息不应该是散乱的,它应该是一个整体(就好像从数据库取出一个用户的年龄,id,手机等数据,这些数据应该归属于一个对象,而不应该用某个单纯变量来存储),所以才需要javabean。而为了规范开发,以及规范使用规则,所以需要按照一定规则来定义JavaBean。

只有符合以下规则的才是一个javabean:

必须要有一个无参构造函数【一些地方的javabean的使用需要利用反射,所以需要无参构造函数】

所有属性必须私有化【私有规则】

私有化的属性必须提供public类型的getter、setter方法,对于boolean类型的可以使用isXxx来代替。【getXxx()和setXxx()中的属性名首字母要大写(这是一种规则,不然的话,一些例如jsp中的使用“对象.属性名”将无法获取,因为调用的是对应的getter函数)】

JavaBean的使用

JavaBean的定义:

在以前,因为jsp中存在标签可以直接创建一个javabean对象,所以以前也会这样使用。但由于开发规范化【页面和功能相分离】和技术更新,已经逐渐少使用这个方法。不过这里还是演示一下

jsp中的用法:

创建对象:

【scope是指这个对象放到哪里去】

赋值对象:

获取:

【由于jsp有很多获取对象的属性方法,所以上面仅仅是指能直接创建对象的用法】

现在一般都是直接封装数据后直接传给jsp使用,所以jsp中处理的就是取值问题而已。如何封装才是servlet的问题(这里以基础的servlet为例)。

Servlet中的用法:

在servlet中封装信息:

在jsp中获取:

BeanUitls

BeanUtils是Apache开发的一种工具。

BeanUtils可以帮助我们把属性封装到javabean对象的对应属性中,比如可以把提交的表单数据封装到一个实体对象中。

封装时要求参数名称和javabean的属性名相同

使用:

1.导入必须包:主要是logging包和beanutils包

commons‐beanutils‐1.9.3.jar 【工具核心包 ​】

commons‐logging‐1.2.jar 【日志记录包 ​】

commons‐collections‐3.2.2.jar 【增强的集合包】

2.把包右键build path–>add to build path

3.调用函数:

根据属性名手动赋值:这种方式与普通的一个个set没什么区别,少用为妙

自动对应赋值:【下面给的map是表单提交的,但其他的map也是可以的,只要key与属性名相同】

数据转换问题:

如上所示,当使用自动赋值时,BeanUtils会帮助我们把值赋给bean,不过你可能没留意的是,提交上来的age是字符串的,但还是成功赋值给bean中的int类型的age了。这是因为BeanUtils有基本类型转换机制,String之类的可以转成基本数据类型。

但非基本数据类型之间是没有默认转换机制的,所以需要你自己去定义。当然BeanUtils也给了我们不少可以用来转换的转换器。下面以自定义的时间转换器String转Date为例,表单提交的日期是字符串的:

1.定义转换器类(实现Converter),也可以用匿名实现类来定义

2.注册转换器:ConvertUtils.register(转换器对象,类型.class)【注意不要导错类型】

其他有用的功能:

属性拷贝:把一个javaBean的属性拷贝到另一个javaBean对象中

BeanUtils.copyProperties(destinationObj,sourceObj)【第一个参数是目的地,第二个是拷贝源;如果第二个参数是map类型的,那么与populate功能类似;两个参数中间还可以提供一个String类型的参数,代表只复制某一个参数】

获取指定属性:BeanUtils.getProperty(bean,name)【如果指定的属性不存在,则会抛出异常】

补充:

BeanUtils除了赋值这个大功能外,还有不少小功能,但可能比较少有,如果你想要了解更多可以自己去看一下它有什么函数,可以根据函数名和参数类型来揣测函数的功能。

从数据库中自动加载数据到javabean中

可以参考我的另外一篇博文””中的DBUtils的使用来了解jdbc中是如何从数据库中自动加载数据到javabean中

作者:人道浮沉

vue和java bean_Java:JavaBean和BeanUtils相关推荐

  1. 【Vue】Java后端程序员也必须掌握的前端框架(下)

    Vue基础 前言 十一.自定义事件内容分发 十二.vue-cli 1.安装 vue-cli 2.第一个 vue-cli 应用程序 3.Vue-cli目录结构 十三.Vue的Webpack 十四.vue ...

  2. Java Jaxb JavaBean与XML互转

    1.Jaxb - Java Arcitecture for XML Binding 是业界的一个标准,是一项能够依据XML Schema产生Java类的技术. Jaxb2.0是Jdk1.6的组成部分. ...

  3. Java Web——JavaBean简介

    基本概念 JavaBean: JavaBean是一种可重用的Java组件,它可以被Applet.Servlet.SP等Java应用程序调用.也可以可视化地被Java开发工具使用.它包含属性(Prope ...

  4. vue.js java php_准吗?Java程序员喜欢AngularJS,PHP程序员喜欢Vue.js!

    编程语言与框架或者库之间有联系是很正常的事情,如果我们告诉你,使用某一种编程语言或技术的开发人员可能更喜欢某个框架,你会作何反应呢?Stack Overflow根据网站内最常访问的标签将开发人员分为多 ...

  5. 前后端分离工程实现 (VUE、JAVA)、附全部源码

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. 整个工程基本情况简述: 前端工程语言:vue (node.js) 后端工程语言:java (s ...

  6. 前端vue后端java,Vue调用后端java接口的实例代码_亦心_前端开发者

    前段时间 做了个学校的春萌项目,其中用到 先上后端接口代码: package controller; import net.sf.json.JSONObject; import util.DBUtil ...

  7. vue.js java php_听说Java程序员喜欢AngularJS,PHP程序员喜欢Vue.js

    编程语言与框架或者库之间有联系是很正常的事情,如果合肥达内告诉你,使用某一种编程语言或技术的开发人员可能更喜欢某个框架,你会作何反应呢?Stack Overflow根据网站内最常访问的标签将开发人员分 ...

  8. 把javabean复制到另一个javabean 使用BeanUtils.copyProperties(a,b) 复制

    该方法对于两种不同的jar包有两种不同的意义 ,a,b通常是两个结构相似的javabean,注意:a,b里的定义类型名称必须一致才能复制 引用的是org.springframework.beans 则 ...

  9. vue和Java做数据交互_基于vue和springmvc前后端分离,json类接口调用介绍

    基于vue和springmvc前后端分离,json类接口调用介绍 版本要求:spring-3.2.9.RELEASE.vue-2.9.2.axios-0.17.1,其中axios作为http clie ...

最新文章

  1. linux下查找网口_Linux查看网络端口
  2. OpenCV语义细分深度学习网络的实例(附完整代码)
  3. 运用《深入理解Java虚拟机》书中知识解决实际问题
  4. 【Python3 SelectKBest 调用personer出现的错误】
  5. Unity3D学习笔记之五为Prefab添加材质
  6. 最大堆和最小堆和平衡二叉树_最小堆二叉树
  7. PHP常用设计模式汇总
  8. 数据结构课程设计c语言-校园导游系统
  9. C语言中计算字符串长度的函数
  10. 从mysql学起_MySQL学习从这里出发!
  11. xml与map的相互转换
  12. 化工行业危化品实时监控/厂区监控解决方案:EasyGBS如何保障危化品安全生产?
  13. 洛谷P5594-【XR-4】模拟赛(模拟)
  14. Android11以上版本使用高德定位,定位成功,卫星数一直为0
  15. H5调用移动端手机摄像头
  16. java list 随机获取n个_java – 从列表中取n个随机元素?
  17. C# 有符号整数 无符号整数
  18. Vue学习(二)动态绑定与事件监听
  19. 锐龙R7 PRO 6860Z怎么样 相当于什么水平级别
  20. matlab社会统计学,浅谈MATLAB在统计学实验教学中的应用

热门文章

  1. 强烈的打击感jinbiguandan
  2. 飞鸽传书绿色版 部分数据库被陆续公开了
  3. CYQ.Data 轻量数据层之路
  4. 水滴石穿C语言之typedef的问题
  5. 风生水起:Linux的突破口在中国?
  6. 认识计算机硬件实验项目,实验1 认识计算机的硬件与硬件组装
  7. 导师推荐 | 第 4 期临床基因组家系分析,同时解决科研和临床问题
  8. 例7.8 分析下列程序的输出结果。《计算机等级考试二级C++语言》
  9. 农产品加工进销存单_农产品进销存ERP—物资的内部腾挪转换也是交易的一种形式...
  10. java rtmp推流_rtmp推流直播流程