关键技术jsp与jdbc应用详解_第1页
关键技术jsp与jdbc应用详解_第2页
关键技术jsp与jdbc应用详解_第3页
关键技术jsp与jdbc应用详解_第4页
关键技术jsp与jdbc应用详解_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第 9 章JDBC 开发环境及配置本章将为读者在展开学习 JDBC 数据库开发之前做一些知识上铺垫,主要包含基本的数据库知识和常见数据库的配置,以及 Java 开发环境 Web 服务器配置等。如果读者对以上知识已经很熟悉,可以跳过本章的学习,直接进入下一章节的学。为便于理解,在这些介绍中,大部分都是以实例的方式进行。本章目标:能够使用 JDBC 连接数据库能够配置 Web 应用服务器了解 Java 开发环境Eclipse熟悉常用的 JDBC 开发调试技巧9.1使用 JDBC 连接数据库使用 JDBC 连接并操作数据库的过程,其实就是调用 JDBC 接口。通过对数据库的操作,将数据库结果封装后返

2、回给 Java 程序,然后交给 Java 程序来处理,这个过程除了调用 JDBC接口,最重要的是数据库操作的基本知识。9.1.1用 SQL 和 Java 建立应用程序的基本知识通常大家说到的数据库,其实是由数据库及其管理组成的系统。数据库系统是为适应数据处理的需要而发展起来的一种较为理想的数据处理的机构。计算机的高速处理能力和大容量器提供了实现数据管理自动化的条件。数据库系组成:般由 4 个部分数据库,即在磁带、磁盘、光盘或其他外存介质上,按一定结构组织在一起的相关数据的集合。数据库管理系统(DBMS),一组能完成描述、管理、数据库的程序系统。它按照一种公用的和可控制的方法完成安全稳定。数据库

3、管理员(DBA)用户和应用程序新数据、修改和检索原有数据的操作,确保数据库的根据上面的理论,可以看出真正同 Java 程序打交道的是数据库管理系统(DBMS),它提供完善的接口,让 Java 程序可以操作一个隐藏在的数据库,并确保该文件及其操作安全。目前常见的大型数据库包括数据库开发着较好的结合。SQL、 Server Oracle、 IBM DB2 等,它们均和 Java而同各类数据库交流沟通的语句是 SQL(Structured Query Language),它是国际通用的数据库操作语言。SQL 语言由命令、子句、运算和集合函数等。它包含三种:数据定义语言 DDL(用来建立及定义数据表、

4、字段以及索引等数据库结构)包含令有 CREATE、DROP、ALTER。数据语言 DML(用来提供数据的查询、排序以及筛选数据等功能)包含令有SELECT、INSERT、UPDATE、DELETE。数据控制语言 DCL 语句包含 GRANT、REVOKE。下面对以上三种语言分别举例说明。1数据定义语言(Data Definition Language,DDL)CREATEALTERDROP(1)CREATE 语句是一个数据库的起点。在 SQL 规定中,完整的 CREATE 语法如下:为了方便读者理解,在实际操作中,只需要记住下面的精简格式即可。231create table 列级完整性约束条件

5、 ,列级完整性约束条件, ;CREATE TABLE | DBF TableName1 NAME LongTableName FREE (FieldName1 FieldType (nFieldWidth , nPreci) NULL | NOT NULLCHECK lExpres1 ERROR cMessageText1 DEFAULT eExpres1PRIMARY KEY | UNIQUEREFERENTableName2 TAG TagName1 NOCPTRANS, FieldName2 ., PRIMARY KEY eExpres2 TAG TagName2|, UNIQUE eE

6、xpres3 TAG TagName3, FOREIGN KEY eExpres4 TAG TagName4 NODUPREFERENTableName3 TAG TagName5, CHECK lExpres2 ERROR cMessageText2)| FROM ARRAY ArrayName在上面的语句中是所要定义的基本表的名字,它可以由一个或多个属性(列或域)组成。建表的同时还可以定义与该表有关的约束性条件,即表中某些属性在数据时应满足的条件,如该属性是否唯一,是否为空等。这些约束性条件自动在系统的数据字典里,由系统对数据库数据的进行检查。例如,通过 Create 语句创建一张员工表

