数据库编程 东海陈光剑 桃花源大仙 0807Word格式.docx

上传人:b****5 文档编号:16174413 上传时间:2022-11-21 格式:DOCX 页数:34 大小:176.60KB
下载 相关 举报
数据库编程 东海陈光剑 桃花源大仙 0807Word格式.docx_第1页
第1页 / 共34页
数据库编程 东海陈光剑 桃花源大仙 0807Word格式.docx_第2页
第2页 / 共34页
数据库编程 东海陈光剑 桃花源大仙 0807Word格式.docx_第3页
第3页 / 共34页
数据库编程 东海陈光剑 桃花源大仙 0807Word格式.docx_第4页
第4页 / 共34页
数据库编程 东海陈光剑 桃花源大仙 0807Word格式.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

数据库编程 东海陈光剑 桃花源大仙 0807Word格式.docx

《数据库编程 东海陈光剑 桃花源大仙 0807Word格式.docx》由会员分享,可在线阅读,更多相关《数据库编程 东海陈光剑 桃花源大仙 0807Word格式.docx(34页珍藏版)》请在冰豆网上搜索。

数据库编程 东海陈光剑 桃花源大仙 0807Word格式.docx

Inthesummerof1996,SunreleasedthefirstversionoftheJavaDatabaseConnectivity(JDBC)API.ThisAPIletsprogrammersconnecttoadatabaseandthenqueryorupdateit,usingtheStructuredQueryLanguageorSQL.(SQL,usuallypronouncedlike"

sequel,"

isanindustrystandardforrelationaldatabaseaccess.)

JavaandJDBChaveanessentialadvantageoverotherdatabaseprogrammingenvironments:

ProgramsdevelopedwithJavaandJDBCareplatformindependentandvendorindependent.

ThesamedatabaseprogramwritteninJavacanrunonanNTbox,aSolarisserver,oradatabaseappliancepoweredbytheJavaplatform.Youcanmoveyourdatafromonedatabasetoanother,forexample,fromMicrosoftSQLServertoOracle,oreventoatinydatabaseembeddedinadevice,andthesameprogramcanstillreadyourdata.Thiscapabilityisinsharpcontrasttotraditionaldatabaseprogramming.Toooften,developerswritedatabaseapplicationsinaproprietarydatabaselanguage,usingadatabasemanagementsystemthatisavailableonlyfromasinglevendor.

JDBChasbeenupdatedseveraltimes.AspartofthereleaseofJDK1.2in1998,asecondversionofJDBCwasissued.Asthisbookispublished,JDBC3isthemostcurrentversion,withJDBC4underdevelopment.JDBC3isincludedwithJDK1.4and5.0.

WemustcautionyouthattheJDKoffersnotoolsfor"

visual"

databaseprogramdevelopment.Forformdesigners,querybuilders,andreportgenerators,youneedtoturntothird-partytools.

Inthischapter:

∙WeexplainsomeoftheideasbehindJDBCtheJavaDatabaseConnectivityAPI.

∙Weintroduceyouto(orrefreshyourmemoryof)SQL,theindustry-standardStructuredQueryLanguageforrelationaldatabases.

∙WeprovideenoughdetailsandexamplestoletyoustartusingJDBCforcommonprogrammingsituations.

∙Wefinishwithabriefintroductiontohierarchicaldatabases,theLDAPprotocol,andJNDI(theJavaNamingandDirectoryInterface).

2.JDBC的设计

●JDBCAPI,

●JDBCDriverAPI.

ApplicationprogrammersusetheJDBCAPI,

anddatabasevendorsandtoolprovidersusetheJDBCDriverAPI.

MySQL-connector-java-5.0.5-bin.jar

├─com

│└─mysql

│└─jdbc

││AssertionFailedException.class

││Blob.class

││BlobFromLocator$LocatorInputStream.class

││BlobFromLocator.class

││Buffer.class

││CachedResultSetMetaData.class

││CallableStatement$CallableStatementParam.class

││CallableStatement$CallableStatementParamInfo.class

