其实javabean具有哪几种属性的问题并不复杂,但是又很多的朋友都不太了解简述使用jdbc技术的主要步骤,因此呢,今天小编就来为大家分享javabean具有哪几种属性的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
Java中如何实现分页功能
虽然现在有很多好用的框架,对分页进行支持,很简单的就把分页的效果做出来,但是如果手动实现分页效果又如何呢。
一、分页的思路
首先我们得知道写分页代码时的思路,保持思路清晰,有步骤的进行,才能行云如水。先来看看分页的效果
这就是一个分页导航,其中能得到的数据有
totalRecord:总共员工数,数据库中总的记录数,这里有55条
totalPage:总页数,11页
pageSize:每页显示的记录数,这里可以看到每页显示5条
pageNum:当前页为第几页,比如图中就为第9页,因为9是没有超链接的,
start:总共能显示5页,让用户进行点击,7为起始页
end:11为能显示的尾页,也就是,如果用户点击第8页,那么start就为6,end就为10,每次都只有5页共点击查询。
每次能够得到对应页数所需要的5条数据,等等这些数据都要在jsp中显示出来,也就是说,每次都要从后台拿那么多数据过来进行显示,所以我们就想办法把这些数据封装在一个javabean当中,每次后台都将查询到的数据放入javabean对象中,我们只需要将该对象存入request作用域,然后在jsp页面中从域中获取需要的数据即可。
二、创建PageBean存放数据
PageBean.java
总共需要8个属性pageNum、pageSize、totalRecord、totalPage、startIndex、list、start、end,
pageNum、pageSize、totalRecord:通过构造方法就能得到。pageNum请求页面提交过来的参数,pageSize是自己设置的,totalRecord是查询数据库得到的
totalPage、startIndex、start、end是通过内部算法得出,
list需要通过查询数据库在通过set方式得到。
注意:该类使用泛型是为了不仅仅在这个项目中使用,在别的项目中也同样可以使用,
代码如下
ViewCode三、在service层编写业务逻辑代码
其实就是在该层将我们所需要的PageBean对象构建好,返回给上一层
User类是我们需要显示的数据的封装后的javabean。
四、Servlet中编写控制代码
五、JSP中显示数据,构建分页导航
因为将我们所有需要的数据都封装在了pageBean中,pageBean对象又在request域中,所以在jsp页面中,我们只需要拿到我们所需要的数据,进行显示即可,构造导航图需要注意的有一点,逻辑要搞清楚,想要显示什么不想显示什么,全屏自己控制了,只需要记得一点,在请求Servlet时,需要把请求的页码交给服务器。不然服务器不知道你要获得第几页的数据。
我做的导航图的逻辑代码
显示所有员工数量、总页数
首先超链接
如果当前页为第一页时,就没有上一页这个超链接显示
如果当前页不是第一页也不是最后一页,则有上一页和下一页这个超链接显示
如果当前页是最后一页,则只有上一页这个超链接显示,下一页没有
尾页超链接
、
代码
ViewCode六、总结
其实分页真的很简单,难点就在一个地方,javabean的构建,只要理清楚了pageBean中需要哪些属性,各种属性的作用是什么,那么分页就soeasy了。还有一个就是在jsp中写分页导航时的逻辑,不要混乱了。
如何领悟Java三大框架
Hibernate:
Hibernate主要就是ORM(对象关系映射)由框架+配置文件实现的。让实体类和数据库表进行一一对应关系。让实体类先和数据库表对应,让实体类属性和数据库表中字段一一对应。这样就不需要操作数据库表,而操作表中对应的实体类对象。以此来实现对应的增删改查操作。
同样对于dao层的框架还有Mybatis,Mybatis不是一个完全的ORM框架,MyBatis的sql需要开发人员自己编写,但同时提供了输入和输出的自动映射,所以可以认为是半自动的ORM框架。Mybatis可以通过XML或注解方式灵活配置要运行的sql语句,并将java对象和sql语句映射生成最终执行的sql,最后将sql执行的结果再映射生成java对象,对于不断变更的客户需求更加灵活。但是灵活的前提是Mybatis无法做到数据库无关性,如果需要实现支持多种数据库的软件则需要自定义多套sql映射文件,工作量大。而Hibernate对象关系映射能力强,数据库无关性好。
Struts2:
Struts2处理请求是为每个请求都创建一个单独的Action类,Action类当中的Field属性参数作为输入和输出参数用IOC来依赖注入的方式,是基于类的开发。
同样的SpringMVC则采用输入Request和Reponse作为参数,返回ModelAndView的方式,是单例的模式,且是基于方法的模式。
spring:
Spring最核心的概念就是DI(依赖注入)和AOP(面向切面编程),DI也称为IoC(控制反转)。有了Spring之后,通过IOC,所有的对象都可以从Spring容器中得到。每个对象由Spring注入到对应的地方。通过IoC先由Spring创建对象后,才能进行下一步对象注入(DI),所以说DI依赖IOC。
你平时主要使用什么Java开发框架
Java框架一直以来都是面试必备的知识点,而掌握Java框架,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能对当前正在开发中的系统有整体的认知,从而更好的熟悉和学习技术,这里我把常见的一些框架给您整理一下。
Spring框架,这个只要想从事java开发或正在从事java开发的,没有人不知道吧?没有人不在用吧?一般应该是天天用才是。SpringIoc和SpringAOP是Spring的两大核心功能,让java程序员解放了,各种整合框架,轻松搞定,把重心放到业务实现上去。
hibernate框架,也是我最喜欢的框架之一。是开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用。
可以说java官方的jpa,就是适应hibernate的超好用,而设计的。如果没有hibernate,可以不一定有orm的出现。
MyBatis,不多说,也是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解来配置和映射原生信息,将接口和Java的POJOs(PlainOrdinaryJavaObject,普通的Java对象)映射成数据库中的记录。
ApacheShiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。
Activiti项目是一项新的基于Apache许可的开源BPM平台,从基础开始构建,旨在提供支持新的BPMN2.0标准,包括支持对象管理组(OMG),面对新技术的机遇,诸如互操作性和云架构,提供技术实现。
随着DevOps的流行,SpringCloud是一系列框架的有序集合,当前最为流行。这里涉及到好多框架,我就不一一列出来了,大家可以自己去了解。
总之,做为一个Java开发者,熟练掌握并应用20种以上框架应该不叫算多,Java的生态太强大,所有大家要好好学习呀。
vo、po、dto、bo、pojo、entity、mode如何区分
称呼确实很多,我把我知道的总结一下:
VOvalueobject:值对象
通常用于业务层之间的数据传递,由new创建,由GC回收。
POpersistantobject:持久层对象
对应数据库中表的字段。
VO和PO,都是属性加上属性的get和set方法;表面看没什么不同,但代表的含义是完全不同的。
DTOdatatransferobject:数据传输对象。
表里面有十几个字段:id,name,gender(M/F),age,conmpanyId(如001)...
页面需要展示四个字段:name,gender(男/女),age,conmpanyName(如今日头条股份有限公司)。
DTO由此产生,一是能提高数据传输的速度(减少了传输字段),二能隐藏后端表结构。
BObusinessobject:业务对象
BO把业务逻辑封装为一个对象。
我理解是PO的组合,比如投保人是一个PO,被保险人是一个PO,险种信息是一个PO等等,他们组合起来是第一张保单的BO。
POJOplainordinaryjavaobject:简单无规则java对象
纯的传统意义的java对象,最基本的JavaBean只有属性加上属性的get和set方法。
可以转化为PO、DTO、VO;比如POJO在传输过程中就是DTO。
DAOdataaccessobject:数据访问对象
主要用来封装对数据的访问,注意,是对数据的访问,不是对数据库的访问。
其他的还有model/module/domain/entity什么的...等我再总结总结...
我想把它们翻译成“人话”讲出来。
希望我的回答能够帮助到你!
Java开发中,MyBatis、Hibernate、Spring Data JPA应该如何选择
选择哪一种框架,需要结合项目实际来,结合业务场景和团队成员的能力,综合考虑并选择技术方案。
先和大家讲讲每一种框架是啥Hibernate:POJO与数据库表建立映射关系;Java程序员可以使用操作对象的思维操作数据库。(POJO就是JavaBean,只有有属性、set、get方法)
Mybatis:做的是POJO与SQL之间的映射关系;程序员需要编写SQL;
SpringDataJPA:有人说它是对Hibernate更高级的封装,这种说法是有一些问题的;第二部分详细说明一下。
要解释清楚SpringDataJPA是什么,需要一步步说起期初Java需要通过各个数据库厂商提供的API进行数据库的访问,后来JAVA提出了JDBC,程序直接使用JDBC这套规范就可以跟各个数据库进行对接;
接着诞生了ORM技术,简化了Java对象的持久化工作,出现了Hibernate、TopLink等ORM框架;
Sun公司在JDK1.5的时候,吸收了Hibernate、TopLink等ORM框架的优点,提出了Java持久化规范:JPA;
Hibernate在3.2的时候提供了JPA的实现,其余的JPA的供应商还有诸如OpenJPA、Toplink等;
Spring在做持久化这一块的工作,开发了Spring-data-xxx这一系列包,如:Spring-data-jpa,Spring-data-redis,Spring-data-mongodb等等,这些都是Spring提供的基于JPA和其他一些NOSQL的Repository。
SpringdataJPA是在JPA规范的基础下提供了Repository层的实现,但是使用哪一款ORM需要你自己去决定;相比我们更为熟悉的Hibernate和MyBatis,SpringDataJPA可以看做更高层次的抽象。
使用SpringdataJPA,默认底层是Hibernate,但是可以修改成其他的ORM框架。
几种框架的优劣Hibernate开发难度较大,学习周期长;但是可以让开发者无需关心SQL,更专注业务流程;HQL不关心数据库的类型,所以迁移起来很方便;
Mybatis需要手动编写SQL语句(更直观),可更直接地对SQL进行优化,但是数据库移植性差;
SpringDataJPA简化了数据库访问,可以通过命名规范编写SQL,如果SQL较为复杂,还是需要通过注解的方式编写SQL;它更适用于现在微服务的架构(微服务的极致都是单表操作)。
从个人的角度:MyBatis>SpringDataJPA>Hibernate,或者MyBatis+SpringDataJPA。
我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。好了,文章到此结束,希望可以帮助到大家。