Java编程:Applets、SQL与EJBs部署描述符详解
立即解锁
发布时间: 2025-08-17 02:29:12 阅读量: 7 订阅数: 10 


Java网络编程与文件处理入门
### Java编程:Applets、SQL与EJBs部署描述符详解
#### 1. Applets练习
在进行Applets相关练习时,需要使用支持Java的浏览器,若要运行Swing applets,还需安装Java Plug - In,该插件通常在安装J2SE时会自动安装。
##### 1.1 练习13.1
- **操作步骤**:
1. 从资源中复制AppletGreeting1、SimpleGraphics1、ImageTest1a和ImageTest1b示例的.class和.html文件,同时复制图像文件cute kittie.gif和earth.gif。
2. 确保这些文件位于当前文件夹。
3. 依次将每个HTML文件加载到appletviewer和浏览器中,并观察结果。
##### 1.2 练习13.2
- **操作步骤**:
- **(i)部分**:从资源中复制AppletGreeting2、SimpleGraphics2、ImageTest2a、ImageTest2b、FahrToCelsius2和SimpleSoundApplet2示例的.class和.html文件,以及声音文件cuckoo.au。
- **(ii)部分**:对上述六个HTML文件执行与练习13.1中四个HTML文件相同的操作,同样确保所有文件位于当前文件夹。需要注意的是,applet ImageTest2a在appletviewer和浏览器中都无法运行。
##### 1.3 练习13.3
创建一个带有单个包含图像按钮的Swing applet。当按钮/图像被按下时,应发出一声“cuckoo”的声音。
- **操作步骤**:使用JButton构造函数,将ImageIcon作为其唯一参数。
##### 1.4 练习13.4
在HTML文件中指定一个300像素x 300像素的区域,创建一个applet(Swing或pre - Swing),使其包含一个图像,该图像的位置和缩放应使其占据applet窗口每侧40像素的区域。为了使applet窗口与网页区分开来,可将applet的背景颜色更改为任意选择的颜色。
##### 1.5 练习13.5
创建一个applet(Swing或pre - Swing),用于显示一个简单的房屋绘图。
#### 2. SQL介绍
SQL是一种用于与关系数据库进行通信的语言,起源于20世纪70年代中期IBM的工作。虽然ANSI和ISO都试图制定SQL标准,最新的是SQL3,但大多数用户仍在使用SQL2。尽管各大数据库供应商会在“标准”SQL基础上添加自己的特定扩展,但最常用的SQL语句被广泛接受,不同供应商之间差异很小或没有差异。
##### 2.1 SQL语句分类
SQL语句可分为两大类:
- **数据定义语言(DDL)语句**:影响表的结构,如创建、删除属性或整个表。
- **数据操作语言(DML)语句**:操作数据库表的行(或“元组”)。
每个SQL语句都以分号结尾,通常SQL关键字使用大写,属性(字段)使用小写,表名以小写开头并首字母大写。
##### 2.2 DDL语句
- **创建表**:使用CREATE TABLE语句,语法如下:
```sql
CREATE TABLE <TableName>(<fieldName> <fieldType> {,<fieldName> <fieldType>});
```
例如,创建Stock表:
```sql
CREATE TABLE Stock(stockCode INTEGER,
description VARCHAR(20),
unitPrice REAL,
currentLevel INTEGER,
reorderLevel INTEGER);
```
有些数据库可能会使用FLOAT、DECIMAL(<n>,<d>)或NUMERIC代替REAL。
- **删除表**:使用DROP语句,语法为:
```sql
DROP TABLE <TableName>;
```
例如:
```sql
DROP TABLE Stock;
```
- **添加属性**:使用ALTER TABLE语句,语法如下:
```sql
ALTER TABLE <TableName> ADD <fieldName> <fieldType> {,<fieldName> <fieldType>};
```
例如:
```sql
ALTER TABLE Stock ADD supplier VARCHAR(30);
```
- **删除属性**:同样使用ALTER TABLE语句,但带有DROP子句,语法为:
```sql
ALTER TABLE <TableName> DROP <fieldName> {,<fieldName>};
```
例如:
```sql
ALTER TABLE Stock DROP supplier;
```
##### 2.3 DML语句
- **SELECT**:用于从表中选择值,是最常用的SQL语句。基本语法为:
```sql
SELECT <fieldName> {,<fieldName>} FROM <TableName> [WHERE <condition>];
```
例如:
```sql
-- 返回Stock表中所有行的所有属性
SELECT * FROM Stock;
-- 返回Stock表中stockCode和description属性
SELECT stockCode, description FROM Stock;
-- 返回Stock表中currentLevel小于等于reorderLevel的行的stockCode、currentLevel和reorderLevel属性
SELECT stockCode,currentLevel,reorderLevel FROM Stock WHERE currentLevel <= reorderLevel;
-- 使用AND和OR创建复合条件
SELECT stockCode, unitPrice FROM Stock WHERE unitPrice > 1 AND unitPrice < 1.5;
-- 按unitPrice降序排序
SELECT * FROM Stock ORDER BY unitPrice DESC;
```
- **INSERT**:用于向表中插入单个行,语法为:
```sql
INSERT INTO <TableName> [<fieldName>{,<fieldName>}] VALUES (<value>{,<value>});
```
例如:
```sql
INSERT INTO Stock VALUES(222222,'Rubber',0.57,315,200);
```
- **DELETE**:用于从指定表中删除一行或多行,必须与WHERE子句结合使用,语法为:
```sql
DELETE FROM <TableName> WHERE <condition>;
```
例如:
```sql
-- 删除Stock表中stockCode为222222的行
DELETE FROM Stock WHERE stockCode = 222222;
-- 删除Stock表中unitPrice小于1的行
DELETE FROM Stock WHERE unitPrice < 1;
```
- **UPDATE**:用于修改指定表中的一行或多行,语法为:
```sql
UPDATE <TableName> SET <fieldName = value> {,<fieldName = value >} [WHERE <condition>];
```
例如:
```sql
UPDATE Stock SET unitPrice = 1 WHERE unitPrice < 1;
```
如果要影响所有行,则省略WHERE子句。
#### 3. EJBs部署描述符
下面是企业JavaBean使用的部署描述符文件的基本语法:
```xml
<?xml version="1.0"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar>
<enterprise-beans>
<session>
<description>
...[Optional]...
</description>
<ejb-name>...[Bean name]...</ejb-name>
<home>...[Name and path of home interface]...</home>
<remote>...[Name and path of remote interface]...</remote>
<ejb-class>...[Name and path of bean class]...</ejb-class>
<session-type>...[Either Stateless or Stateful]...</session-type>
<transaction-type>...[Usually Container]...</transaction-type>
<env-entry>
<env-entry-name>...[Name of non-persistent variable]...</env-entry-name>
<env-entry-type>...[Variable's type]...</env-entry-type>
<env-entry-value>...[Initial value]...</env-entry-value>
</env-entry>
...[Lines 15 - 19 repeated for other non-persistent variables]...
</session>
<entity>
<description>
...[Optional]...
</description>
<ejb-name>...[Bean name]...</ejb-name>
<home>...[Name and path of home interface]...</home>
<remote>...[Name and path of remote interface]...</remote>
<ejb-class>...[Name and path of bean class]...</ejb-class>
<persistence-type>...[Container or Bean]...</persistence-type>
<prim-key-class>...[Name and path of primary key class]...</prim-key-class>
<reentrant>...[True or False]...</reentrant>
<cmp-version>...[Persistence version no.]...</cmp-version>
<abstract-schema-name>...[Name of bean schema]...</abstract-schema-name>
<cmp-field>
<field-name>...[Persistent data item]...</field-name>
</cmp-field>
...[Lines 34 - 36 repeated for other persistent data items]...
<primkey-field>...[Name of key field]...</primkey-field>
</entity>
...[Lines 21 - 38 repeated, for other entity beans]...
</enterprise-beans>
<assembly-descriptor>
<security-role>
<description>
...[Optional]...
</description>
<role-name>....[Value]...</role-name>
</security-role>
...[Lines 41 - 46 repeated, for other security roles]...
<method-permission>
<role-name>...[Value]...</role-name>
<method>
<ejb-name>...[Bean name]...</ejb-name>
<method-name>...[Method name]...</method-name>
</method>
...[Lines 49 - 52 repeated, for other methods]...
</method-permission>
...[Lines 47 - 53 repeated, for other method permissions]...
<container-transaction>
<method>
<ejb-name>...[Bean name]...</ejb-name>
<method-name>...[Method name]...</method-name>
</method>
<trans-attribute>....[Value]...</trans-attribute>
</container-transaction>
...[Lines 54 - 60 repeat
```
0
0
复制全文
相关推荐









