posts - 4, comments - 0, trackbacks - 0, articles - 0

2012年5月8日

 解释一:  

       Java Bean 是可复用的组件,对Java Bean并没有严格的规范,理论上讲,任何一个Java类都可以是一个Bean。但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,通常Java Bean还要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微软COM模型中的本地进程内COM组件,它是不能被跨进程访问的。Enterprise Java Bean 相当于DCOM,即分布式组件。它是基于Java的远程方法调用(RMI)技术的,所以EJB可以被远程访问(跨进程、跨计算机)。但EJB必须被布署在 诸如Webspere、WebLogic这样的容器中,EJB客户从不直接访问真正的EJB组件,而是通过其容器访问。EJB容器是EJB组件的代 理,EJB组件由容器所创建和管理。客户通过容器来访问真正的EJB组件。

  解释二:

     EJB不是一般的JavaBean,EJB是企业级JavaBean,EJB一共分为3种,实体Bean,消息Bean,会话Bean,书写EJB是需要 遵循一定的规范的,具体规范你可以参考相关的资料.另外,要运行EJB,你需要相应的EJB容器,比如Weblogic,Jboss等,而 JavaBean不需要,只需要安装Tomcat就可以了
.EJB用于服务端应用开发, 而JavaBeans用于客户端应用开发
也可以使用JavaBeans进行服务端应用开发,但JavaBeans模型没有提供服务框架,当应用需要使用系统级服务(如事务管理,安全性,生命周期管理等)时,不适合。

2.EJB构件是可部署的,EJB构件可以作为独立的单元被部署到EJB应用服务器上,是应用构件(application components),而JavaBeans构件是不可部署的, JavaBeans构件是开发构件,不能被部署为独立的单元。

3.EJB构件是部署可定制的,使用部署描述符可以在部署EJB时对其运行时配置进行定制,而JavaBeans构件在部署时不能进行定制,JavaBeans构件的定制仅发生在开发阶段,只能利用开发工具创建并组装JavaBeans构件,部署时不能定制

4.EJB构件是分布式对象,可以被客户应用或者其它EJB构件进行远程访问,而JavaBeans构件不是分布式对象,JavaBeans构件只能在其构成的应用中使用,不能提供远程访问能力

5.EJB构件对终端用户不可见,运行在服务端,没有人机交互界面,而部分JavaBeans构件对终端用户可见,如GUI应用中使用的按钮构件

posted @ 2012-05-08 20:58 Xing 阅读(160) | 评论 (0)编辑 收藏

     摘要: 1. 把Strings转换成int和把int转换成StringString a = String.valueOf(2);  //integer to numeric string  int i = Integer.parseInt(a); //numeric string to an int String a = String.valueOf(2);&nb...  阅读全文

posted @ 2012-05-08 20:15 Xing 阅读(507) | 评论 (0)编辑 收藏

 1 调用JDBC API  executeBatch()方法。
 2 不知道有没有直接调用sqlplus 的API。。
 3 sqlplus username/pwd@oracle @1.sql
 4 
 5 import java.sql.*;
 6 import java.awt.*;
 7 import java.util.List;
 8 import java.util.ArrayList;
 9 import java.io.*;
10 import java.lang.*;
11 
12 public class Test {
13 
14     /**
15      * @param args the command line arguments
16      */
17     public Test() {
18         try {
19             Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
20         } catch (Exception e) {
21             System.out.println("加载驱动程序出错");
22             return;
23         }
24     }
25 
26     List<String> loadSql(String sqlFile) throws Exception {
27         List<String> sqlList = new ArrayList<String>();
28         try {
29             InputStream sqlFileIn = new FileInputStream(sqlFile);
30             StringBuffer sqlSb = new StringBuffer();
31             byte[] buff = new byte[1024];
32             int byteRead = 0;
33             while ((byteRead = sqlFileIn.read(buff)) != -1) {
34                 sqlSb.append(new String(buff, 0, byteRead));
35             } // Windows 下换行是 \r\n, Linux 下是 \n
36 
37             String[] sqlArr = sqlSb.toString().split("(;\\s*\\r\\n)(;\\s*\\n)");
38             for (int i = 0; i < sqlArr.length; i++) {
39                 String sql = sqlArr[i].replaceAll("--.*""").trim();
40 
41                 if (!sql.equals("")) {
42                     sqlList.add(sql);
43                 }
44             }
45             return sqlList;
46         } catch (Exception ex) {
47             throw new Exception(ex.getMessage());
48         }
49     }
50     public static void main(String[] args) throws Exception {
51         String url = "jdbc:odbc:friends";
52         Connection con;
53         String sqlFile = "E:\\friends.sql";
54       
55         try {
56             con = DriverManager.getConnection(url);
57             List<String> sqlList = new Test().loadSql(sqlFile);
58             Statement smt = con.createStatement();
59 
60             for (String sql : sqlList) {
61                 smt.addBatch(sql);
62             }
63             smt.executeBatch();
64 
65         } catch (SQLException e) {
66         }
67 
68     }
69 }
70 
71 sql文件内不能有注释,friends.sql文件内容为
72 CREATE TABLE [dbo].[friends](
73     [name] [varchar](50) COLLATE NOT NULL,
74     [address] [varchar](50) COLLATE NULL,
75     [phone] [bigint] NULL,
76     [hireDate] [datetime] NULL,
77     [salary] [int] NULL
78 )
79 

