美文网首页
2018-03-27随手记EJB中涉及到的概念

2018-03-27随手记EJB中涉及到的概念

作者: StevenCheuk | 来源:发表于2018-03-27 15:25 被阅读19次

EJB(Enterprise JavaBean)

EJB是sun的JavaEE服务器端组件模型,设计目标与核心应用是部署分布式应用程序。简单来说就是把已经编写好的程序(即:类)打包放在服务器上执行。凭借java跨平台的优势,用EJB技术部署的分布式系统可以不限于特定的平台。EJB (Enterprise JavaBean)是J2EE(javaEE)的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准。其特点包括网络服务支持和核心开发工具(SDK)。 在J2EE里,Enterprise Java Beans(EJB)称为Java 企业Bean,是Java的核心代码,分别是会话Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(MessageDriven Bean)。在EJB3.0推出以后,实体Bean被单独分了出来,形成了新的规范JPA

POJO(Plain Ordinary Java Object):

简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称。使用POJO名称是为了避免和EJB混淆起来, 而且简称比较直接. 其中有一些属性及其getter setter方法的类,没有业务逻辑,有时可以作为VO(value -object)或dto(Data Transform Object)来使用.当然,如果你有一个简单的运算属性也是可以的,但不允许有业务方法,也不能携带有connection之类的方法。

O/R映射层:

O/R映射层是持久层的一个特例,它的数据模型是对象模型(Object),存储模型是关系模型(Relational),cmp和Hibernate是对象模型到关系模型之间转换的两种不同实现。

JDBC(Java DataBase Connectivity,java数据库连接):

是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。

内连接:

内连接也叫连接,是最早的一种连接。还可以被称为普通连接或者自然连接,内连接是从结果表中删除与其他被连接表中没有匹配行的所有行,所以内连接可能会丢失信息。

外连接:

外连接分为三种:左外连接,右外连接,全外连接。对应SQL:LEFT/RIGHT/FULL OUTER JOIN。outer join则会返回每个满足第一个(顶端)输入与第二个(底端)输入的联接的行。它还返回任何在第二个输入中没有匹配行的第一个输入中的行。通常我们省略outer 这个关键字。写成:LEFT/RIGHT/FULL JOIN。

全外连接(fullouter join/ full join)

左表和右表都不做限制,所有的记录都显示,两表不足的地方用null 填充。 全外连接不支持(+)这种写法。

示例:

SQL> select * from dave a full join bl b on a .id = b .id;

ID NAME ID NAM

---------- ---------- ---------- ----------

8 安庆

1 dave 1 dave

2 bl 2 bl

1 bl 1 dave

2 dave 2 bl

3 dba 3 big bird

4 sf-express 4 exc

5 dmm

9 怀宁

已选择9行。

SQL> select * from dave a full outer join bl b on a .id = b .id;

ID NAME ID NAME

---------- ---------- ---------- ----------

8 安庆

1 dave 1 dave

2 bl 2 bl

1 bl 1 dave

2 dave 2 bl

3 dba 3 big bird

4 sf-express 4 exc

5 dmm

9 怀宁

已选择9行。

左外连接(Left outer join/ left join)

left join是以左表的记录为基础的,示例中Dave可以看成左表,BL可以看成右表,它的结果集是Dave表中的数据,在加上Dave表和BL表匹配的数据。换句话说,左表(Dave)的记录将会全部表示出来,而右表(BL)只会显示符合搜索条件的记录。BL表记录不足的地方均为NULL。

示例:

SQL> select *from dave a left join bl b on a .id=b .id ;

ID NAME ID NAME

--------- ---------- ---------- ----------

1 bl 1 dave

1 dave 1 dave

2 dave 2 bl

2 bl 2 bl

3 dba 3 big bird

4 sf-express 4 exc

5 dmm -- 此处B表为null,因为没有匹配到

8 安庆 -- 此处B表为null,因为没有匹配到

SQL> select *from dave a left outer join bl b on a .id= b .id;

ID NAME ID NAME

---------- ---------- ---------- ----------

1 bl 1 dave

1 dave 1 dave

2 dave 2 bl

