【Mybatis3源码学习之二】JDBC

时间:2020-05-18
本文章向大家介绍【Mybatis3源码学习之二】JDBC,主要包括【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.Array
java.sql.Blob
java.sql.Clob
java.sql.Date
java.sql.NClob
java.sql.Struct
java.sql.Time
java.sql.Timestamp
java.sql.SQLXML
java.sql.Ref
java.sql.RowId
java.sql.SQLInput
java.sql.SQLOutput
java.sql.SQLData

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

#枚举
java.sql.Types
java.sql.SQLType
java.sql.JDBCType
java.sql.RowIdLifetime
java.sql.PseudoColumnUsage
java.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.Driver
java.sql.DriverAction
java.sql.DriverManager
java.sql.DriverPropertyInfo
java.sql.SQLPermission
java.sql.Savepoint

#异常
java.sql.BatchUpdateException
java.sql.DataTruncation  //Data Truncat异常
java.sql.SQLClientInfoException
java.sql.SQLDataException
java.sql.SQLException
java.sql.SQLFeatureNotSupportedException
java.sql.SQLIntegrityConstraintViolationException
java.sql.SQLInvalidAuthorizationSpecException
java.sql.SQLNonTransientConnectionException
java.sql.SQLNonTransientException
java.sql.SQLRecoverableException
java.sql.SQLSyntaxErrorException
java.sql.SQLTimeoutException
java.sql.SQLTransactionRollbackException
java.sql.SQLTransientConnectionException
java.sql.SQLTransientException
java.sql.SQLWarning

二、javax.sql包

#数据源
javax.sql.DataSource  //数据源  用于获取Connection实例
javax.sql.CommonDataSource

#连接池相关
javax.sql.ConnectionPoolDataSource
javax.sql.PooledConnection
javax.sql.ConnectionEvent
javax.sql.ConnectionEventListener
javax.sql.StatementEvent
javax.sql.StatementEventListener

#ResultSet扩展
javax.sql.rowset.*  //里面含有JAVA SPI机制
javax.sql.RowSet   //为数据源和应用程序内容之间建立一个映射
javax.sql.RowSetEvent
javax.sql.RowSetInternal
javax.sql.RowSetListener
javax.sql.RowSetMetaData
javax.sql.RowSetReader
javax.sql.RowSetWriter

#分布式扩展
javax.sql.XAConnection
javax.sql.XADataSource

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

原文地址:https://www.cnblogs.com/cac2020/p/12912719.html