🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: cn.bbs.comp.program
Article #2369

JDBC (һ)

#2369
From: Arrow
Date: Thu, 25 Dec 1997 00:00
227 lines
14628 bytes
������: dong@SMTH (��), ����: Database
��  ��: JDBC
����վ: ˮľ�廪  (Tue Jul  9 21:01:38 1996)
ת��վ: SMTH

1. ����

��࿪���ߺ��û�����Ѱ��Java�����з�����ݿ�ı�ݷ�
��������Java��һ����׳����ȫ������ʹ�õģ���������ҿ�
�Դ��������Զ�download ���������Ϊ������ݿ�Ӧ�õ�һ��
���õ����Ի����ṩ��C,C++,Smalltalk, BASIC, COBOL,
and 4GLs������ŵ㡣��๫˾�Ѿ���ʼ��Java��DBMS������
������������

���JavaӦ�ÿ����߶�ϣ���ܹ���д�������ض�DBMS�ij�
�򣬶�����Ҳ����һ��������DBMS�Ľӿڽ�ʹ������ָ���
DBMS���ӱ����Ϊ��ݣ��������Ѹ�١�����������Ϊ����
һ��ͨ�õ�SQL��ݿ��ȡ��ܣ��ڸ��ָ�����ṩ��ݿ���
��ģ�����ṩͳһ�Ľ�����ʮ��������ġ���ʹ����Ա������
�Ե�һ����ݿ���棬ʹ��ݿ��޹ص�Java���ߺͲ�Ʒ��Ϊ��
�ܣ�ʹ����ݿ����ӵĿ����߿����ṩ���ָ�������ӷ�����
���ǿ������Ƕ���һ��ͨ�õͲ�ģ�֧�ֻ�SQL���ܵ�Java
DataBase Connectivity (JDBC)API�Ľ�������

