数据库编程 东海陈光剑 桃花源大仙 0807Word格式.docx
- 文档编号:16174413
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:34
- 大小:176.60KB
数据库编程 东海陈光剑 桃花源大仙 0807Word格式.docx
《数据库编程 东海陈光剑 桃花源大仙 0807Word格式.docx》由会员分享,可在线阅读,更多相关《数据库编程 东海陈光剑 桃花源大仙 0807Word格式.docx(34页珍藏版)》请在冰豆网上搜索。
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
--------------------------------------------------------------
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库编程 东海陈光剑 桃花源大仙 0807 数据库 编程 东海 陈光剑 桃花源