7、Employee,它由工号 EnoEname,Esex,的属Eage,所在部门 Edept 等 5 个属性组成。其中工号不能为空并且是唯一标识一条性,SQL 代码如下:其中,char(N)是字段的数据类型,而 not null 和 unique 等是对该列的数据约束,上面的语句在数据库中执行完成后,将生成一张名为 Employee 的表。除了建表以外,Create 语句还可以用来建立索引。通常出于性能的考虑,会为表建立索引,建立索引的语法如下:语法中的字段说明如下:索引:要创建的索引名称。表:将包含该索引的现存表的名称。字段:要被索引的字段名称。如果创建单一字段索引,在表名称后面的括号中列出字

8、段名;如果创建多重字段索引,列出包括在索引中的每一个字段的名称。若索引为递减排序,使用 DESC 保留字;否则,索引总是递增排序。其中,在可选的 WITH 子句中,可以强制数据有效性规则:通过使用 DISALLOW NULL 选项来在新的索引字段中使用 Null 项。通过使用 IGNORE NULL 选项,避免在索引中包含索引字段为 Null 值的。通过使用 PRIMARY 保留字指定带索引的字段为主键。表明此键是唯一的,所以可以省略 UNIQUE 保留字。通常,建立索引常用的格式如下:Create uniqueclusterindex232CREATE UNIQUE INDEX 索引ON 表

9、(字段 ASC|DESC, 字段 ASC|DESC, .) WITH PRIMARY | DISALLOW NULL | IGNORE NULLCreate table Employee(Eno char(5) not nulique, Ename char(20) unique,Esex char(1), Eage,Edept char(15) );说 明表级约束针对的是一整,列级约束则针对特定的列。索引可以是 unique 或者 cluster。unique 表明此索引的每个索引值只对应唯一的一个。cluster 表示要建立的索引是聚簇索引,即按某一列建好索引后,硬盘上的数据顺序也调整为按

10、这个列的顺序。索引的顺序和顺序是一致的。(2)ALTER 语句,完整 ALTER 的语法格式如下:为方便,常用格式如下:ALTER 有三种行为,分别是:ADD:用于向表中增加新列及新列相关的完整性约束条件,需要注意的是,新的列增加成功后不带任何数据。DROP:用来删除指定的完整性约束条件。MODIFY:用来修改原来的列定义,包括修改列名和数据类型。修改后可能会丢失原有的数据。下面来看看如何在实际操作中使用 ALTER。针对上面创建的 Employee 表,做以下修改:增加员工入职时间列 EDate,其类型为日期型;删除员工的列约束,使之可以重名;修改数据类型为 SMALL;代码如下:233AL

11、TER TABLE Employee ADD EDate DATE; ALTER TABLE Employee MODIFY Eage SMALL;说 明是要修改的基本表的名称。ALTER TABLEADD完整性约束 DROPMODIFY;ALTER TABLE TableName1ADD | ALTER COLUMN FieldName1FieldType (nFieldWidth , nPreci) NULL | NOT NULLCHECK lExpres1 ERROR cMessageText1 DEFAULT eExpres1PRIMARY KEY | UNIQUEREFERENTab

12、leName2 TAG TagName1 NOCPTRANS说 明上述语句中是要建立索引的表,按列名的次序排序。例如按第一列的值升序或降序排序后,再按第二列的值升序或降序排列。每个列默认的排序方式是升序(ASC),也可以指定降序(DESC)。on ,(3)DROP 语句在 SQL 中使用 DROP 语句来删除表、索引等。删除表的语法比较简单,格式如下:若本表一旦被删除,表中的数据以及在此基本表上建立的视图和索引等都将被删除掉,有的系统虽然保留了这些信息但存在不安全的。所以在删除表的时候一定要。索引的删除,用 Drop index 实现,其具体格式如下:2数据语言(Data Manipulati

13、on Language,DML)(1)Select 查询语句Select 是最常用到的 SQL 语句,它的完整语法如下:语法中的参数意释如下: ALL 和 DISTINCT:ALL 表示全部显示,而 DISTINCT 表示显示时不包括重复行。 目标列表达式:对字段可使用 AVG、COUNT、SUM、M 条件表达式比较复杂一点,它包括各类型的运算符:用于比较的运算符:=、=、=、!=、AX、运算符等。用于确定范围的运算符:BETN AND、NOT BETN AND用于确定集合的运算符:IN、NOT IN用于字符匹配的运算符:LIKE(“%”匹配任何长度,“_”匹配一个字符)、NOT LIKE用于