���˵������Dz��ش�ͷ���һ��SQL API�����ǿ��԰����ǵ�
���������� X/Open SQL CLI (���ò�ӿ�)֮��(��Ҳ��
Microsoft's ODBC ��)��

������Ҫ�����Ƕ���һ����Ȼ��Java�ӿ�����X/Open CLI�ж�
��Ļ�ij����͸������ӡ�

JDBC API�õ���ݿ⿪�����̣����ӿ������̣�ISV,�Լ�Ӧ��
�����ߵ�֧����ʮ����Ҫ�ġ��������Ű����ǵĹ���������
ODBC�����Ļ��Ͻ�JDBC������׵õ���ҵĽ��ܡ�����
�Ӽ�������˵��ODBC��������ƹ�����һ�����û�

��ΪODBC��һ��C���Խӿڣ�����ODBC��Java��ֱ��ʹ�ò�
�ʵ�����Java��������C�����ڰ�ȫ�ԣ���׳�ԣ�ʵ�ֵķ��㣬
����ֲ�Եȵȷ�������಻�㡣��ʹ��Java����Щ��������
�ŵ�ò������ӡ�
�����Ѿ��ڶ�������ʵ����һ��������ODBC�ϵ�API����Զ��
�������ǿ���ͨ������ʽ�ṩʵ�֡�

1.1. ע��
���Ƿdz���л����ݿ⣬��ݿ����Ӻ���ݿ⹤����������
���ڵĹ����ߡ�����ΪJDBC�����ڲݰ��ṩ�˺ܺõ�����
���顣���ǵĹ����Ա��淶���˲��ɹ��������á�


2. Ŀ������ѧ

�������������ָ�����API������Ŀ���Լ���ѧ��

2.1. SQL �� API

���ǵ���ҪĿ����ΪJava����һ�������ü���(call-level)��SQL
�ӿڡ�����ζ��������Ҫ��ע����������ִ��ԭԭ������SQL
��䲢��ȡ�ؽ������Ԥ�Ƹ߲��APIҲ�������壬��Щ��
�ܽ������ڻ��Ľӿ��ϡ�

��Щ�߲�ӿڰ�����ֱ�ӵء�͸���ذѱ���������Ӱ�䵽
Java�����棬���﷨����ʾ���ͨ�õIJ�ѯ���Լ�Java��Ƕ��
SQL�﷨��

����ϣ�������Ӧ�ÿ������߽�ʹ�����ǵ�API��Ȼ������Ҳ
ϣ�����Ա�ܹ�ʹ�����ǵ�API��������Ŀǰ������Java��û
���κ������ֶ�(Ӧ����˵��ݿ�����ֶ�)������¡�

2.2. ��ѭSQL

��ݿ�ϵͳ֧�ָ�ʽ�����SQL�﷨�����壬�����໥֮����
�Ƚϸ߼��Ĺ��������ⲿ���ӣ���Ƕ��̵ȷ��沢��һ�£���
�������ܹ���������ʱ���������Щ���ֵ�SQL���Ի�ñ�׼
����ͬʱ���Dz�ȡ�����̬����������

 In fact, an application query need not even be SQL, or it may be a
specialized derivative of SQL, e.g. for document or image queries,
designed for specific DBMSs.  In order to pass JDBC compliance tests and to be
called "JDBC
COMPLIANT �" we require that a driver support at least ANSI
SQL-2 Entry Level. This gives applications that want wide
portability a guaranteed least common denominator. We believe
ANSI SQL-2 Entry Level is reasonably powerful and is reasonably
widely supported today.

l JDBC�����ѯ���ʽֱ�Ӵ��ݵ��ײ�����������һ
��������Ի�þ������SQL���ܣ����ǿ��ܱ�DBMS��
����ʵ�ϣ�һ������IJ�ѯ�������Բ���SQL�ģ�����
��SQL��һ�������ݻ������磺Ϊר����ݿ���Ƶ��ı�
����ͼ�β�ѯ��

l Ϊ��ͨ��JDBC���ݵIJ��ԣ������ܹ�����ΪJDBC���ݣ�
����Ҫ��һ��������֧��ANSI SQL-2�ı�׼����ʹ����
Щ��Ҫ�㷺��ֲ�Եij�����һ����С�ķ�ĸ(��仰��ԭ
���ǣ�This gives applications that want wide portability a
guaranteed least common denominator.)����������ANSI
SQL-2���㹻ǿ��ģ������ǵõ��㹻֧�ֵġ�

2.3. JDBC������Խ��������е���ݿ�ӿ���

���DZ����ܹ���֤ JDBC SQL API �ܹ���������ͨ��SQL
API�ϣ�������ODBC����ЩҪ���Ѿ�������淶��һЩ����
������Ӱ�죬�����ǶԴ�������(OUT parameter)�ʹ���ݿ��
���?

2.4. ���뱣֤����ӿ���JAVAϵͳ������ֱ���һ��

Ŀǰ��JAVA�Ļ��Ӧ�Ѿ�ʮ�����ҡ��ܴ�̶�����������
�����Ա�׼�Լ���׼����ʱ�ⱻ��Ϊ��һ�£��򵥺�ǿ��ġ�
���ǽ����������ܣ��ṩ���Java��ݿ�ӿڣ�����ӿڽ���
����Java�ں����е����ַ�񣬲��ҽ���һ����ǿ��

2.5. ���ּ�

We would prefer to keep this base API as simple as possible, at
least initially. In general we would prefer to provide a single
mechanism for performing a particular task, and avoid provid-ing
duplicate mechanisms. We will extend the API later if any
important functionality is miss-ing.

���ǽ�����ʹ�û��API�����򵥣����ٿ�ʼ��ʱ��������
�ġ�һ����˵������ϣ���ʵ��ÿ���ض�������ֻ�ṩһ�ַ�
����������ṩ���ַ��������һЩ��Ҫ�Ĺ�����©�ˣ���ô
��������Щʱ���������API��

2.6. ��������ǿ�ġ���̬������

����ϣ�����JDBC API���־���ǿ�����ͼ�飬ʹ�þ�����
���������Ϣ���Ծ�̬�ر���ʹ�þ����ܶ�Ĵ��������
�����ʱ�򱻷��֡�

����SQL�����Ƕ�̬���͵ģ��������ǿ��ܻ��ڳ������е�ʱ
���������Ͳ���ƥ������⡣���磺��һ������Ա��ϣ��
SELECT����һ��������ʵ�ʷ��ص���һ���ַ�foo��.
����������Ȼϣ�����Ա��������ϣ��������ڱ����ʱ���
�ܹ����������������ǿ����������ܶ�ľ�̬��顣����Ҳ
ϣ���ڱ�Ҫ��ʱ���ܹ�֧�ֶ�̬���ͽӿڣ�������£�

2.7. ʹ��ͨ�����

����ϣ����ͨ�������ܹ��Ǽ򵥵ģ���һ��Ĺ����ǿ���
�ġ�

һ����ͨ������ָһ������Աִ��һ���򵥵�û�в����SQL
��䣨����:SELECT,INSERT,UPDATE,DELETE����Ȼ��(����
SELECT)���?�صľ��м����͵�Ԫ�顣һ�����д������
��IN parameter����SQL���Ҳ����ͨ�ġ�
����ô��ͨ����Ҳ��ʮ����Ҫ�������ǵ�����Աʹ����
INOUT,OUT�����SQL��䡣����Ҳ��Ҫ֧�ֶ�д�����ֽ�
�����SQL��䣬���ر�һЩ�����ΰ���һ����䷵���˶��
���ϡ�

����ϣ��Ԫ���(Meatdata)��ʹ�ú��ٵģ�ֻ����Щ�����ij���
Ա�Լ��������߲���Ҫ��������⡣Ԫ��ݴ�ȡ�����Լ���̬
������ݴ�ȡ����������ĵ�ĩβ��һ��ij���Ա���Բ��ع�
����Щ�½ڡ�

2.8. ��ͬ�Ĺ����ò�ͬ�ķ�����������ʵ��

������������ԭ���ǣ�method���������Ǹ�VB�ģ�
һ�ֽ�����Ʒ����ʹ�ú��ٵĹ�̣��ṩ�����Ϊ�����
�Ŀ��Ʊ�־���������ǿ�������Ӱ��ܴ�һ����Χ�ڵĸ�����
Ϊ������ﲻͬ�Ĺ��ܡ���������ʹ�úܶ�ķ���������ÿ��
�������Ƚ�ͬ����⡣

һ����˵��Java�ں���ʹ�ò�ͬ�ķ�����method���������
�����Ҫ�ŵ��ǿ�ʼѧϰ�����ij���Ա���Բ��ر���Щ��
���ӹ�����صIJ��������š�������ͼ��JDBC�ӿ���Ҳ����
��ͬ�IJ��ԡ�һ����˵���ò�ͬ�ķ������Dz��ò�ͬ�ı�־
�Ͷ���;�ķ�����
3. �ӿڸ�ò

�ӿڷ�Ϊ������Σ�һ����������򿪷���Ա��JDBC API��
����һ���ǵײ��JDBC Driver API��

3.1. JDBC API

JDBC API ��������Ϊ��������Java�ӿڣ��Ƶ�Ӧ�ó���Զ
���Զ�ij����ݿ�����ӣ�ִ��SQL��䲢�Ҵ�����
����! Ƕ�������Ч��

����Ҫ�Ľӿ��ǣ�

l java.sql.DriverManager   ������ĵ��벢�ҶԲ����µ�
��ݿ������ṩ֧�֡�

l java.sql.Connection �����ض���ݿ�����ӡ�

l java.sql.Statement �����һ���ض�������������һ���ض���
��ݿ�ִ��SQL��䡣

l java.sql.ResultSet �����ƶ�һ���ض���������ݵĴ�ȡ��
����java.sql.Statement�������������ͣ�

1. java.sql.PreparedStatement ������ִ��Ԥ�����SQL
��䡣
2. java.sql.CallableStatement ������ִ�ж�һ����ݿ�
��Ƕ��̵ĵ��á�

������½ڶ�JDBC��������е��ṩ�˸���������������
���13�¡������15��������ϵͳ����ȡ��ݿ��Ԫ���
��Ϣ��

3.2. JDBC Driver API

java.sql.Driver�ڵ�9��������Ķ�����.�󲿷�JDBC��ֻ��
Ҫ�����ЩJDBC API����ij�����Ϳ����ˡ��ر�أ�����
��driver�����ṩ��java.sql.Connection, java.sql. State-ment,
java.sql.Prepared��Statement, and java.sql.ResultSet��ʵ�֡����
Ŀ��DBMS�ṩ��OUT�������Ƕ��̣���ô�������ṩ
java.sql.CallableStatement �ӿڡ�

ÿ��database driver�����ṩһ���ࣺjava.sql.Driver��ʹ��ϵͳ
������ java.sql.DriverManager�����?
һ����Ȼ��driver����ODBC֮���ṩ��JDBC��ʵ�֣��Ӷ���
����ODBC�ӿڵ�JDBC-ODBC �ţ�����ǰ���ͼ����ʾ��.��
��JDBC����ODBC֮������ʵ�������򵥶��Ҹ�Ч��
����һ�����õ���ֱ�ӽӴ���ݿ��޹ص�����Э�顣����һ
��Э��������������ʵ�ֵķ�����������ODBC�����ض���
DBMS�ϣ������Ѿ�����һЩʹ�ù̶�Э��IJ�Ʒ����������
�����������ʵ�ֱ�׼���������ǿ�ȡ�ġ�


--

�� ��Դ:���ɰ��ļ�BBSվ bbs.njtu.edu.cn��[IP: 202.112.145.26]
Technical Details
Message-ID: <3MGg1I$t9A@bbs.njtu.edu.cn>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: Chinese,GB
X-Google-Thread: fc86e,5aa7b0b687402b1a,start
X-Google-Attributes: gidfc86e,public
From: Uni.bbs@bbs.njtu.edu.cn (Arrow)
Subject: JDBC (һ)
Date: 1997/12/25
Message-ID: <3MGg1I$t9A@bbs.njtu.edu.cn>
X-Deja-AN: 310111322
X-Filename: Programming/M.883063362.A
Organization: ��������ɰ��ļ�
Newsgroups: cn.bbs.comp.program