2 bl 2 bl

3 dba 3 big bird

4 sf-express 4 exc

5 dmm

8 安庆

用(+)来实现, 这个加号可以这样来理解:+ 表示补充,即哪个表有加号,这个表就是匹配表。所以加号写在右表,左表就是全部显示,故是左连接。

SQL> Select *from dave a,bl b where a .id=b .id(+); -- 注意: 用(+) 就要用关键字where

ID NAME ID NAME

---------- ---------- ---------- ----------

1 bl 1 dave

1 dave 1 dave

2 dave 2 bl

2 bl 2 bl

3 dba 3 big bird

4 sf-express 4 exc

5 dmm

8 安庆

右外连接(rightouter join/ right join)

和left join的结果刚好相反,是以右表(BL)为基础的, 显示BL表的所以记录,在加上Dave和BL 匹配的结果。Dave表不足的地方用NULL填充.

示例:

SQL>select * from dave a right join bl b on a .id = b .id;

ID NAME ID NAME

---------- ---------- ---------- ----------

1 dave 1 dave

2 bl 2 bl

1 bl 1 dave

2 dave 2 bl

3 dba 3 big bird

4 sf-express 4 exc

9 怀宁 --此处左表不足用Null填充

已选择7行。

SQL>select * from dave a right outer join bl b on a .id= b .id;

ID NAME ID NAME

---------- ---------- ---------- ----------

1 dave 1 dave

2 bl 2 bl

1 bl 1 dave

2 dave 2 bl

3 dba 3 big bird

4 sf-express 4 exc

9 怀宁 --此处左表不足用Null填充

已选择7行。

用(+)来实现, 这个+号可以这样来理解:+ 表示补充,即哪个表有加号,这个表就是匹配表。所以加号写在左表,右表就是全部显示,故是右连接。

SQL> Select * from dave a,bl b where a .id(+)=b .id;

ID NAME ID NAME

---------- ---------- ---------- ----------

1 dave 1 dave

2 bl 2 bl

1 bl 1 dave

2 dave 2 bl

3 dba 3 big bird

4 sf-express 4 exc

9 怀宁

由于比较难理解,所以推荐看https://www.cnblogs.com/superAng/p/5607079.html,这个感觉比较直观

相关文章

  • 2018-03-27随手记EJB中涉及到的概念

    EJB(EnterpriseJavaBean) EJB是sun的JavaEE服务器端组件模型,设计目标与核心应用是...

  • JPA

    请问EJB需要直接实现它的业务接口或者Home接口吗?请简述一下理由。 考察点:EJB 参考回答: 在EJB中则至...

  • 远程通信技术(RPC)概览

    广义的远程通讯技术包括:RPC,WebService,RMI,JMS,EJB,JNDI 一、概念解释 RPC:远程...

  • eclipse中 EAR Libraries

    eclipse中 EAR Libraries 是 开发EJB工程所需的库包

  • 第三式 组合实体模式

    1.简介 组合实体模式用在 EJB 持久化机制中。一个组合实体是一个 EJB 实体 bean,代表了对象的图解。当...

  • Tutorial EJB - Overview:EJB概况

    EJB 是 EnterpriseJavaBeans 的简称。EJB 是 J2EE 平台的非常重要的一部分。J2EE...

  • 吊打面试官之 JavaEE(EJB)部分[5]

    1.请问EJB需要直接实现它的业务接口或者Home接口吗?请简述一下理由。 参考回答: 在EJB中则至少要包括10...

  • JavaEE之entity / DTO / VO

    ejb Enterprise JavaBean(EJB),企业javaBean。是java的核心代码,分别是会话B...

  • weblogic踩坑之javax.sql.DataSource

    在启动weblogic服务时,报错,昨天还好好的: javax.ejb.EJBException: EJB Exc...

  • Spring

    一、概念 1.开源的轻量级框架,目的是用来代替EJB,Spring的根本使命是:简化Java开发。 2.核心:面向...

网友评论

      本文标题:2018-03-27随手记EJB中涉及到的概念

      本文链接:https://www.haomeiwen.com/subject/onmjcftx.html