【Mybatis3源码学习之二】JDBC

版本
  jdk1.8.0_171
  Mybatis-3.5.4
  IDE:Eclipse

JDBC(Java Database Connectivity)是Java语言中提供的访问关系型数据的接口,而Mybatis框架是对JDBC做了轻量级的封装,学习Mybatis源码前要对JDBC做一个了解。
JDBC有一个规范JSR-000221,官方JSR规范下载地址:https://jcp.org/aboutJava/communityprocess/mrel/jsr221/index3.html,JDK中有两个关于JDBC的包:java.sql包和javax.sql包。

一、java.sql包

#数据类型java.sql.Arrayjava.sql.Blobjava.sql.Clobjava.sql.Datejava.sql.NClobjava.sql.Structjava.sql.Timejava.sql.Timestampjava.sql.SQLXMLjava.sql.Refjava.sql.RowIdjava.sql.SQLInputjava.sql.SQLOutputjava.sql.SQLData

java类型和JDBC类型的对应关系:

#枚举java.sql.Typesjava.sql.SQLTypejava.sql.JDBCTypejava.sql.RowIdLifetimejava.sql.PseudoColumnUsagejava.sql.ClientInfoStatus#API相关java.sql.Wrapper //为应用程序访问原始数据类型的功能,从而使用JDBC中的一些非标准特性java.sql.Connection //数据库连接java.sql.Statement //定义执行SQL语句的方法java.sql.CallableStatement //用于执行存储过程java.sql.PreparedStatement //可以设置SQL参数java.sql.DatabaseMetaData //获取数据源信息;确定数据源是否支持某一特性;获取数据源限制;确定数据源包含哪些SQL对象以及这些对象的属性;获取数据源对事务的支持;java.sql.ParameterMetaData //参数元数据信息java.sql.ResultSet //提供检索和操作SQL执行结果相关的方法:3种类型、2种并行性、2种可保持性java.sql.ResultSetMetaData //结果集元数据#驱动相关java.sql.Driverjava.sql.DriverActionjava.sql.DriverManagerjava.sql.DriverPropertyInfojava.sql.SQLPermissionjava.sql.Savepoint#异常java.sql.BatchUpdateExceptionjava.sql.DataTruncation //Data Truncat异常java.sql.SQLClientInfoExceptionjava.sql.SQLDataExceptionjava.sql.SQLExceptionjava.sql.SQLFeatureNotSupportedExceptionjava.sql.SQLIntegrityConstraintViolationExceptionjava.sql.SQLInvalidAuthorizationSpecExceptionjava.sql.SQLNonTransientConnectionExceptionjava.sql.SQLNonTransientExceptionjava.sql.SQLRecoverableExceptionjava.sql.SQLSyntaxErrorExceptionjava.sql.SQLTimeoutExceptionjava.sql.SQLTransactionRollbackExceptionjava.sql.SQLTransientConnectionExceptionjava.sql.SQLTransientExceptionjava.sql.SQLWarning

二、javax.sql包

#数据源javax.sql.DataSource //数据源 用于获取Connection实例javax.sql.CommonDataSource#连接池相关javax.sql.ConnectionPoolDataSourcejavax.sql.PooledConnectionjavax.sql.ConnectionEventjavax.sql.ConnectionEventListenerjavax.sql.StatementEventjavax.sql.StatementEventListener#ResultSet扩展javax.sql.rowset.* //里面含有JAVA SPI机制javax.sql.RowSet //为数据源和应用程序内容之间建立一个映射javax.sql.RowSetEventjavax.sql.RowSetInternaljavax.sql.RowSetListenerjavax.sql.RowSetMetaDatajavax.sql.RowSetReaderjavax.sql.RowSetWriter#分布式扩展javax.sql.XAConnectionjavax.sql.XADataSource

参考:《Mybatis3 源码深度解析》

相关文章