javapo类是什么?什么是pojo类
大家好,今天给各位分享javapo类是什么的一些知识,其中也会对什么是pojo类进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!
pojo类和vo类分别是什么
PO:persistent object持久对象
1.有时也被称为Data对象,对应数据库中的entity,可以简单认为一个PO对应数据库中的一条记录。
2.在hibernate持久化框架中与insert/delet操作密切相关。
3.PO中不应该包含任何对数据库的操作。
POJO:plain ordinary java object无规则简单java对象
一个中间对象,可以转化为PO、DTO、VO。
1.POJO持久化之后==〉PO
(在运行期,由Hibernate中的cglib动态把POJO转换为PO,PO相对于POJO会增加一些用来管理数据库entity状态的属性和方法。PO对于programmer来说完全透明,由于是运行期生成PO,所以可以支持增量编译,增量调试。)
2.POJO传输过程中==〉DTO
3.POJO用作表示层==〉VO
PO和VO都应该属于它。
BO:business object业务对象
业务对象主要作用是把业务逻辑封装为一个对象。这个对象可以包括一个或多个其它的对象。
比如一个简历,有教育经历、工作经历、社会关系等等。我们可以把教育经历对应一个PO,工作经历对应一个PO,社会关系对应一个PO。
建立一个对应简历的BO对象处理简历,每个BO包含这些PO。
这样处理业务逻辑时,我们就可以针对BO去处理。
封装业务逻辑为一个对象(可以包括多个PO,通常需要将BO转化成PO,才能进行数据的持久化,反之,从DB中得到的PO,需要转化成BO才能在业务层使用)。
关于BO主要有三种概念
1、只包含业务对象的属性;
2、只包含业务方法;
3、两者都包含。
在实际使用中,认为哪一种概念正确并不重要,关键是实际应用中适合自己项目的需要。
VO:value object值对象/ view object表现层对象
1.主要对应页面显示(web页面/swt、swing界面)的数据对象。
2.可以和表对应,也可以不,这根据业务的需要。
DTO(TO):Data Transfer Object数据传输对象
1.用在需要跨进程或远程传输时,它不应该包含业务逻辑。
2.比如一张表有100个字段,那么对应的PO就有100个属性(大多数情况下,DTO内的数据来自多个表)。但view层只需显示10个字段,没有必要把整个PO对象传递到client,这时我们就可以用只有这10个属性的DTO来传输数据到client,这样也不会暴露server端表结构。到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO。
DAO:data access object数据访问对象
1.主要用来封装对DB的访问(CRUD操作)。
2.通过接收Business层的数据,把POJO持久化为PO。
简易的关系图:
在java中dto,bo,pojo,po是什么,简单说明
DTO(Data Transfer Object)数据传输对象:主要用于远程调用等需要大量传输对象的地方。
BO(business object)业务对象:从业务模型的角度看,见UML元件领域模型中的领域对象.封装业务逻辑的java对象,通过调用DAO方法,结合PO,VO进行业务操作.
POJO(plain ordinary java object)简单无规则java对象
纯的传统意义的java对象.就是说在一些Object/Relation Mapping工具中,能够做到维护数据库表记录的persisent object完全是一个符合Java Bean规范的纯Java对象,没有增加别的属性和方法.我的理解就是最基本的Java Bean,只有属性字段及setter和getter方法!
PO(persistant object)持久对象
在o/r映射的时候出现的概念,如果没有o/r映射,就没有这个概念存在了.通常对应数据模型(数据库),本身还有部分业务逻辑的处理.可以看成是与数据库中的表相映射的java对象.最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合.PO中应该不包含任何对数据库的操作.
java中,在一个类中在写一个类有什么用处啊有那些好处呢
那个叫内部类
定义在一个类内部的类叫内部类,包含内部类的类称为外部类。内部类可以声明public、protected、private等访问限制,可以声明为abstract的供其他内部类或外部类继承与扩展,或者声明为static、final的,也可以实现特定的接口。static的内部类行为上象一个独立的类,非static在行为上类似类的属性或方法且禁止声明static的方法。内部类可以访问外部类的所有方法与属性,但static的内部类只能访问外部类的静态属性与方法。
外部类按常规的类访问方式使用内部类,唯一的差别是外部类可以访问内部类的所有方法与属性,包括私有方法与属性。如:
pinner p= new pinner();
p.index= 20;
p.Print();
----这种方式适合外部类的非static方法;
pouter po= new pouter();
pinner pi= po.new pinner();
pi.index= 40;
pi.Print();
----这种方式适合外部类的static方法;
内部类类似外部类的属性,因此访问内部类对象时总是需要一个创建好的外部类对象。内部类对象通过‘外部类名.this.xxx’的形式访问外部类的属性与方法。如:
System.out.println("Print in inner Outer.index="+ pouter.this.index);
System.out.println("Print in inner Inner.index="+ this.index);
如果需要在其他类中访问内部类,可以使用:
(1)外部类提供创建内部类的方法供其他类使用。如:
//外部类
pinner getInner()
{
return new pinner();
}
//其他类
pouter.pinner pi= po.getInner();
pi.Print();
(2)直接创建内部类的对象。如:
pouter po= new pouter();
pouter.pinner pi= po.new pinner();
pi.Print();
内部类可以声明在外部类的方法中或语句块中。如果内部类需要访问包含它的外部类方法或语句块的局部变量或参数,则该局部变量或参数必须是final的。外部类的其他方法、其他类无法访问声明在方法内部或块内部的内部类。
如果一个类继承内部类,则创建该类的对象时需提供一个外部类的对象作为构造方法的参数。如:
class Car
{
class Wheel
{
}
}
class SuperWheel extends Car.Wheel
{
SuperWheel(Car car)
{
car.super();
}
public static void main(String [] args)
{
Car car= new Car();
SuperWheel wl= new SuperWheel(car);
}
}
如果创建命名的内部类没有多少实际意义时,可以创建匿名的内部类。比如使用内部类实现接口的功能(如事件处理器、适配器等),而功能的差异较大,需要根据实际的情况创建相应的内部类时,可以使用匿名内部类。简单的示例如下:
interface WebView
{
void doGet();
}
class A
{
WebView ShowName()
{
return new WebView()
{
void doGet()
{
System.out.println("Name");
}
};
}
WebView ShowCode()
{
return new WebView()
{
void doGet()
{
System.out.println("Code");
}
};
}
}
最后,JAVA内部类还有一个作用,那就是实现JAVA的多继承。JAVA本身是不允许多继承的,如果我们想一个类继承多个基类,就可以使用内部类。通过内部类分别继承一个基类,外部类创建内部类的对象,并使用内部类的方法,变相地实现了多继承。
什么是pojo类
vo有两种说法,一个是viewobject,一个是valueobject..就拿前者来说吧,它只负责封装页面传递过来的数据,这和po有些不同..就拿struts1来说,actionform就是一个典型的viewobject.
而valueobject是页面与页面之间的传递时保存值的对象....总的来说,po是最终传给bo以及bo传个dao的东西,他很多情况下与我们真正的数据库表想对应.而viewobject是一个页面上提交后的数据,不一定完全和po的属性相同....
好了,文章到这里就结束啦,如果本次分享的javapo类是什么和什么是pojo类问题对您有所帮助,还望关注下本站哦!