14、空值的运算符:IS NULL、IS NOT NULL用于子查询的运算符:ANY、ALL、EXISTS用于集合查询的运算符:UNION(并)、ERSECT(交)、MINUS(差)用于多重条件的运算符:AND、OR、NOT GROUP BY :按列对查询结果分组. HAVING :分组筛选条件。 ORDER BY 列名 ASC | DESC:用于对查询结果排序,其中 ASC 表示升序,DESC表示降序。下面用实例来说明如何使用 Select 语句。例如,查询如何要从产品表(Product)里面,把字段 PRICE 大于 10 的所有找出来,查询语句如下:以上是最简单的查询。下面定义 3,给出相对复

15、杂的查询。学生表(student)字段:sno、sname、ssex、sage、sdept234SELECT * FROM Product WHERE PRICE 10;SELECT ALL|DISTINCT AS 列名, AS 列名 . FROM , WHERE AND|OR .GROUP BY 列名 HAVING ORDER BY 列名 ASC | DESCDROP index ;DROP TABLE 路径名.表名ALTER TABLE Employee DROP UNIQUE Ename ;说 明各列的含义分别是学号、系别,其中 sno 为主键课程表(course)字段:、 ame、cp

16、no、ccredit说 明各项含义是课程号、课程名、选修课号、学分,其中 cno 为主键学生成绩表(sc)字段为:、 o、score说 明各项的含义是学号、课程号、成绩,主键为 sno 和 cno建好上面的 3 张基本表后,下面开始查询。查询学号中包含 5257 的学生的各科成绩,代码如下:查询学号中为 200236007 的学生的和各科成绩,代码如下:查询与 Leo 一个系别的所有学生信息,代码如下:选择学生表中所有学生的和,并将每个同学的后加上“同学”二字,并将每个人的增加 1 岁,代码如下。(2)INSERT语句学会了 Select 语句,再来看看如何往数据库中添加数据,数据需要使用 S

17、QL 中的INSERT语句,它有两种语法,格式如下:语法 1:语法 2:例如,向学生表中一行学生,代码如下:往成绩表中系别为 Infomation的学生和,代码如下:235INSERTO sc (sno,sname)SELECT Sno, Sname FROM student WHERE sdept = InfomationINSERTO student(sno, sname, ssex, sage, sdept) VALUES (200236007, Leo Zhang, M, 25, Infomation)INSERTO ( , .)子查询INSERTO ( , .) VALUES ( ,

18、 .)select sname + 同学, age+1, from studentselect * from student where class in(select class from student where name=Leo)select student.sno as 学号, as,ame as 课程名, score as 成绩from sc, student, coursewhere student.sno=sc.sno ando and sc.sno = 200236007select * from sc where sno like 5257(3)UPDATE 更新语句数据后

19、,如果遇到信息变化,需要修改,这时就需要用到 Update 语句。Update 语句的语法如下:例如,如果想把电子商务课程的学分提高到 5 分,可以使用以下语句:(4)DELETE 删除语句当某些数据不再需要时,就需要调用 DELETE 语句来删除行。DELETE 的语法如下:例如,删除为 200236001 的学生,代码如下:3数据控制语言(Dontrol Language,DCL)数据控制语言(DCL)是用来设置或者更改数据库用户或角色权限的语句,这些语句包括GRANT、DENY、REVOKE 等语句。通常只有 sysadmin、dbcreator、db_owner 或 db_securi

20、tyadmin等角色的成员才利执行该语言,在 Java 程序中,极少涉及到这些语句,这里只给出基本概念,读者了解便可。(1)GRANT 语句GRANT 语句是语句,它可以把语句权限或者对象权限授予给其他用户和角色。授予语句权限的语法格式如下:(2)DENY 语句DENY 语句用于给当前数据库内的用户或者角色授予权限,并防止用户或角色通过其组或角色成员继承权限。否定语句权限的语法格式如下:(3)REVOKE 语句REVOKE 语句是与 GRANT 语句相反的语句,它能够将以前在当前数据库内的用户或者角色上授予或的权限删除,但是该语句并不影响用户或者角色从其他角色中作为成员继承过来的权限。收回语句