posted @ 2012-05-08 19:57 Xing 阅读(794) | 评论 (0)编辑 收藏

1)JDBC(Java Database Connectivity): JDBC API为访问不同的数据库提供了一种统一的途径,象ODBC一样,JDBC对开发者屏蔽了一些细节问题,另外,JDCB对数据库的访问也具有平台无关性。

  2)JNDI(Java Name and Directory Interface): JNDI API被用于执行名字和目录服务。它提供了一致的模型来存取和操作企业级的资源如DNS和LDAP,本地文件系统,或应用服务器中的对象。

   3)EJB(Enterprise JavaBean): J2EE技术之所以赢得某体广泛重视的原因之一就是EJB。它们提供了一个框架来开发和实施分布式商务逻辑,由此很显著地简化了具有可伸缩性和高度复杂的 企业级应用的开发。EJB规范定义了EJB组件在何时如何与它们的容器进行交互作用。容器负责提供公用的服务,例如目录服务、事务管理、安全性、资源缓冲 池以及容错性。但这里值得注意的是,EJB并不是实现J2EE的唯一途径。正是由于J2EE的开放性,使得有的厂商能够以一种和EJB平行的方式来达到同 样的目的。

  4)RMI(Remote Method Invoke): 正如其名字所表示的那样,RMI协议调用远程对象上方法。它使用了序列化方式在客户端和服务器端传递数据。RMI是一种被EJB使用的更底层的协议。

   5) Java IDL/CORBA: 在Java IDL的支持下,开发人员可以将Java和CORBA集成在一起。他们可以创建Java对象并使之可在CORBA ORB中展开, 或者他们还可以创建Java类并作为和其它ORB一起展开的CORBA对象的客户。后一种方法提供了另外一种途径,通过它Java可以被用于将你的新的应 用和旧的系统相集成。

  6) JSP(Java Server Pages): JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端所请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。

   7)Java Servlet: Servlet是一种小型的Java程序,它扩展了Web服务器的功能。作为一种服务器端的应用,当被请求时开始执行,这和CGI Perl脚本很相似。Servlet提供的功能大多与JSP类似,不过实现的方式不同。JSP通常是大多数HTML代码中嵌入少量的Java代码,而 servlets全部由Java写成并且生成HTML。

  8) XML(Extensible Markup Language): XML是一种可以用来定义其它标记语言的语言。它被用来在不同的商务过程中共享数据。XML的发展和Java是相互独立的,但是,它和Java具有的相同 目标正是平台独立性。通过将Java和XML的组合,您可以得到一个完美的具有平台独立性的解决方案。

  9)JMS(Java Message Service): MS是用于和面向消息的中间件相互通信的应用程序接口(API)。它既支持点对点的域,有支持发布/订阅(publish/subscribe)类型的 域,并且提供对下列类型的支持:经认可的消息传递,事务型消息的传递,一致性消息和具有持久性的订阅者支持。JMS还提供了另一种方式来对您的应用与旧的 后台系统相集成。

  10)JTA(Java Transaction Architecture): JTA定义了一种标准的API,应用系统由此可以访问各种事务监控。

   11)JTS(Java Transaction Service): JTS是CORBA OTS事务监控的基本的实现。JTS规定了事务管理器的实现方式。该事务管理器是在高层支持Java Transaction API (JTA)规范,并且在较底层实现OMG OTS specification的Java映像。JTS事务管理器为应用服务器、资源管理器、独立的应用以及通信资源管理器提供了事务服务。

  12)JavaMail: JavaMail是用于存取邮件服务器的API,它提供了一套邮件服务器的抽象类。不仅支持SMTP服务器,也支持IMAP服务器。

  13) JTA(JavaBeans Activation Framework): JavaMail利用JAF来处理MIME编码的邮件附件。MIME的字节流可以被转换成Java对象,或者转换自Java对象。大多数应用都可以不需要直接使用JAF。

posted @ 2012-05-08 19:55 Xing 阅读(209) | 评论 (0)编辑 收藏