跟我学EJB 分布式编程技术——SQlServer2000CMP20+SessionBean+JSP+Servlet实现实例
第一部分SQLServer2000概述
性别 女 男
工资 2000 3000
编号 1 2
工程名称 SS PP
客户 RAIN SUN
负责人 2 2
Transact-SQL语言
结构化查询语言SQL (Structured Query Language )
SQL语言现在已成为关系型数据库环境下的 标准查询语言。目前,最新的SQL标准是 1992年制定的SQL-92。
SQL Server 2000的版本功能和特点
SQL Server 2000常见的版本有: 企业版(Enterprise Edition) 标准版(Standard Edition) 个人版(Personal Edition) 开发人员版(Developer Edition)
SQL Server 企业版
过对它进行数据的维护和管理。
数据库系统模型
数据库系统模型是指数据库中数据的存储结构。
根据具体数据存储需求的不同,数据库系统模型 分为:
1.结构模型(层次模型) 2.网络模型 3.面向对象模型 4.关系模型
关系数据库
关系型数据库使用的存储结构是多个二 维表格。
编号 1 2
姓名 孙晓晴 陈有朋
(2)Internet 软件:
如果希望在Windows NT 4.0 Workstation/Server 或 Windows 95/98操作系统上安装 SQL Server 2000,必需 首先有 Microsoft Internet Explorer 5.0。
如果想要编写XML应用程序,还要安装Internet信 息服务(IIS)。
1、服务管理器
功能: 启动、停止和暂停SQL Server服务
在对SQL Server中的数据库进行任何操作 之前,需要首先启动SQL Server服务。
SQL Server2000简介
管理功能
管理服务器组
根据数据库服务器的不同执行功能,将多个服务器划分到不 同的服务器组,对服务器进行分类管理。SQL Server安装 后,自动创建了一个名为“SQL Server组”的服务器组。 新建一个服务器组 删除一个服务器组
注册SQL Server服务器
在服务器组下注册SQL Server服务器,创建SQL Server实 例 。安装过程中将本地计算机作为一个SQL Server服务器 注册在系统默认提供的“SQL Server组”中。 新建SQL Server注册(过程)
1sqlserver服务管理器的运行启动和停止组件服务服务器组件sqlserver数据库引擎mssqlserver服务sqlserver代理程序sqlserveragent服务microsoft搜索服务分布式事务处理协调器msdtc服务sqlserver数据库引擎mssqlserver服务sqlserver代理程序sqlserveragent服务运行在特定的时间或间隔调度发生的sqlserver任务
ห้องสมุดไป่ตู้
3、服务管理器
负责启动、暂停和停止SQL Server 2000的四种 服务。
1.SQL Server 服务管理器的运行 2. 启动和停止组件服务
服务器组件
1. SQL Server 数据库引擎(MSSQL Server 服务)
2. SQL Server 代理程序(SQL Server Agent 服务)
用于定义客户和服务器之间通信。 服务器网络实用工具用于配置服务器端的网络 连接和相关参数。 客户端网络实用工具用于进行客户端配置,要 根据服务器端网络实用程序进行相应地设置使 客户端连接到服务器上,才能保证数据的通信。
SQLServer2000使用指南
1. SQL Server 2000使用指南1.1 SQL Server 2000简介SQL Server是微软公司开发的企业级关系型数据库管理系统,其目前的最高级版本是SQL Server 2000。
该数据库管理系统通过对高端硬件平台以及最新网络和存储技术的支持,为最大的Web站点和企业级的应用提供了可扩展性和高可靠性。
SQL Server 2000可以将数据库连接到Internet,并通过Web浏览器显示数据操作,因此它是一个真正的客户机/服务器结构的管理系统。
它具有完全的Web功能,支持扩展标记语言(XML)并且拥有一个新的、集成的数据挖掘引擎,使用户可以快速创建下一代的可扩展电子商务和数据仓库解决方案。
SQL Server 2000还可与Microsoft的其他产品以及第三方产品方便地实现无缝操作,具有良好的兼容性,因此它深得用户青睐,成为数据库产品中的杰出代表。
1.基于图形的管理工具作为一个SQL Server的初学者,图形化管理工具使得在SQL Server中管理服务器变得非常容易。
主要图形用户接口工具是SQL Enterprise Manager。
这个工具利用了微软管理控制台(MMC)的功能。
MMC是微软发布的用来从一个位置管理所有运行于Windows NT的服务的工具。
它可利用单个应用程序管理Windows NT、Internet Information Server 、SQL Server和其他产品。
2.集中式的管理不管SQL Server服务器相距多远,都可以在中心位置使用SQL Enterprise Manager 来管理服务器。
例如,有十台服务器,相距数百里,但是能使用一台计算机来管理所有的服务器。
这将大大降低维护多台服务器的费用,因为这只需一名管理员来管理所有服务器。
3.支持多客户应用程序SQL Server提供了一组标准应用程序,可以用它们来管理服务器和修改数据。
SQL Server还提供了一组标准,例如 Open Database Connectivity(开放式数据库连接,ODBC)。
SQL SERVER 2000概述
Server
Client
Storage Engine
Processor Local Database Memory
SQL SERVER 2000 概述
ClientClient-Server Communication Process
Client Application 1
Query Result Set
客户端:商务逻辑处理, 客户端:商务逻辑处理,把数据 呈现给用户 服务器端:管理数据库,在多个 服务器端:管理数据库, 请求之间分配存储区, 请求之间分配存储区,网络带宽 和磁盘操作等可利用的资源
SQL SERVER 2000 概述
C/S Components
Client Application Database API (OLE DB, ODBC, DB-Library) Client Net-Library SQL Server Server Net-Libraries Open Data Services Relational Engine
SQL SERVER 2000 概述
6.3 对象的引用
完全限定
server.database.owner.object
部分限定
Server
本机当前实例
Database
当前数据库
Owner
当前数据库用户
SQL SERVER 2000 概述
7 工作内容
SQL Server系统管理: Server系统管理: (日常的)
4 组成
SQL Server的服务程序: Server的服务程序 的服务程序: MSSQLServer:处理所有的T SQL语句 MSSQLServer:处理所有的T-SQL语句,管理 语句, 服务器上所有构成数据库的文件 SQL Server Agent(SQLServerAgent):创建 Agent(SQLServerAgent): ):创建 和管理本地或多服务器上的作业, 和管理本地或多服务器上的作业,报警和操作员 Microsoft分布事务协调器 MSDTC): Microsoft分布事务协调器(MSDTC):协调分 分布事务协调器( ):协调分 布式事务 SQL Server的客户软件 Server的客户软件 SQL Server Enterprise Manager 管理工具和向导 命令行管理工具: 命令行管理工具:osql, bcp SQL Server帮助及Online Books Server帮助及 帮助及Online
SQL Server 2000 讲义
删除数据库:
• 在企业管理器中删除 • 使用Transact-SQL语句删除(DROP DATABASE database_name)
SQL Server 2000 数据库的安全性管理
身份验证:Windows身份验证和SQL Server 身份验证 设置身份验证模式:服务器—属性—安 全性
移动数据库:在SQL Server 中可以使用拆分 Detach 和附加Attach 的方法来移动数据库
• 拆分数据库是从服务器中移去逻辑数据库,但不 会将操作系统中的数据库文件删除。 • 附加数据库将会创建一个新的数据库并复制存储 在已有的数据库文件和事务日志文件中的数据。 • 使用系统存储过程Sp_detach_db 来拆分数据库, 用系统存储过程Sp_attach_db 来附加数据库
Master数据库:记录了一个SQL Server 系 统的所有系统信息
所有的登录信息 系统设置信息 SQL Server 初始化信息 系统中其它系统数据库和用户数据库的相关 信息包括其主文件的存放位置等
msdb 数据库 :SQL Server 代理程序 调度警报和作业以及记录操作员时使用
还原 master 数据库后,SQL Server 实例将 自动停止。如果需要做进一步的修复并希望防止 有多个连接与服务器连接,应再次以单用户模式 启动服务器。否则,服务器会以正常方式重新启 动。
•
• •
•
安装过程注意事项:(本地计算机)
1、选择安装程序选项 2、选择实例名:除默认实例外,所有数据库引 擎实例都由安装该实例的过程中指定的实例名 标识。应用程序必须提供准备连接的计算机的 名称和命名实例的实例名。计算机名和实例名 以格式 computer_name\instance_name 指定。 3、安装类型
SQLserver2000基础
SQL Server 2000常用工具简介
查询分析器
SQL查询分析器除了具有上述功能外,还具有如下特点: 在Transact-SQL语法中用不同的颜色标识不同单词的含义, 以提高复杂语句的易读性。 对象浏览器和对象搜索工具,使用户可以轻松查找数据库中 的对象和对象结构。 以网格或自由格式文本窗口的形式显示结果。 可以有选择地执行选中的脚本 可以将在查询分析器的文本编辑器中编写的脚本保存起来。
小结
SQL Server 2000是一种大型的支持客户/服 务器结构的关系数据库管理系统,作为基于各种 Windows平台的最佳数据库服务产品,它可应用 在许多方面,包括电子商务等。在满足软硬件需 求的前提下,可在各种Windows平台上安装SQL Server 2000。SQL Server 2000提供了许多易于 使用的图形化工具和向导(最常用的是企业管理 器和查询分析器),为创建和管理数据库,包括 数据库对象和数据库资源,都带来了很大的方便 。
安装与测试
安装及安装选项
“仅客户端工具”,表示只安 装SQL Server 2000的客户端数 据库管理工具,此选项包含管 理 SQL Server 的客户端工具和 客户端连接组件。 “服务器和客户端工具”,表 示同时安装SQL Server 2000的 服务器端和客户端软件。 “仅连接”,表示只安装客户 端Microsoft的数据访问组件和 网库,该选项只提供连接工具 ,不提供客户端工具或其他组 件。
2 安装与测试
• 2.1 安装前的准备 • 2.2 安装及安装选项 • 2.3 测试安装
安装与测试
安装前的准备 1.SQL Server 2000的版本 SQL Server 2000有四个版本:企业版、标准版、开发版 和个人版。其中,企业版支持SQL Server 2000中的全部功能 ,适合于作为生产数据库服务器使用;标准版支持许多SQL Server 2000功能,但在下述方面能力欠缺:服务器扩展性、 大型数据库支持、数据仓库、Web站点,标准版适合于作为小 工作组或部门的数据库服务器使用;开发版支持企业版的全部 功能,但只是将开发版作为开发和测试系统使用,不能作为生 产服务器使用;个人版适用于在移动环境中作业的用户,并且 所运行的应用程序需要本地数据存储。
跟我学EJB 分布式编程技术——SQlServer2000CMP20+SessionBean实现实例
目录1.1SQlServer2000CMP20+SessionBean实现实例 (2)1.1.1在该项目中再增加一个SessionBean以访问前面的CMP (2)1.1.2在JBuilder中创建访问实体Bean的SessonBean (3)1.1.3添加访问SessionBean的客户端 (15)1.1.4编译和执行该客户端程序 (21)1.1SQlServer2000CMP20+SessionBean实现实例1.1.1在该项目中再增加一个SessionBean以访问前面的CMP注意:本文档是对前面的“利用EJBQL 以增加其它的find方法”续文一、从EJB 会话bean 访问EJB 实体Bean1、使用EJB 会话bean 访问EJB 实体bean。
通过用会话bean 包装实体bean,您能获得更佳性能。
这加强了通过活动的进程对象包装被动的数据实体对象这一有效的对象模型概念。
然而,可以编写EJB 客户机来直接访问实体bean,但是这样以性能为代价。
2、通过用会话bean 包装实体bean 可以获得最佳性能。
(1)避免从客户机或servlet 代码访问EJB 实体bean。
这个最佳实践满足了两个性能方面的问题:(2)减少远程方法调用的数目。
当客户机应用程序直接访问实体bean 时,每个读方法就是一个远程调用。
包装会话bean 能在本地访问实体bean,将数据收集在一个结构中,接着返回一个值。
(3)为EJB 实体bean 提供外部事务上下文。
在每个事务完成时,实体bean 使其状态与其底层数据存储同步。
当客户机应用程序直接访问实体bean 时,每个读方法成为一个完整的事务。
存储和载入跟随在每个方法后面。
当会话bean 包装实体bean 来提供外部事务上下文时,实体bean 在外部会话bean 到达事务边界时使其状态同步。
1.1.2在JBuilder中创建访问实体Bean的SessonBean1、创建出SessionBean(1)右击设计面板(2)该SessionBean的名称为:SessionEJBBean,interface 为remote,有状态的SessionBean,事务由容器来负责并且Session synchronization选择为false。
SQL server 2000 学习资料很全.doc
“数据库原理与SQL Server"考试大纲(一)考试形式◊试题类型:标准试题(单选、多选、判断)0组卷策略:标准题50道,总分值为100分仑考题形式:远程考试G考试时间:120分钟(二)知识点内容和分值比例序号知识点内容分值比例1SQL Server 2000 安装5%2数据库管理10%3表管理20%4数据检索20%5Transact-SQL 语言15%6索引、视图、存储过程和触发器15%7数据库复制和恢复5%8数据安全性5%9数据完整性5%(三)具体考试内容一、SQL Server 2000 安装(5%)>了解SQL Server版本,软硬件平台;A 掌握SQL Server 2000的定制安装,服务管理器、企业管理器组件的基本操作,数据库服务器的注册方法。
二、数据库管理(10%)>了解数据库技术的发展、数据库系统的构成,SQL语言、Transact-SQL语言;A 了解SQL Server 2000数据库的订阅和发布方法;A 掌握SQL Server 2000数据库的构成、数据库的创建方法。
三、表管理(20%)>了解数据模型及相关概念;>掌握关系模型及相关概念;>掌握表结构的建立方法、表数据的编辑方法;>掌握函数依赖的相关概念,属性集闭包的概念及计算,INF、2NF、3NF的概念及判断。
四、数据检索(20%)A 了解Transact-SQL运算符和函数、关系的定义和性质;A 掌握基本查询语句、多表查询语句、子查询语句、集合查询语句、生成新表查询语句、嵌入式SQL语句的构造;>掌握关系的集合运算和专门的关系运算、关系代数表达式的构造、关系代数表达式向SELECT语句的转换。
五、Transact-SQL 语言(15%)>了解转移、等待、返回语句;A 了解游标的概念和应用;A 掌握批处理定义、块定义及注释、输出语句,Transact-SQL语言的变量,条件语句与循环语句;>掌握SQL Server程序设计方法。
SQL SERVER 2000的编程接口技术
魏英 tutor_wei@ 7952616
DataBase
OLE DB和ADO
ADO(ActiveX Data Objects)
ADO是Microsoft为OLE DB设计的一个便于使用的 API,它使用户能够编写应用程序,通过OLE DB提 供者访问和操作数据库服务器中的数据
DataBase
SQL SERVER应用程序开发构架
数据库应用程序的体系结构
应用程序 接口 DB
数据库应用程序的基本工作流程
用户通过应用程序的用户界面向数据库访问接口发出 服务请求,再由数据库访问接口向数据库发出请求, 并将所需的结果返回给应用程序
魏英 tutor_wei@
魏英 tutor_wei@ 7952616
DataBLeabharlann seODBC和DAO、RDO
ODBC的体系结构
ODBC数据库应用程序
驱动程序管理器 SQL SERVER 驱动程序 SQL SERVER 数据源 DB Oracle 驱动程序 Oracle 数据源 DB DB2 驱动程序 DB2 数据源 DB
魏英 tutor_wei@
SQL Server2000概述(我的讲义)
我们这门课的名称是企业级数据库的安装、配置和管理——SQL Server2000企业版的安装、配置和管理我们是信息管理专业的学生,数据库的学习对我们来说是非常重要的。
现在是信息社会,对于信息的存储是非常重要的实际上,在目前计算机的应用中,大多数都是对信息进行存储和处理。
把以前需要进行人工处理的转化为机器处理,来节约人力、物力、财力。
这就是数据库产生的根源。
(数据库技术和网络技术的发展是MIS成熟标志)●数据库是存放数据的仓库。
是指以文件形式长期存储在计算机内的、有组织的统一整理的数据集合。
数据库技术是计算机科学中发展最快的领域之一,也是应用最广的技术之一,它已成为计算机信息系统与应用系统的核心技术和重要基础。
●数据库管理系统是数据库系统中对数据进行管理的重要软件,是数据库的核心部分,其主要功能是在操作系统的支持下对数据进行管理。
有了DBMS,我们就不用了解数据库底层是怎么工作的,只要发出指令,让DBMS为我们做就行了。
用户通过DBMS访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护工作。
如数据库的备份、恢复,数据的完整性,有效性,事务处理等等。
●数据库系统(Database System,简称DBS)是指包含有数据库的计算机应用系统,一般由数据库、数据库管理系统、应用程序、数据库管理员和用户构成。
现在很多实际应用的计算机应用系统都是数据库系统。
●关系数据模型以数学中的关系为基础的数据模型,利用二维表格的数据形式描述数据记录之间的联系。
第一章 SQL Server2000概述一、什么是企业级数据库目前市面上有很多数据库产品,这些数据库产品可以分为两大类1、桌面型数据库Access2003、Visual FoxPro6.0、Excel2003等等都是桌面型数据库。
使用桌面型数据库的用户大多都有这样的特点:●使用特点同时使用数据库的人数不多或者使用数据库的人就不多,一般都是专人管理和使用数据库,对数据库的存取、查询操作也不是每天大量进行。
跟我学Java入门到精通培训教程——第8章 利用JBuilder开发各种Java应用程序(第3部分)
1.1跟我学Java入门到精通培训教程——第8章利用JBuilder开发各种Java应用程序(第3部分)1.1.1利用JBuilder开发数据库方面的应用编程1、启动SQLServer2000数据库服务器2、在JBuilder中实现访问数据库的程序(1)将SQL Server2000的JDBC驱动程序加入到JBuilder中,并选择Tool菜单中的Enterprise Setup(2)在对话框内选择Database Drivers页,然后点击“添加”按钮(3)并点击“Add”按钮(4)再点击“New”按钮,并在对话框内进行设置(通过点击“Add”按钮将SQL Server2000的三个JDBC驱动程序加入到对话框中)(5)再点击“OK”按钮(6)最后点击“OK”按钮此时将在JBuilder的安装路径下产生出一个文件,该文件包含有驱动程序的位置classpath路径中)。
3、创建程序的Project项目文件,和对SQLServer2000数据库进行操作的程序代码(1)创建程序的Project项目文件(2)对该项目文件进行属性设置,以指示运行时的库文件(即将JDBC的驱动程序路径加入到该项目中)(3)在该Project中添加一个Java Class并作为本程序的主类类名称为:SqlServerJdbc,不需要包名称(4)将原来的SqlServerJdbc.java拷贝过来(5)源代码如下import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;public class SqlServerJdbc extends JFrame implements WindowListener{ String[] columnNames = {};Object [][]dataRows;String url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=pubs";String DBDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";Connection con=null;Statement stmt=null;PreparedStatement pstmt=null;ResultSet rs=null;ResultSetMetaData metaData;CallableStatement storeProcStatement;public SqlServerJdbc(String windowTitle) {super(windowTitle);int FrameWidth=600,FrameHeight=400;this.setSize(FrameWidth,FrameHeight);this.setLocation((Toolkit.getDefaultToolkit().getScreenSize().width-FrameWidth)/2,(Toolkit.getDefaultToolkit().getScreenSize().height-FrameHeight)/2);this.addWindowListener(this);JPanel contentPanel=new JPanel();contentPanel.setLayout(new BorderLayout());this.setContentPane(contentPanel);try{Class.forName(DBDriver);}catch(ClassNotFoundException e) {System.out.println("不能正确地加载驱动程序");}try{con=DriverManager.getConnection(url,"sa","");}catch(SQLException e){System.out.println("用户的口令不正确");}try{stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);rs=stmt.executeQuery("select * from authors");metaData=rs.getMetaData();int numberOfColumns = metaData.getColumnCount();columnNames = new String[numberOfColumns];for(int column = 0; column < numberOfColumns; column++){columnNames[column] = metaData.getColumnLabel(column+1);}int rowCounter=0;if(st()){rowCounter=rs.getRow();}rs.beforeFirst(); //将记录指针回退到最开始处,此时必须将Cursor设置为可回滚dataRows=new Object[rowCounter][numberOfColumns];int loopRowCounter=0;while(rs.next()){for(int column = 0; column < numberOfColumns; column++){dataRows[loopRowCounter][column]=rs.getObject(column+1);}loopRowCounter++;}rs.close();}catch(SQLException e) {System.out.println("SQLState:"+e.getSQLState());System.out.println("Messager:"+e.getMessage());System.out.println("Vendor:"+e.getErrorCode());}JTable table=new JTable(dataRows,columnNames);JScrollPane jsp=new JScrollPane(table,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);contentPanel.add(jsp,BorderLayout.CENTER);}public static void main(String args[]){SqlServerJdbc mainframe=new SqlServerJdbc("利用JDBC SQLServer2000的驱动程序连接SQLServer2000数据库");mainframe.show();}public void windowOpened(WindowEvent parm1) {}public void windowClosing(WindowEvent parm1) {try{con.close();}catch(SQLException e){}this.dispose();System.exit(0);}public void windowClosed(WindowEvent parm1) {}public void windowIconified(WindowEvent parm1) {}public void windowDeiconified(WindowEvent parm1) {}public void windowActivated(WindowEvent parm1) {}public void windowDeactivated(WindowEvent parm1) {}}(5)对该项目文件进行属性设置,以指示其Main类所在的文件由于本Project没有通过JBuilder中的Application Wizard来产生,因此需要告诉JBuilder 我们的main()方法包括在那个类中(6)对该项目进行Make(7)然后再运行该项目4、将JDBC的驱动程序路径加入到缺省的项目中,从而避免每次设置JDBC的驱动程序路径(1)选择(2)选择前面的库名称(3)最后按下“OK ”按钮。
通过代码示例跟我学如何通过Java JDBC调用SQLServer2000数据库中的存储过程
1.1如何通过Java JDBC调用SQLServer2000数据库中的存储过程1、存储过程概述(1)存储过程存储过程是SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理。
存储过程存储在数据库内,可由应用程序通过一个调用接口执行,而且允许用户声明变量、有条件执行以及其它强大的编程功能。
它可以把复杂的查询与客户端隔离。
(2)使用存储过程的优点1)可以在单个存储过程中执行一系列SQL 语句,允许模块化设计并且可以使用参数输入和输出。
2)可以从自己的存储过程内引用其它存储过程,这可以简化一系列复杂语句。
3)存储过程在创建时即在服务器上进行编译(存储过程被定义以后,将成为数据库的一部分,显示为数据库对象),所以执行起来比单个SQL 语句快。
比在Java程序中使用和发送SQL 语句来操作数据库的速度要快得多。
4)存储过程还具有更好的安全性,它可以包装业务逻辑,对应用层隐蔽数据库结构的改变。
5)当然,使用存储过程也可以大大简化客户应用程序的编写。
因为存储过程运行在DBMS自身,这可以帮助减少应用程序中的等待时间。
不是在Java代码中执行4个或5个SQL语句,而只需要在服务器端执行1个存储过程。
网络上的数据往返次数的减少可以戏剧性地优化性能。
(3)创建存储过程时所应该指定的元素1)所有输入参数和向调用过程或批处理返回的输出参数。
2)执行数据库操作(包括调用其它过程)的编程语句。
3)返回至调用过程或批处理以表明成功或失败(以及失败原因)的状态值2、存储过程的基本语法(1)语法格式CREATE PROCEDURE procedure_name [ ; number ][ { @parameter data_type }[ V ARYING ] [ = default ] [ OUTPUT ]] [ ,...n ][ WITH{ RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ][ FOR REPLICATION ]AS sql_statement [ ...n ](2)其中的符号的含义:1)procedure_name:新存储过程的名称。
跟我学EJB 分布式编程技术——实体EJB组件编程技术及实现实例
目录1.1跟我学EJB 分布式编程技术——实体EJB组件编程技术及实现实例 (2)1.1.1实体EJB组件相关技术及应用 (2)1.1.2实体组件类相关的接口定义 (6)1.1.3实体类型EJB组件持久性管理方式 (7)1.1.4CMP实体Bean编程 (7)1.1.5BMP实体Bean编程 (12)1.1.6复合主键类及应用实例 (15)1.1跟我学EJB 分布式编程技术——实体EJB组件编程技术及实现实例1.1.1实体EJB组件相关技术及应用1、实体组件的基本特征(1)实体组件概述实体组件代表存储在外部介质中的持续(Persistence)对象或者已有的企业应用系统资源。
简单地说:一个实体组件可以模拟为数据库表中的一行记录,多个客户端应用能够以共享方式访问表示该数据库记录的实体组件。
依赖于EJB容器提供的事务服务,多个客户端应用能够在保持数据库记录的一致性和完整性前提下实现对数据资源的共享。
实体类型EJB组件的生命期相对较长并且其状态是持续的。
只要实体组件代表的数据库记录存在,该组件对象实例就一直存在,即使EJB容器崩溃,实体组件仍然具有生命力。
按照实体类型EJB组件持久性的实现形式,可以将实体组件分为容器管理持久性(Container-Managed Persistence,CMP)和组件管理持久性(Bean-Managed Persistence,CMP)两种类型。
在CMP类型EJB 组件的实现代码中,组件程序设计人员不需要为组件的持久性控制方法编写任何数据库操作的代码,而是在组件组装和部署过程中由部署工具自动创建。
如果要创建BMP类型EJB组件,则组件程序设计人员需要为所有持久性方法编写控制代码。
与数据库中的数据记录相对应,每个实体类型EJB组件包含一个主键(Primary Key)标识,该标识与组件代表的数据库记录主键相同。
客户端应用可以利用该主键定位EJB容器中的实体组件对象实例,进而定位组件代表的数据库记录。
任务1 SQL Server 2000概述课程
表1- 1列出了SQL Server 发展过程中 的主要版本及其性能上的变化。
1.1.2 SQLServer 2000的环境要求
SQL Server 特点
(1)真正的客户机/服务器(C/S)体系结构。 (2) 用户界面是图形化的 , 使系统管理和数据库管理更 加直观、简单 。(本书的两条线索, 1 、用企业管理器的 完成对数据库的操作 。2 、用SQL命令完成对数据库的操 作 。类似于网页编程中的Dreamweaver和Html 。)
SQL Server企业管理器是SQL Server管理和 应用的一个综合管理界面 ,SQL Server的所有日 常管理工作都可以在该界面下进行 。为了管理和 使用安装的SQL Server实例 ,首先要将该实例注 册到SQL Server企业管理器中。
实例 的注册步骤如下:
1 、启动服务器实例注册 选中系统自动建立的或已有的服务器组 ,单击鼠标
随着数据库技术的飞速发展 , 出现了各种各样的关系 数据库管理系统(RDBMS) , 中小规模的数据库管理系 统多为Visual FoxPro和Acess,大型的主要是Oracle公司开 发的Oracle ,Microsoft 公司的SQL Server,Sysbase开发的 Sysbase,IBM公司开发的 DB2等 。SQL Server 2000是 Microsoft公司推出的关系数据库管理系统 。SQL Server 2000是一个服务器级数据库管理系统。
序是浏览器(Browser ),例如IE浏览器 ,而应用 服务是Web Server ,例如IIS ,则称该系统的结构 为B/S模式 。B/S 模式是C/S的一种特殊情况 。 目前 B/S模式已得到广泛的应用。
SQL-Server2000实用教程-全
1.4 SQL Server 2000的系统数据库
1.4.2 SQL Server 2000系统表简介 Sysobjects表。SQL Server 的主系统表,出现在每 个数据库中。它对每个数据库对象含有一行记录。
1.4 SQL Server 2000的系统数据库
Sysusers表。出现在master数据库和每个用 户自定义的数据库中,它对整个数据库中的每 个Windows NT用户、Windows NT用户组、 SQL Server用户或者SQL Server角色含有一 行记录。
Sysdatabases表。它对SQL Server系统上 的每个系统数据库和用户自定义的数据库含有 一行记录,只出现在master数据库中。
Sysdepends表。它对表、视图和存储过程之 间的每个依赖关系含有一行记录,出现在 master数据库和每个用户自定义的数据库中。
1.4 SQL Server 2000的系统数据库
注意:如果使用DDL语句的INSERT、 UPDATE和DELETE语句来修改系统表的信息, 对整个系统是非常危险的,应该使用系统存储 过程来代替。
服务管ห้องสมุดไป่ตู้器;
企业管理器;
查询分析器;
服务器网络实用工具;
客户端网络实用工具;
导入和导出数据; 联机帮助文档;
本章首页
2.2 SQL Server服务管理器
SQL Server服务管理器(Service Manager) 是在服务器端实际工作时最有用的实用程序。 SQL Server服务管理器的主要作用是用来启动 数据库服务器的实时服务、暂停和停止正在运 行的服务,或在暂停服务后继续服务。
第01章SQL Server 2000的概述(1次课)
3.数据库(DataBase,简称DB)
数据库是长期存储在计算机外存上的、有 结构的、可共享的数据集合。数据库中的数据 按一定的数据模型描述、组织和储存,具有较 小的冗余度、较高的数据独立性和已扩展性, 可为各种用户共享。
4.数据库管理系统(简称DBMS)
DataBase Management System——DBMS 数据库管理系统是一个软件,是科学地组 织和存储数据、有效地获取和维护数据的软件, 是位于用户和操作系统之间的一层数据管理软 件。 DBMS应具有的功能:
1.信息(Information)
信息是人脑对客观事物的反映,既可以是 对事物的形态、大小、结构、性能等部分或全 部特性的描述,也可以是事物与外部的联系。 举例分析:
2.数据(Data)
数据可以被定义为:描述事物的符号记录 (萨师煊,王珊);或事物的属性特征的信息。
描述事物的符号或属性可以是传统狭义的数 字,也可以是广义的文字、图形、图像、声音、 语音等。广义的数据是在计算机中存储、处理 和传输的二进制数字编码。
8.关系模型涉及的基本概念
关系模型由关系数据结构、关系操作集合 和关系完整性约束三部分组成。
关系模型的数据结构的主要特征是用二维 表表达实体(集)。
关系操作包括查询操作和更新操作两大部 分。 关系模型允许定义三类完整性约束:实体 完整性、参照完整性、用户定义的完整性。
8.关系模型涉及的基本概念
关系:一个关系对应通常说的一张二维表。 元组:表中的一行即为一个元组,也称记录。 属性:表中的一列即为一个属性,每一个属性 都有一个名称称为属性名。 关键字:表中的某个属性组,它可以惟一确定 一个元组。 主键:表可能有多个关键字。在具体应用中, 选出的关键字称为主键。包含在主键中 的属性为主属性。
02SQLServer2000简介和安装
5。选择安全机制
选择WINDOWS身份认证
用户拥有合法的WIN 2000或WIN NT账号 接受Windows系统的身份认证
选择混合的身份认证
用户可以使用WINDOWS身份认证 用户可以使用SQL身份认证
三、安装SQL Server
课堂练习
四、安装后的验证
查阅安装结果 启动、停止和暂停SQL SERVER服务 建立到SQL SERVER的连接
处理器:各版本的WIN 2000和WIN NT均 要求166MH以上
内存:WIN 2000最低为256MB WIN NT最低为64MB
硬盘空间:典型安装250MB 完全安装270MB 客户端100MB
Analysis Services 50~130MB
English Query 80 MB 桌面引擎44MB
查阅安装结果
数据库
数据库文件
Master Model Msdb Tempdb Pubs Northwind
Master.mdf Model.mdf Msdb.mdf Tempdb.mdf Pubs.mdf Northwnd.mdf
数据库日志文件 Mastlog.ldf Modellog.ldf Msdblog.ldf Templog.ldf Pubs_log.ldf Northwnd.ldf
SQL SERVER的架构
客户/服务器架构 客户端负责业务逻辑,并将数据呈现给
客户 SQL SERVER管理数据库,并负责在多
个请求之间分配可用的服务器资源
利用客户编程接口,应用程序能够运行 在不同的客户机上,通过网络与服务器 通讯
附加知识:SQL SERVER的应用架构
SQL Server2000介绍
2010-6-22
SQL Server2000概述 概述
Server简介 SQL Server简介 Server安装 SQL Server安装 SQL Server数据库 Server数据库
2010-6-22
1
SQL Server 简介
Server的特点 SQL Server的特点 Server的主要服务 SQL Server的主要服务
2010-6-22
8
Server与 BackOffice服务器类集成 SQL Server与Microsoft BackOffice服务器类集成
Microsoft SNA系统网络体系结构协议:把 系统网络体系结构协议: 系统网络体系结构协议 运行SNA协议的 协议的IBM环境与基于 的网 环境与基于PC的网 运行 协议的 环境与基于 络链接起来,实现与大型机或AS/400的 络链接起来,实现与大型机或 的 应用与数据相集成. 应用与数据相集成. Microsoft系统管理服务器:管理计算机软件, 系统管理服务器: 系统管理服务器 管理计算机软件, 硬件和财产清单,并用SQL Server存储它的 硬件和财产清单,并用 存储它的 数据库. 数据库.
2010-6-22
16
2. SQL SERVER 的安装需求
下面列出软件需求: 下面列出软件需求:
SQL 版本 操作系统版本 WINDOWS2000 ADV ANCE SERVER WINDOWS2000 SERVER WINDOWS2000 PROFESSIONAL WINDOWS NT4.0 SERVER WINDOWS NT4.0 WORKSTATION WINDOWS 9X
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录1.1SQlServer2000CMP20+SessionBean+JSP+Servlet实现实例 (2)1.1.1在该项目中再增加一个Servlet程序以访问SessionBean (2)1.1.2设计一个访问该Servlet的编程JSP页面 (6)1.1.3编程该Servlet程序的功能实现代码 (8)1.1.4设计项目在实现跳转的两个JSP页面 (12)1.1.5编译和部署本项目的程序 (15)1.1 SQlServer2000CMP20+SessionBean+JSP+Servlet实现实例1.1.1在该项目中再增加一个Servlet程序以访问SessionBean注意:本文档是对前面的“在该项目中再增加一个JSP以便能够在JSP页面中访问该SessionBean”续文1、添加一个Servlet类名称为CallSessionEJBServlet,包名称为callSessionEJBServlet(与EJB不在同一包中)URL地址为:/callsessionejbservlet并创建出自己的运行配置2、查看该Servlet所在的Web.xml文件,注意该Servlet的URL地址<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application2.3//EN" "/dtd/web-app_2_3.dtd"><web-app><servlet><servlet-name>callsessionejbservlet</servlet-name><servlet-class>callSessionEJBServlet.CallSessionEJBServlet</servlet-class> </servlet><servlet-mapping><servlet-name>callsessionejbservlet</servlet-name><url-pattern>/callsessionejbservlet</url-pattern></servlet-mapping></web-app>1.1.2设计一个访问该Servlet的编程JSP页面注:最好直接使用教学例中的Callservlet.jsp,以节省时间<%@ page contentType="text/html; charset=gb2312" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""/TR/html4/loose.dtd"><html><head><title>调用Servlet的页面Callservlet.jsp </title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><body bgcolor="#ffffff"><form method="get" action="/UseSessionBean/callsessionejbservlet"name="callServletIDForm"><table width="272" border="1"><tr><td colspan="2">请选择人员的ID号码</td></tr><tr><td width="120"><div align="center"><select name="authorID"><option value="172-32-1176" selected>172-32-1176</option><option value="213-46-8915">213-46-8915</option><option value="238-95-7766">238-95-7766</option><option value="267-41-2394">267-41-2394</option><option value="274-80-9391">274-80-9391</option><option value="341-22-1782">341-22-1782</option><option value="409-56-7008">409-56-7008</option><option value="427-17-2319">427-17-2319</option></select></div></td><td width="136"><div align="center"><input type="submit" name="Submit" value="提交到Servlet中"></div></td></tr></table></form><form method="post" action="/UseSessionBean/callsessionejbservlet" name="callServletCityForm"><table width="272" border="1"><tr><td colspan="2">请选择人员所在的城市名称</td></tr><tr><td width="120"><div align="center"><select name="cityName"><option value="Oakland" selected>Oakland</option><option value="Rockville">Rockville</option><option value="Salt Lake City">Salt Lake City</option><option value="Palo Alto">Palo Alto</option><option value="San Francisco">San Francisco</option><option value="Covelo">Covelo</option><option value="Lawrence">Lawrence</option><option value="Menlo Park">Menlo Park</option><option value="Berkeley">Berkeley</option></select></div></td><td width="136"><div align="center"><input type="submit" name="Submit" value="提交到Servlet中"></div></td></tr></table></form></body></html>1.1.3编程该Servlet程序的功能实现代码package callSessionEJBServlet;import javax.servlet.*;import javax.servlet.http.*;import java.io.*;import javax.naming.*;import java.util.*;import javax.rmi.PortableRemoteObject;import cmp20ejb.*; //引入EJB所在的包public class CallSessionEJBServlet extends HttpServlet{private static final String CONTENT_TYPE = "text/html; charset=GBK"; SessionEJBHome sessionEJBHome = null; //定义出Home接口对象SessionEJB sessionEJB = null; //定义出Remote接口类型的对象//Initialize global variablespublic void init() throws ServletException {}//Process the HTTP Get requestpublic void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{request.setCharacterEncoding("gb2312");String authorID=request.getParameter("authorID"); //获得从JSP所传递来的参数if(authorID==null){authorID="172-32-1176"; //如果在JSP页面中没有提供参数,将采用缺省参数}sessionEJB=this.getSessionEJBBean();String oneAuthorInfo=sessionEJB.getCMPData(authorID);/*HttpSession session=request.getSession();session.setAttribute("oneAuthorInfo",oneAuthorInfo);response.sendRedirect("/UseSessionBean/ShowAuthorInfo.jsp");*/request.setAttribute("oneAuthorInfo",oneAuthorInfo);String targetURI="ShowAuthorInfo.jsp"; //相对于当前的Web应用程序RequestDispatcher dispatch = request.getRequestDispatcher(targetURI);dispatch.forward(request, response);}//Process the HTTP Post requestpublic void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{request.setCharacterEncoding("gb2312");String cityName=request.getParameter("cityName"); //获得从JSP所传递来的参数if(cityName==null){cityName="Oakland"; //如果在JSP页面中没有提供参数,将采用缺省参数}sessionEJB=getSessionEJBBean();VectorauthorsInfoDataByCityName=sessionEJB.getAllAuthorsInfoDataByCityName(cityName);Vector allAuthorsInfoData=sessionEJB.getAllAuthorsInfoData();request.setAttribute("authorsInfoDataByCityName",authorsInfoDataByCityName);request.setAttribute("allAuthorsInfoData", allAuthorsInfoData);String targetURI="ShowAuthorsByCity.jsp"; //相对于当前的Web应用程序RequestDispatcher dispatch = request.getRequestDispatcher(targetURI);dispatch.forward(request, response);}public SessionEJB getSessionEJBBean(){String url = "t3://localhost:7001";String user = null;String password = null;Properties properties = null;SessionEJB sessionEJBInFunction = null; //定义出Remote接口类型的对象properties = new Properties();properties.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");properties.put(Context.PROVIDER_URL, url);if (user != null) {properties.put(Context.SECURITY_PRINCIPAL, user);properties.put(Context.SECURITY_CREDENTIALS,password == null ? "" : password);}try{Context context = new InitialContext(properties); //获得JNDI上下文环境Object ref = context.lookup("SessionEJBBean"); //利用jndi 名称查找对象sessionEJBHome = (SessionEJBHome) PortableRemoteObject.narrow(ref, SessionEJBHome.class);sessionEJBInFunction = sessionEJBHome.create();}catch (Exception e){}return sessionEJBInFunction;}//Clean up resourcespublic void destroy() {}}1.1.4设计项目在实现跳转的两个JSP页面1、ShowAuthorInfo.jsp页面<%@ page contentType="text/html; charset=gb2312" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><title> 显示Callservlet 的调用结果的页面</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><body bgcolor="#ffffff"><%String oneAuthorInfo=(String) request.getAttribute("oneAuthorInfo");out.print("利用Servlet获得的该人员的信息为:"+oneAuthorInfo); %></body></html>2、ShowAuthorsByCity.jsp页面<%@ page contentType="text/html; charset=gb2312" %><%@ page import="java.util.*" %><%!Vector allAuthorsInfoData=null, oneAuthorsInfoData=null;%><html><head><title>调用Servlet的页面ShowAuthorsByCity.jsp </title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><body bgcolor="#ffffff"><table width="901" border="1"><tr><td colspan="9"> <div align="center">调用SessionBean 中的getAllAuthorsInfoDataByCityName 方法以获得某一城市中的人员的信息(该信息来自于CMPBean )</div></td></tr><tr><td width="93"><div align="center">人员ID</div></td><td width="97"><div align="center">last Name </div></td><td width="109"><div align="center">first Name </div></td><td width="136"><div align="center">电话号码</div></td><td width="133"><div align="center">地址</div></td><td width="81"><div align="center">城市</div></td><td width="70"><div align="center">省(州)</div></td><td width="58">区号</td><td width="66">Contract</td></tr><%allAuthorsInfoData=(Vector)request.getAttribute("authorsInfoDataByCityName");for(int loopCounter= 0;loopCounter < allAuthorsInfoData.size();loopCounter++){ //本循环是获得某一个Vector 对象,它代表某一个人员的总的信息out.print("<tr>");oneAuthorsInfoData = (Vector) allAuthorsInfoData.elementAt(loopCounter);for (int indexCounter = 0; indexCounter < oneAuthorsInfoData.size();indexCounter++){ //本循环是获得某一个人员的各个方面的信息out.print("<td>"+oneAuthorsInfoData.elementAt(indexCounter) + "</td>");out.print("</tr>");}%></table><br><table width="901" border="1"><tr><td colspan="9"> <div align="center"> 调用SessionBean 中的getAllAuthorsInfoData 方法以获得所有的人员的信息(该信息来自于CMPBean )</div></td></tr><tr><td width="93"><div align="center">人员ID</div></td><td width="96"><div align="center">last Name </div></td><td width="111"><div align="center">first Name </div></td><td width="134"><div align="center">电话号码</div></td><td width="134"><div align="center">地址</div></td><td width="81"><div align="center">城市</div></td><td width="70"><div align="center">省(州)</div></td><td width="58">区号</td><td width="66">Contract</td></tr><%allAuthorsInfoData=(Vector) request.getAttribute("allAuthorsInfoData");for(int loopCounter= 0;loopCounter < allAuthorsInfoData.size();loopCounter++){ //本循环是获得某一个Vector 对象,它代表某一个人员的总的信息out.print("<tr>");oneAuthorsInfoData = (Vector) allAuthorsInfoData.elementAt(loopCounter);for (int indexCounter = 0; indexCounter < oneAuthorsInfoData.size();indexCounter++) { //本循环是获得某一个人员的各个方面的信息out.print("<td>"+oneAuthorsInfoData.elementAt(indexCounter) + "</td>");}out.print("</tr>");}%></table></body></html>1.1.5编译和部署本项目的程序1、编译本项目的程序2、将此WebApp再部署到WebLogic服务器中3、执行该WebApp在浏览器中输入http://127.0.0.1:7001/UseSessionBean/CallServlet.jsp选择人员的ID号,然后点击上面的提交按钮,将出现从Servlet中所返回的结果所转跳的页面选择人员的城市名称,然后点击上面的提交按钮,将出现从Servlet中所返回的结果所转跳的页面。