21、权限的语法格式如下:到此,讲解了数据库的基本操作和 SQL 语句的常用方式,这部分知识是最基础的数据库操作,只有掌握这些才能利用 JDBC 操作数据库。9.1.2SQL 和 Java 的特性首先需要解释的一点是,这里的 SQL 是结合在数据库编程环境的中的 SQL,例如 Oracle 的 PL/SQL。PL/SQL 是一种高级数据库程序设计语言,PL/SQL 语言将 SQL 语言的灵活性及功能与第三代语言的可配置能力相结合方面是独一无二的。该语言集合了面向过程语言的过程结构和强大的数据库操作,为设计复杂的数据库应用提供了功能强大、健壮安全的程序设计语言。236REVOKE ALL | seme

22、nt ,.n FROM security_account ,.n DENY ALL | sement ,.n TO security_account ,.n GRANT ALL | sement,.n TO security_account ,.n Delete from student where sno=200236001Delete from表名WHERE AND|OR .update course set ccredit = 5 where cname =电子商务UPDATE 表名SET 列名 1 = 常量表达式 1,列名 2 = 常量表达式 2 . WHERE AND|OR .PL/

23、SQL 是对结构化查询语言(SQL)的过程语言扩展。PL/SQL 的目的是联合数据库语言和过程语言。PL/SQL 的基本叫做一个区段,由 3 个部分组成:即与构建。,可运行,和排除因为 PL/SQL 允许混合 SQL和过程结构,因此可以在将发送到 Oracle 系统去执行之前使用 PL/SQL 区段和副程序来组合 SQL,没有 PL/SQL,Oracle 就需要每次处理 SQL,在网络环境中,这将影响交通流量,而且增加响应时间。PL/SQL 区段只被编译一次并且以可运行的形式,以降低响应时间。有关 PL/SQL 的知识,读者可以参考相关书籍。这里不做详细介绍。读者理解了 PL/SQL对数据库的

24、操作,一定会产生疑问,既然 PL/SQL 有足够强壮和稳定的能力操作数据库,为什么还需要 Java 和 JDBC 来完成数据库操作呢?针对以上问题,这里将 PL/SQL 和 Java 做比较,从它们各自的特点,读者可按照不同情况,选择合适的技术使用。PL/SQL 和数据库紧密结合,处理 SQL 的速度远远大于 Java,更适用于 SQL 密集型的需求。由于 PL/SQL 对 SQL 具备自动可见性。在 PL/SQL 中,毋需任何条件,任何进程和函数在 SQL面前都是可见的。而在 Java 中,首先必须编写对应的调用规范,通过 JDBC 的接口才能有效地SQL。在 SQL 密集型应用中(即需要频

25、繁地读写数据表),PL/SQL 的表现比 Java过程好。这是由于 PL/SQL 本身源于数据库,支持和 SQL 相同的固有数据类型。Oracle 并未在数据库内部直接提供对固有 Java 类型的支持。只有 SQL 类型和和对象相关的类型才能保存在数据库内。因此,假如需要从一个 Java过程中数据库,Oracle 必须将 Java 类型转换成 SQL数据类型(反之亦然)。显然,这会造成对执行效率的影响。而且在某些情况下,这样的转换还会造成速度的下降。由于 PL/SQL 类型仅适用 Oracle,这些代码将丧失移植类型。而 Java 作为一门强壮的面象语言,具有以下优势:移植能力:Java过程可

26、在多家厂商的数据库间移植。另一方面,PL/SQL 仅适用于 Oracle。从理论上说,Oracle 环境。可将来自另一个数据库厂商的 Java 程序方便地移植到真正的面象支持:Java 在设计之初,就被定义成一种真正的“面象”程式设计语言。PL/SQL 则不同,它最开始的时候仅仅是一种程式化的编程语言,同数据库紧密集成,现在还增加了部分面提供了较多的函数库和第象的语言特性以及丰富的库和工具支持,Java 比 PL/SQL的研发工具支持。一种万能语言,支持任何层面的研发:Java 是一种“万能型”语言。可适用于任何层面的研发例如:客户前端的应用程式和小程式(Applet)、服务器后端的服务器小程

27、式(Servlet)和数据库过程等等。因此,采用 Java 编程,可有效降低培训和开发成本。本地编译好的库,在那些计算密集型的应用程式中,连同那些包含了少量数据库读写操作的应用程式中,Java代码的运行速度都要快于对等的 PL/SQL 代码。这是由于 Java.lang 封装是在本地编译好的,也就是说是“固有”的。Java过程在调用本地编译代码时,速度比 PL/SQL 的解释型执行方式快得多。所以,针对 SQL 密集型的大量数据库操作运算,PL/SQL 是不错的选择。而针对大量运算237以及网络分布形式程序,Java 将是更好的选择。除此之外,Java 也正在成为过程研发最好的选择。从 Ora