││CallableStatement$CallableStatementParamInfoJDBC3.class

││CallableStatement.class

││CharsetMapping.class

││Charsets.properties

││Clob.class

││CommunicationsException.class

││CompressedInputStream.class

││Connection$1.class

││Connection$CompoundCacheKey.class

││Connection$UltraDevWorkAround.class

││Connection.class

││ConnectionFeatureNotAvailableException.class

││ConnectionProperties$1.class

││ConnectionProperties$BooleanConnectionProperty.class

││ConnectionProperties$ConnectionProperty.class

││ConnectionProperties$IntegerConnectionProperty.class

││ConnectionProperties$MemorySizeConnectionProperty.class

││ConnectionProperties$StringConnectionProperty.class

││ConnectionProperties.class

││ConnectionPropertiesTransform.class

││Constants.class

││CursorRowProvider.class

││DatabaseMetaData$1.class

││DatabaseMetaData$2.class

││DatabaseMetaData$3.class

││DatabaseMetaData$4.class

││DatabaseMetaData$5.class

││DatabaseMetaData$6.class

││DatabaseMetaData$7.class

││DatabaseMetaData$8.class

││DatabaseMetaData$9.class

││DatabaseMetaData$IterateBlock.class

││DatabaseMetaData$IteratorWithCleanup.class

││DatabaseMetaData$LocalAndReferencedColumns.class

││DatabaseMetaData$ResultSetIterator.class

││DatabaseMetaData$SingleStringIterator.class

││DatabaseMetaData$TypeDescriptor.class

││DatabaseMetaData.class

││DatabaseMetaDataUsingInfoSchema.class

││DocsConnectionPropsHelper.class

││Driver.class

││EscapeProcessor.class

││EscapeProcessorResult.class

││EscapeTokenizer.class

││ExportControlled.class

││Field.class

││LicenseConfiguration.class

││LocalizedErrorMessages.properties

││Messages.class

││MiniAdmin.class

││MysqlDataTruncation.class

││MysqlDefs.class

││MysqlErrorNumbers.class

││MysqlIO.class

││MysqlParameterMetadata.class

││MysqlSavepoint.class

││NamedPipeSocketFactory$NamedPipeSocket.class

││NamedPipeSocketFactory$RandomAccessFileInputStream.class

││NamedPipeSocketFactory$RandomAccessFileOutputStream.class

││NamedPipeSocketFactory.class

││NonRegisteringDriver.class

││NonRegisteringReplicationDriver.class

││NotImplemented.class

││NotUpdatable.class

││OperationNotSupportedException.class

││OutputStreamWatcher.class

││PacketTooBigException.class

││PreparedStatement$BatchParams.class

││PreparedStatement$EndPoint.class

││PreparedStatement$ParseInfo.class

││PreparedStatement.class

││ReplicationConnection.class

││ReplicationDriver.class

││ResultSet.class

││ResultSetMetaData.class

││RowData.class

││RowDataDynamic$OperationNotSupportedException.class

││RowDataDynamic.class

││RowDataStatic.class

││Security.class

││ServerPreparedStatement$BatchedBindValues.class

││ServerPreparedStatement$BindValue.class

││ServerPreparedStatement.class

││SingleByteCharsetConverter.class

││SocketFactory.class

││SQLError.class

││StandardSocketFactory.class

││Statement$1.class

││Statement$CancelTask.class

││Statement.class

││StringUtils.class

││TimeUtil.class

││UpdatableResultSet.class

││Util$RandStructcture.class

││Util.class

││VersionedStringProperty.class

││WatchableOutputStream.class

││WatchableWriter.class

││WriterWatcher.class

││

│├─configs

││3-0-Compat.properties

││clusterBase.properties

││fullDebug.properties

││maxPerformance.properties

││solarisMaxPerformance.properties

│├─exceptions

││MySQLDataException.class

││MySQLIntegrityConstraintViolationException.class

││MySQLInvalidAuthorizationSpecException.class

