Atitit.跨语言数据库db  api兼容性 jdbc odbc ado oledb 增强方案

Atitit.跨语言数据库db  api兼容性 jdbc odbc ado oledb 增强方案

 

1跨语言db api兼容性。。1

2目前访问数据库的接口很多。比较常用的jdbc odbc 以及c api php用此接口),共约101个类+128c函数1

2.1. Jdbc api数量  约60个类..java.sql包下面的。。大概几百个方法函数吧。。2

2.2. Odbc api数量::约78个,odbc是个非ooapi2

2.3. C api mysql ): 约50个。。2

2.4. Ado   9个类  约一百多个api了吧2

2.5. Oledb 32个类2

3ADOOLEDBODBC之间的关系图4

4Jdbc Package java.sql Jdbc api数量  约60个类..java.sql包下面的。。5

5Odbc api信息 约78api10

6参考19

 

 

1. 跨语言db api兼容性。。

方便源码移植。。需要实现常用的 jdbc odbc c_api接口。。总共约好几百个个方法函数(预估,因为jdbc方法数量与属性暂时未统计)

 

 

2. 目前访问数据库的接口很多。比较常用的jdbc odbc 以及c api php用此接口),共约101个类+128c函数

 

2.1. Jdbc api数量  约60个类..java.sql包下面的。。大概几百个方法函数吧。。

2.2. Odbc api数量::约78个,odbc是个非ooapi

2.3. C api mysql ): 约50个。。

 

 

这些开发包支持两种模式的数据库开发:预编译的嵌入模式(例如Oracle的ProC,SQL Server的ESQL)和API调用(例如Oracle的OCI)。

 

作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

 

2.4. Ado   9个类  约一百多个api了吧

ADO 对象

· Command

· Connection

· Error

· Field

· Parameter

· Property

· Record

· Recordset

· Stream

 

 

2.5. Oledb 32个类

System.Data.OleDb

OleDbCommand 类

OleDbCommandBuilder 类

OleDbConnection 类

OleDbConnection 成员

OleDbConnection 构造函数

OleDbConnection 方法

OleDbConnection 属性

OleDbConnection 事件

OleDbConnectionStringBuilder 类

OleDbDataAdapter 类

OleDbDataReader 类

OleDbEnumerator 类

OleDbError 类

OleDbErrorCollection 类

OleDbException 类

OleDbFactory 类

OleDbInfoMessageEventArgs 类

OleDbInfoMessageEventHandler 委托

OleDbLiteral 枚举

OleDbMetaDataCollectionNames 类

OleDbMetaDataColumnNames 类

OleDbParameter 类

OleDbParameterCollection 类

OleDbPermission 类

OleDbPermissionAttribute 类

OleDbRowUpdatedEventArgs 类

OleDbRowUpdatedEventHandler 委托

OleDbRowUpdatingEventArgs 类

OleDbRowUpdatingEventHandler 委托

OleDbSchemaGuid 类

OleDbTransaction 类

OleDbType 枚举

 

3. ADOOLEDBODBC之间的关系图 

Oracle的OCI是一个非常优秀的C语言开发包,在ODBC中就在很多地方参照了OCI的设计。

 

下面是微软提出的所有连接方式:

    ODBC(Open DataBase Connectivity)开放数据库互联。是由微软主导的数据库链接标准,只支持关系型数据库。

    DAO(Data Access Object)数据访问对象。不提供远程访问功能。

    RDO(Remote Data Object)远程数据对象。速度快,支持SQL Server存储过程。

    OLEDB(Object Linking and Embedding DataBase)对象链接和嵌入数据库。

    ADO(ActiveX Data Object)ActiveX数据对象。

    使用中,我们一般用OLE-DB和ADO替代DAO和RDO,DAO和RDO我也没用过,所以下面主要记录下ADO、OLEDB、ODBC之间的关系。

    编程

接口)。这些API利用 SQL来完成其大部

 

 

4. Jdbc Package java.sql Jdbc api数量  约60个类..java.sql包下面的。。

 

Provides the API for accessing and processing data stored in a data source (usually a relational database) using the JavaTM programming language.

See: Description

· 

Interface Summary

Interface

Description

Array

The mapping in the Java programming language for the SQL type ARRAY.

Blob

The representation (mapping) in the Java™ programming language of an SQL BLOB value.

CallableStatement

The interface used to execute SQL stored procedures.

Clob

The mapping in the Java™ programming language for the SQL CLOB type.

Connection

A connection (session) with a specific database.

DatabaseMetaData

Comprehensive information about the database as a whole.

Driver

The interface that every driver class must implement.

DriverAction

An interface that must be implemented when a Driver wants to be notified by DriverManager.

NClob