28、cle 8i 以后, Java 和 PL/SQL以前在 PL/SQL 代码上的投资。过程相互间可以交互操作。因此,不会浪费9.1.3SQL 和 Java 的实际开发应用实例在实际开发中,SQL 和 Java 的相用非常常见,特别是 Oracle 数据库与 Java 语言的无缝结合作为过程的开发语言。下面举例说明两者如何相用。1Java 调用 SQL在 Java 语言中,为了提高程序执行效率,不但可以选择使用 SQL 的 CREATE、UPDATE、SELECT 和 DELETE。还可以使用 Java 的 CallableSement 接口,调用编译好的过程。达到灵活性和高性能的结合。例如,下面

29、展示如何使用 Java 调用 PL/SQL.先编写一段 PL/SQL。调用上面过程的 Java 代码如下:238public sic void setDeage(Poet dyingBard,age) throws SQLException /初始化变量 Connection con=null;CallableSement proc=null; try /获取连接con=connectionPool.getConnection(); proc=con.prepareCall( call set_death_age(?, ?) );/设置参数值proc.setString(1, dyingBar

30、d.getName(); proc.set(2, age);/执行语句proc.execute(); finally /资源try proc.close(); catch (SQLException e) try / 创建名为set_death_age 的过程create procedure set_death_age (poet VARCHAR2, poet_age NUMBER)/定义变量 poet_id NUMBER;/开始执行begin SELECT idO poet_id FROM poets WHERE name = poet;/开始INSERTO deaths (mort_id,

31、 age) VALUES (poet_id, poet_age); end set_death_age;执行该类,在 Java 中完成了 PL/SQL 的操作。这样就实现了 Java 调用 SQL。2PL/SQL 中调用 JavaOracle8i 数据库的一个重要特点是在数据库引擎中包含了 Java 虚拟机(JVM)。该功能使得用户可以在数据库中以与 PL/SQL 代码的地位运行 Java 代码。Java 的简单性和可移植性不仅使 Oracle 可以很好的工作在ernet 上,而且也大大扩展了 PL/SQL 语言的能力。本实例将展示如何在 PL/SQL 中调用 Java。由于在Oracle P

32、L/SQL 的标准内置包中没有提做到这一点。生随机数的函数或过程。这里借助于 Java首先,创建一个 Java 源对象,其中包含一个产生随机数的方法,代码如下:把 Java 代码装入数据库后,还不能马上执行这些代码。在 PL/SQL 中执行一个 Java 成员方法之前,还必须用 CREATE FUNCTION 语句发布该成员方法的程序代码(编译源程序为字节码),代码如下:现在,就可以在 PL/SQL 中调用这个随机函数了:这样,就实现了在 PL/SQL 中调用 Java 程序。9.1.4Java 连接各类数据库的程序代码虽然了解了这么多 Java 和数据库之间操作的相关理论,但还需要动手操作一

33、下连接到数据库。下面将演示如何通过实际 Java 代码来连接数据库,返回需要信息,并对其进行处理。本例使用版本,建议数据库,一直以为轻便迅速闻名,读者可以去免安装版本,直接解压便可使用。具体的操作超出本书239run begindbms_output.put_line(rand);End;CREATE OR REPLACE function rand return number aslanguage Java NameclsRand.Rand() return double;create or replace JAVA SOURCE Named Js_Rand Aspublic class c

34、lsRandpublic sic double Rand() return java.lang.Math.random();con.close(); catch (SQLException e) 范围。如果读者有的话可以的操作手册学习,这里只简述操作步骤来演示如何使用 Java 连接数据库。(1)当正确安装后,进入所在文件下的bin 目录,Windows 下双击d.exe启动数据库。当数据库正常运行后,在系统菜单中的【运行】中输入 cmd 命令,进入cmd 运行界面。(2)用 cd 命令进入5.1.23-rc-win32bin。安装文件的的bin 目录,本例中具体的路径为:N:JDBCDE-(

35、3)使用-h localhost -u root 命令进入管理界面。说明:默认的本机登录用户名为 root为空。(4)使用 SHOW DATABASES ; 命名显示当前的数据库。(5)使用 use 命令选择名为 test 的数据库。(6)使用以下语句创建一,名为 Employee。- Edept char(15) );(7)使用 show tables 命令显示当前数据库的所有表。240show tables;+Query OK, 0 rows affected (0.08 sec)Create table Employee(- Eno char(10) not nulique,- Enam

36、e char(20) unique,- Esex char(1),- Eage,use test Database changedshow tables- ;Empty set (0.02 sec)SHOW DATABASES;+| Database|+| information_schema | test|+3 rows in set (0.03 sec)N:JDBCDE-5.1.23-rc-win32bysql -h localhost -u root e to themonitor.ds end with ; or g.Yourconnection id is 2Server ver:m

37、unityCommunity Server (GPType help; or h for help. Type c to clear the buffer.(8)使用 INSERT 语句一条。这样就建立了一个可以使用的数据库。通过以上步骤,读者可以在实际操作中熟悉 SQL 语句的使用。下面使用 Java 连接该数据库,获取值。(1)编写类 Connect,首先定义好类名和文件属性,代码如下:(2)编写构造函数,加载驱动程序。241/* 数据库驱动程序*/ public Connect() try Class.forName(dbDriver);public class Connect/* 设置

38、数据库连接用户名 */private String userName=root;/* 设置数据库连接*/ private String pwd=;/* 设置数据库 */private String database=test;/* 设置JDBC 驱动程序 */private String dbDriver=com.jdbc.Driver;/* 设置数据库URL */private String dbConnect=jdbc:/localhost:3306/ + database; private Connection conn=null;private Sement stmt=null; Re

39、sultSet rs=null;.INSERTO employee(eno,ename,esex,eage,edept)- VALUES (200236007, Leo Zhang, M, 25, Greater China);Query OK, 1 row affected, 1 warning (0.03 sec)select * from employee;+| Eno| Ename| Esex | Eage | Edept|+| 200236007 | Leo Zhang | M| 25 | Greater China |+1 row in set (0.00 sec)注 意在中不区分

40、大小写。| Tables_in_test |+| employee|+1 row in set (0.00 sec)(3)编写数据的基本操作方法。(4)考虑到性能问题,JDBC 程序需要不用的资源,所以要编写关闭方法,资源。242/* 关闭陈述语句 */public void closeStmt() try stmt.close(); catch (SQLException e) System.err.prln(closeStmt Error!);/* 关闭连接 */public void closeConn() try conn.close(); catch (SQLException e)

41、 /* 建立数据库连接及定义数据查询 */public ResultSet executeQuery(String sql) throws SQLException rs=null;try conn=DriverManager.getConnection(dbConnect, userName, pwd); stmt=conn.createSement();rs=stmt.executeQuery(sql); catch (SQLException ex) throw new SQLException(ex.getMessage();return rs;/* 建立数据库连接及定义数据操作 */

42、public void executeUpdate(String sql) throws SQLException stmt=null;try conn=DriverManager.getConnection(dbConnect, userName, pwd); stmt=conn.createSement();stmt.executeUpdate(sql); catch (SQLException ex) throw new SQLException(ex.getMessage(); finally stmt.close();conn.close(); catch (java.lang.Cl

43、aotFoundException e) System.err.prln(jdbcDriver Error!);(5)编写主函数,运行程序。(6)将文件保存到某个目录下,为了操作方便,本例放在根目录 C 盘下面。在 cmd 中编译该类。(7)调用下面 java 命令运行该类,获取数据库中的结果。结果如图 9-1 所示:关于 Java 环境的安装,请参考 9.2 节。图 9-1运行结果243说 明-classpath .;N:JDBCDEDrives-connector-java-5.1.6-bin.jar用于指定 java 运行时的classpath,其中 N:JDBCDEDrives-con

44、nector-java-5.1.6-bin.jar 为驱动所在 jar 的路径。C:java -classpath .;N:JDBCDEDrives-connector-java-5.1.6-bin.jar ConnectLeo ZhangC:javac Connect.java/* 运行程序测试代码 */public sic void main(String args) Connectcon=new Connect();String sql=select ename from employee where eno=200236007; try ResultSet rs=con.execute

45、Query(sql); if(rs.next()System.out.prln(rs.getString(1); catch (SQLException e) / TODO Auto-generated catch block e.prStackTrace();finally con.closeStmt();con.closeConn();System.err.prln(closeConn Error!);以上程序成功实现了 Java 程序连接数据库并调用其中的数据。以上代码只需更改驱动,便可以适用于各类数据库。这也正是 JDBC 的优势所在。下面给出实际的数据库连接操作中,常用到的几种数据库

46、连接:1驱动程序:地址:ht-connector-java-5.1.6-bin.jar2tgreSQL驱动程序:pgjdbc2.jar地址:.tgresql.3Oracle驱动程序:classes9.zip地址:htt4Sybase驱动程序:jconn2.jar地址:5JTDS.JDBC.Driver地址:net6SQL Server地址:http:/244Class.forName( com.jdbc.sqlserver.SQLServerDriver );Class.forName( net.sourcefe.jtds.jdbc.Driver ); Connection cn=Driver

47、Manager.getConnection( jdbc:jtds:sputerNameOrIP:1433/master, sUsr, sPwd );Class.forName( com.sybase.jdbc2.jdbc.SybDriver ); Connection cn=DriverManager.getConnection(jdbc:puterNameOrIP:2638,sUsr, sPwd );Class.forName( oracle.jdbc.driver.OracleDriver ); Connection cn=DriverManager.getConnection( jdbc

48、:orputerNameOrIP:1521:ORCL, sUsr, sPwd );Class.forName( .tgresql.Driver ); Connection cn=DriverManager.getConnection( jdbc:poputerNameOrIP/myDatabaseName, sUsr, sPwd );Class.forName( com.jdbc.Driver ); Connection cn=DriverManager.getConnection( jdputerNameOrIP:3306/myDatabaseName, sUsr, sPwd );7ODBC

49、8DB29.2Web 应用服务器Java 语言之所以如此风靡,与其稳定、强大、方便的网络应用密不可分。这一节,探讨一下如何安装主流的 Java Web 服务器。来9.2.1Tomcat 的安装及配置一提到 Java Web 应用服务器,Tomcat 以其免费且优质的服务和 Apache 的名气成为 Java 爱好者的首选,可从 Apache Jakarta Project 站点(site/binindex.cgi)上,本书使用的 Tomcat 版本是 5.5.26,它需要安装 J2SE 5.0(JDK 1.5)以上的版本才能运行。对于 Windows 操作系统, Tomcat 5.5.26 提

50、供了两 种安装文 件,一种 是apache-tomcat-5.5.26.exe ,一种是 apache-tomcat-5.5.26.zip ( 对于 Linux 操作系统, 请apache-tomcat-5.5.26.tar.gz)。关于 Tomcat 的使用方法参考Java 应用服务器一书。9.2.2Js 的安装和配置Js 的安装和 Tomcat 比较类似,直接即可以。并且 Js 默认的 web server 就是Tomcat,所以 Js 关于 Web 的配置也和 Tomcat 类似。不同的是,Js 不单单是一个 Web 服务器,而是一个可以集成 EJB、Workflow 等重量级应用程序的

51、一个可伸缩的。所谓可伸缩性,指的是在小型系台服务器情况下,系统也可以运转;多台服务器扩展后,系统只需通过增加硬件就可以实现性能扩展,且无需修改太多。比如,当你的 EJB 程序编制完成后,如果增加量,只要通过增加服务器硬件就可以实现多台服务器同时运算,扩大了负载容量,这个性能容量的大小在理论上是没有限制的。这是 Js 不同于 Tomcat 等的最大优点,EJB 3.0 也将出现轻量化解决方案。但是随着技术的发展,已经模糊了轻量/重量的区别,Js 所运用的领域也越来越大,其伸缩性也得到了充分的体现。下面来讲解如何安装使用 Js。1安装 J首先,Jss 的地址:。目前的版本为:4.2.2. GA24

52、5Class.forName(.DB2Driver);String url=jdbc:db2:/puterNameOrIP:6789/ databaseName Connection cn=DriverManager.getConnection( url, sUsr, sPwd );Class.forName( sun.jdbc.odbc.JdbcOdbcDriver );Connection cn=DriverManager.getConnection( jdbc:odbc: + sDsn, sUsr, sPwd );Connection cn=DriverManager.getConnec

53、tion( jdbc:sqlserver: /MyDb ComputerNameOrIP:1433;databaseName=master, sUsr, sPwd );完成后将其解压缩后即可安装。解压缩后将其放置到一个不带空格的目录。例如:N:JDBCDEjs-4.2.2.GA。安装完成后,Js 的目录结构如下表 9-1 所示。表 9-1Js 的目录结构说明2启动 Js运行 Js 安装目录binrun.bat,如果窗口中没有出现异常,将出现以下代码:246=Js BootstrnvironmentJS_HOME: N:JDBCDEjs-4.2.2.GAJAVA: C:Program Files

54、Javajdk1.6.0binjavaJAVA_OPTS: -D=run.bat -server -Xms128m -Xmx512m -Dsun.rmi. dgc.clent.gcerval=3600000 -Dsun.rmi.dgc.server.gcerval=3600000CLASSPATH: C:Program FilesJavajdk1.6.0libtools.jar;N:JDBCDEjs-4.2.2目 录描述bin启动和关闭 Js 的( run.bat 为 windows 系统下的启动, shutdown.bat 为 windows 系统下的关闭)c nt客户端与 Js 通信所需的

55、 Java 库( Jars )docs配置的样本文件(数据库配置等)docs/dtd在 Js 中使用的各种 XML 文件的 DTDlib一些 JAR , Js 启动时加载,且被所有 Js 配置共享。(你的库放在这里)server各种 Js 配置。每个配置必须放在不同的子目录。子目录的名字表示配置的名字。s 包含 3 个默认的配置:minimal,default 和 all,在安装时可以进行选择server/allJs 的完全配置,启动所有服务,包括集群和 IIOPserver/defaultJs 的默认配置。在没有在 Js 命令行中指定配置名称时使用server/default/confJs

56、的配置文件server/defauataJs 的数据库文件。比如,嵌入的数据库或者 JsMQserver/default /deployJs 的热部署目录。放到这里的任何文件或目录会被 Js 自动部署。EJB、WAR、EAR,甚至服务server/default /lib对于一些 JAR ,Js 在启动特定配置时需要加载。(default 和 minimial 配置也包含这个和下面两个目录)server/default/logJs 的日志文件server/default/tmpJs 的临时文件注 意若目录带有空格,例如:C:Program Files,以后可能会产生一些莫名的错误。此时,表示安

57、装成功,如图 9-2 所示。可以通过:进入 Js 的欢迎界面,单击【J此界面可以对 Js Management】下的【JMX Console】可进入 Js 控制台进行配置。s 的控制台。如图 9-3 所示,图 9-2Js 欢迎界面图 9-3Js 控制台s 服务器。运行 Js 安装目录binshutdown.bat 即可以关闭 J3Jboos 配置由于 J说明。s 的配置涉及到各类的插件及应用服务,这里只针对其中一些常用的配置给出1日志文件设置若需要修改 Js 默认的 log4j 设置,可修改 Js 安装目录serverdefaultconf 下的js-log4j.xml 文件,在该文件中可以看

58、到,log4j 的日志输出在 Js 安装目录serverdefaultlog下的 server.log 文件中。对于 log4j 的设置,读者可以在网上搜索更加详细的信息。2Web 服务端的修改修改 J容如下:s 安装目录下的serverdefaueployjs-web.deployer 下的 server.xml 文件,内247GAbinrun.jar=14:25:09,015 INFO Server Starting Js (MX MicroKernel).14:25:09,015 INFO Server Release ID: Js Trinity 4.2.2.GA (build: SV

59、NTag Js_4_2_2_GA date=200710221139)14:25:09,015 INFO Server Home Dir: N:JDBCDEjs-4.2.2.GA14:25:09,015 INFO Server Home URL: file:/N:/JDBCDE/js-4.2.2.GA/.14:25:40,000 INFO AjpProtocol Starting Coyote AJP/1.3 on ajp-8009 14:25:40,046 INFO Server Js (MX MicroKernel) 4.2.2.GA (build:SVNTag=Js_4_2_2_GA d

60、ate=200710221139) Started in 31s:15ms将上面的 8080 端口修改为你想要的端口即可。重新启动 Js 后::新设置的端口,可进入 Js 的欢迎界面。3配置数据库连接池这里以要在 J为例,讲解如何在 Js 环境中配置一个数据库连接池。s4 中使用,首先要把的 JDBC 驱动-ds.xml 到/server/defau到/server/default/lib 目录eploy 目录。拷贝完成下,再从/docs/exles/jca 目录下,拷贝后,修改默认设置。修改步骤如下:(1)修改- ds.xml 文件,设置为(2)把设置为jdbc:/说 明其中是数据库主机名,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论