││MySQLNonTransientConnectionException.class

││MySQLNonTransientException.class

││MySQLSyntaxErrorException.class

││MySQLTimeoutException.class

││MySQLTransactionRollbackException.class

││MySQLTransientConnectionException.class

││MySQLTransientException.class

│├─integration

││├─c3p0

│││MysqlConnectionTester.class

│││

││└─jboss

││ExtendedMysqlExceptionSorter.class

││MysqlValidConnectionChecker.class

│├─jdbc2

││└─optional

││CallableStatementWrapper.class

││ConnectionWrapper.class

││MysqlConnectionPoolDataSource.class

││MysqlDataSource.class

││MysqlDataSourceFactory.class

││MysqlPooledConnection.class

││MysqlXAConnection.class

││MysqlXADataSource.class

││MysqlXAException.class

││MysqlXid.class

││PreparedStatementWrapper.class

││StatementWrapper.class

││SuspendableXAConnection.class

││WrapperBase.class

│├─log

││CommonsLogger.class

││Jdk14Logger.class

││Log.class

││Log4JLogger.class

││LogFactory.class

││LogUtils.class

││NullLogger.class

││StandardLogger.class

│├─profiler

││ProfileEventSink.class

││ProfilerEvent.class

│└─util

│BaseBugReport.class

│ErrorMappingsDocGenerator.class

│LRUCache.class

│PropertiesDocGenerator.class

│ReadAheadInputStream.class

│ResultSetUtil.class

│ServerController.class

│TimezoneDump.class

│VersionFSHierarchyMaker.class

├─META-INF

│INDEX.LIST

│MANIFEST.MF

└─org

└─gjt

└─mm

└─mysql

Driver.class

ThisorganizationfollowstheverysuccessfulmodelofMicrosoft'

sODBC,whichprovidedaCprogramminglanguageinterfacefordatabaseaccess.BothJDBCandODBCarebasedonthesameidea:

根据API编写的程序,都可以与DriverManager通信,而DriverManager则通过驱动程序与数据库通信。

ProgramswrittenaccordingtotheAPItalktothedrivermanager,which,inturn,usesthedriversthatarepluggedintoittotalktotheactualdatabase.

java.sql

类DriverManager

java.lang.Object

java.sql.DriverManager

--------------------------------------------------------------------------------

publicclassDriverManagerextendsObject

管理一组JDBC驱动程序的基本服务。

注:

DataSource接口是JDBC2.0API中的新增内容,它提供了连接到数据源的另一种方法。

使用DataSource对象是连接到数据源的首选方法。

作为初始化的一部分,DriverManager类会尝试加载在"

jdbc.drivers"

系统属性中引用的驱动程序类。

这允许用户定制由他们的应用程序使用的JDBCDriver。

例如,在~/.hotjava/properties文件中,用户可以指定:

jdbc.drivers=foo.bah.Driver:

wombat.sql.Driver:

bad.taste.ourDriver

DriverManager类的方法getConnection和getDrivers已经得到提高以支持JavaStandardEditionServiceProvider机制。

JDBC4.0Drivers必须包括META-INF/services/java.sql.Driver文件。

此文件包含java.sql.Driver的JDBC驱动程序实现的名称。

例如,要加载my.sql.Driver类,META-INF/services/java.sql.Driver文件需要包含下面的条目:

my.sql.Driver

应用程序不再需要使用Class.forName()显式地加载JDBC驱动程序。

当前使用Class.forName()加载JDBC驱动程序的现有程序将在不作修改的情况下继续工作。

在调用getConnection方法时,DriverManager会试着从初始化时加载的那些驱动程序以及使用与当前applet或应用程序相同的类加载器显式加载的那些驱动程序中查找合适的驱动程序。

从Java2SDK标准版本1.3版开始,只有当已授予适当权限时设置日志流。

通常这将使用工具PolicyTool完成,该工具可用于授予permissionjava.sql.SQLPermission"

setLog"

权限。

另请参见:

Driver,Connection

--------------------------------------------------------------

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1