The mapping in the Java™ programming language for the SQL NCLOB type.

ParameterMetaData

An object that can be used to get information about the types and properties for each parameter marker in a PreparedStatement object.

PreparedStatement

An object that represents a precompiled SQL statement.

Ref

The mapping in the Java programming language of an SQL REF value, which is a reference to an SQL structured type value in the database.

ResultSet

A table of data representing a database result set, which is usually generated by executing a statement that queries the database.

ResultSetMetaData

An object that can be used to get information about the types and properties of the columns in a ResultSet object.

RowId

The representation (mapping) in the Java programming language of an SQL ROWID value.

Savepoint

The representation of a savepoint, which is a point within the current transaction that can be referenced from the Connection.rollback method.

SQLData

The interface used for the custom mapping of an SQL user-defined type (UDT) to a class in the Java programming language.

SQLInput

An input stream that contains a stream of values representing an instance of an SQL structured type or an SQL distinct type.

SQLOutput

The output stream for writing the attributes of a user-defined type back to the database.

SQLType

An object that is used to identify a generic SQL type, called a JDBC type or a vendor specific data type.

SQLXML

The mapping in the JavaTM programming language for the SQL XML type.

Statement

The object used for executing a static SQL statement and returning the results it produces.

Struct

The standard mapping in the Java programming language for an SQL structured type.

Wrapper

Interface for JDBC classes which provide the ability to retrieve the delegate instance when the instance in question is in fact a proxy class.

· 

· 

Class Summary

Class

Description

Date

A thin wrapper around a millisecond value that allows JDBC to identify this as an SQL DATE value.

DriverManager

The basic service for managing a set of JDBC drivers.
NOTE: The DataSource interface, new in the JDBC 2.0 API, provides another way to connect to a data source.

DriverPropertyInfo

Driver properties for making a connection.

SQLPermission

The permission for which the SecurityManager will check when code that is running an application with a SecurityManager enabled, calls theDriverManager.deregisterDriver method, DriverManager.setLogWriter method, DriverManager.setLogStream (deprecated) method,SyncFactory.setJNDIContext method, SyncFactory.setLogger method, Connection.setNetworktimeout method, or the Connection.abort method.

Time

A thin wrapper around the java.util.Date class that allows the JDBC API to identify this as an SQL TIME value.

Timestamp

A thin wrapper around java.util.Date that allows the JDBC API to identify this as an SQL TIMESTAMP value.

Types

The class that defines the constants that are used to identify generic SQL types, called JDBC types.

· 

· 

Enum Summary

Enum

Description

ClientInfoStatus

Enumeration for status of the reason that a property could not be set via a call to Connection.setClientInfo

JDBCType

Defines the constants that are used to identify generic SQL types, called JDBC types.

PseudoColumnUsage

Enumeration for pseudo/hidden column usage.

RowIdLifetime

Enumeration for RowId life-time values.

· 

· 

Exception Summary

Exception

Description

BatchUpdateException

The subclass of SQLException thrown when an error occurs during a batch update operation.

DataTruncation

An exception thrown as a DataTruncation exception (on writes) or reported as a DataTruncation warning (on reads) when a data values is unexpectedly truncated for reasons other than its having exceeded MaxFieldSize.

SQLClientInfoException

The subclass of SQLException is thrown when one or more client info properties could not be set on a Connection.

SQLDataException

The subclass of SQLException thrown when the SQLState class value is '22', or under vendor-specified conditions.

SQLException

An exception that provides information on a database access error or other errors.

SQLFeatureNotSupportedException

The subclass of SQLException thrown when the SQLState class value is '0A' ( the value is 'zero' A).

SQLIntegrityConstraintViolationException

The subclass of SQLException thrown when the SQLState class value is '23', or under vendor-specified conditions.

SQLInvalidAuthorizationSpecException

The subclass of SQLException thrown when the SQLState class value is '28', or under vendor-specified conditions.

SQLNonTransientConnectionException

The subclass of SQLException thrown for the SQLState class value '08', or under vendor-specified conditions.

SQLNonTransientException

The subclass of SQLException thrown when an instance where a retry of the same operation would fail unless the cause of the SQLException is corrected.

SQLRecoverableException

The subclass of SQLException thrown in situations where a previously failed operation might be able to succeed if the application performs some recovery steps and retries the entire transaction or in the case of a distributed transaction, the transaction branch.

SQLSyntaxErrorException

The subclass of SQLException thrown when the SQLState class value is '42', or under vendor-specified conditions.

SQLTimeoutException

The subclass of SQLException thrown when the timeout specified by Statement.setQueryTimeoutDriverManager.setLoginTimeout,DataSource.setLoginTimeout,XADataSource.setLoginTimeout has expired.

SQLTransactionRollbackException

The subclass of SQLException thrown when the SQLState class value is '40', or under vendor-specified conditions.

SQLTransientConnectionException

The subclass of SQLException for the SQLState class value '08', or under vendor-specified conditions.

SQLTransientException

The subclass of SQLException is thrown in situations where a previously failed operation might be able to succeed when the operation is retried without any intervention by application-level functionality.

SQLWarning

An exception that provides information on database access warnings.

· 

 

5. Odbc api信息 约78api

依据 ODBC 的规格,其API共可分为以下九类:

1. SQLAllocEnv.

2. SQLAllocConnect.

3. SQLConnect.

4. SQLPriverConnect.

5. SQLBrowseConnect.

1. SQLDataSource.

2. SQLGetInfo.

3. SQLGetFunctions.

4. SQLGetTypeInfo.

1. SQLSetConnectOption.

 

This section contains topics for the following functions:

· 

SQLAllocConnect Function

· 

· 

SQLAllocEnv Function

· 

· 

SQLAllocHandle Function

· 

· 

SQLAllocStmt Function

· 

· 

SQLBindCol Function

· 

· 

SQLBindParameter Function

· 

· 

SQLBrowseConnect Function

· 

· 

SQLBulkOperations Function

· 

· 

SQLCancel Function

· 

· 

SQLCancelHandle Function

· 

· 

SQLCloseCursor Function

· 

· 

SQLColAttribute Function

· 

· 

SQLColAttributes Function

· 

· 

SQLColumnPrivileges Function

· 

· 

SQLColumns Function

· 

· 

SQLCompleteAsync Function

· 

· 

SQLConnect Function

· 

· 

SQLCopyDesc Function

· 

· 

SQLDataSources Function

· 

· 

SQLDescribeCol Function

· 

· 

SQLDescribeParam Function

· 

· 

SQLDisconnect Function

· 

· 

SQLDriverConnect Function

· 

· 

SQLDrivers Function

· 

· 

SQLEndTran Function

· 

· 

SQLError Function

· 

· 

SQLExecDirect Function

· 

· 

SQLExecute Function

· 

· 

SQLExtendedFetch Function

· 

· 

SQLFetch Function

· 

· 

SQLFetchScroll Function

· 

· 

SQLForeignKeys Function

· 

· 

SQLFreeConnect Function

· 

· 

SQLFreeEnv Function

· 

· 

SQLFreeHandle Function

· 

· 

SQLFreeStmt Function

· 

· 

SQLGetConnectAttr Function

· 

· 

SQLGetConnectOption Function

· 

· 

SQLGetCursorName Function

· 

· 

SQLGetData Function

· 

· 

SQLGetDescField Function

· 

· 

SQLGetDescRec Function

· 

· 

SQLGetDiagField Function

· 

· 

SQLGetDiagRec Function

· 

· 

SQLGetEnvAttr Function

· 

· 

SQLGetFunctions Function

· 

· 

SQLGetInfo Function

· 

· 

SQLGetStmtAttr Function

· 

· 

SQLGetStmtOption Function

· 

· 

SQLGetTypeInfo Function

· 

· 

SQLMoreResults Function

· 

· 

SQLNativeSql Function

· 

· 

SQLNumParams Function

· 

· 

SQLNumResultCols Function

· 

· 

SQLParamData Function

· 

· 

SQLParamOptions Function

· 

· 

SQLPrepare Function

· 

· 

SQLPrimaryKeys Function

· 

· 

SQLProcedureColumns Function

· 

· 

SQLProcedures Function

· 

· 

SQLPutData Function

· 

· 

SQLRowCount Function

· 

· 

SQLSetConnectAttr Function

· 

· 

SQLSetConnectOption Function

· 

· 

SQLSetCursorName Function

· 

· 

SQLSetDescField Function

· 

· 

SQLSetDescRec Function

· 

· 

SQLSetEnvAttr Function

· 

· 

SQLSetParam Function

· 

· 

SQLSetPos Function

· 

· 

SQLSetScrollOptions Function

· 

· 

SQLSetStmtAttr Function

· 

· 

SQLSetStmtOption Function

· 

· 

SQLSpecialColumns Function

· 

· 

SQLStatistics Function

· 

· 

SQLTablePrivileges Function

· 

· 

SQLTables Function

· 

· 

SQLTransact Function

· 

 

6. 参考

 

 

ADOOLEDBODBC之间的关系图 百科教程网_经验分享平台[上学吧经验教程频道].html

java.sql (Java Platform SE 8 ).html

ODBC API Reference.html

OleDbConnection 类 (System.Data.OleDb).html

原文地址:https://www.cnblogs.com/attilax/p/5963545.html